**, which means that REST accesses are open to all users. Once you have specified a group, only a 4D user account that belongs to this group may be used to [access 4D by means of a REST request](authUsers.md). If an account is used that does not belong to this group, 4D returns an authentication error to the sender of the request.
+
+> In order for this setting to take effect, the `On REST Authentication` database method must not be defined. If it exists, 4D ignores access settings defined in the Database Settings.
+
+### Using the On REST Authentication database method
+The `On REST Authentication` database method provides you with a custom way of controlling the opening of REST sessions on 4D. This database method is automatically called when a new session is opened through a REST request. When a [request to open a REST session](authUsers.md) is received, the connection identifiers are provided in the header of the request. The `On REST Authentication` database method is called so that you can evaluate these identifiers. You can use the list of users for the 4D database or you can use your own table of identifiers. For more information, refer to the `On REST Authentication` database method [documentation](https://doc.4d.com/4Dv18/4D/18/On-REST-Authentication-database-method.301-4505004.en.html).
+
+
+
+## Exposing tables and fields
+
+Once REST services are enabled in the 4D database, by default a REST session can access all tables and fields of the datastore, and thus use their data. For example, if your database contains an [Employee] table, it is possible to write:
+
+```
+http://127.0.0.1:8044/rest/Employee/?$filter="salary>10000"
+
+```
+This request will return all employees whose salary field is higher than 10000.
+
+> 4D tables and/or fields that have the "Invisible" attribute are also exposed in REST by default.
+
+If you want to customize the datastore objects accessible through REST, you must disable the exposure of each table and/or field that you want to hide. When a REST request attempts to access an unauthorized resource, 4D returns an error.
+
+### Exposing tables
+
+By default, all tables are exposed in REST.
+
+For security reasons, you may want to only expose certain tables of your datastore to REST calls. For instance, if you created a [Users] table storing user names and passwords, it would be better not to expose it.
+
+To remove the REST exposure for a table:
+
+1. Display the Table Inspector in the Structure editor and select the table you want to modify.
+
+2. Uncheck the **Expose as REST resource** option:  Do this for each table whose exposure needs to be modified.
+
+
+### Exposing fields
+
+By default, all 4D database fields are exposed in REST.
+
+You may not want to expose certain fields of your tables to REST. For example, you may not want to expose the [Employees]Salary field.
+
+To remove the REST exposure for a field:
+
+1. Display the Field Inspector in the Structure editor and select the field you want to modify.
+
+2. Uncheck the **Expose as REST resource** for the field.  Repeat this for each field whose exposure needs to be modified.
+
+> In order for a field to be accessible through REST, the parent table must be as well. If the parent table is not exposed, none of its fields will be, regardless of their status.
diff --git a/website/translated_docs/es/REST/genInfo.md b/website/translated_docs/es/REST/genInfo.md
new file mode 100644
index 00000000000000..f0733a46c9c7c2
--- /dev/null
+++ b/website/translated_docs/es/REST/genInfo.md
@@ -0,0 +1,36 @@
+---
+id: genInfo
+title: Getting Server Information
+---
+
+You can get several information from the REST server:
+
+- the exposed datastores and their attributes
+- the REST server cache contents, including user sessions.
+
+## Catalog
+
+Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed datastore classes and their attributes](configuration.md#exposing-tables-and-fields).
+
+To get the collection of all exposed dataclasses along with their attributes:
+
+`GET /rest/$catalog/$all`
+
+
+## Cache info
+
+Use the [`$info`]($info.md) parameter to get information about the entity selections currently stored in 4D Server's cache as well as running user sessions.
+
+## queryPath and queryPlan
+
+Entity selections that are generated through queries can have the following two properties: `queryPlan` and `queryPath`. To calculate and return these properties, you just need to add [`$queryPlan`]($queryplan.md) and/or [`$queryPath`]($querypath.md) in the REST request.
+
+For example:
+
+`GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true&$querypath=true`
+
+These properties are objects that contain information about how the server performs composite queries internally through dataclasses and relations:
+- **queryPlan**: object containing the detailed description of the query just before it was executed (i.e., the planned query).
+- **queryPath**: object containing the detailed description of the query as it was actually performed.
+
+The information recorded includes the query type (indexed and sequential) and each necessary subquery along with conjunction operators. Query paths also contain the number of entities found and the time required to execute each search criterion. You may find it useful to analyze this information while developing your application. Generally, the description of the query plan and its path are identical but they can differ because 4D can implement dynamic optimizations when a query is executed in order to improve performance. For example, the 4D engine can dynamically convert an indexed query into a sequential one if it estimates that it is faster. This particular case can occur when the number of entities being searched for is low.
\ No newline at end of file
diff --git a/website/translated_docs/es/REST/gettingStarted.md b/website/translated_docs/es/REST/gettingStarted.md
new file mode 100644
index 00000000000000..8a6d571357409c
--- /dev/null
+++ b/website/translated_docs/es/REST/gettingStarted.md
@@ -0,0 +1,138 @@
+---
+id: gettingStarted
+title: Getting Started
+---
+
+4D provides you with a powerful REST server, that allows direct access to data stored in your 4D databases.
+
+The REST server is included in the the 4D and 4D Server applications, it is automatically available in your 4D databases [once it is configured](configuration.md).
+
+This section is intended to help familiarize you with REST functionality by means of a simple example. We are going to:
+- create and configure a basic 4D database
+- access data from the 4D database through REST using a standard browser.
+
+To keep the example simple, we’re going to use a 4D application and a browser that are running on the same machine. Of course, you could also use a remote architecture.
+
+
+
+## Creating and configuring the 4D database
+
+1. Launch your 4D or 4D Server application and create a new database. You can name it "Emp4D", for example.
+
+2. In the Structure editor, create an [Employees] table and add the following fields to it:
+ - Lastname (Alpha)
+ - Firstname (Alpha)
+ - Salary (Longint)
+
+
+
+> The "Expose a REST resource" option is checked by default for the table and every field; do not change this setting.
+
+3. Create forms, then create a few employees:
+
+
+
+4. Display the **Web/REST resource** page of the Database Settings dialog box and [check the Expose as REST server](configuration.md#starting-the-rest-server) option.
+
+5. In the **Run** menu, select **Start Web Server** (if necessary), then select **Test Web Server**.
+
+4D displays the default home page of the 4D Web Server.
+
+
+## Accessing 4D data through the browser
+
+You can now read and edit data within 4D only through REST requests.
+
+Any 4D REST URL request starts with `/rest`, to be inserted after the `address:port` area. For example, to see what's inside the 4D datastore, you can write:
+
+```
+http://127.0.01/rest/$catalog
+```
+
+The REST server replies:
+
+```
+{
+ "__UNIQID": "96A49F7EF2ABDE44BF32059D9ABC65C1",
+ "dataClasses": [
+ {
+ "name": "Employees",
+ "uri": "/rest/$catalog/Employees",
+ "dataURI": "/rest/Employees"
+ }
+ ]
+}
+```
+
+It means that the datastore contains the Employees dataclass. You can see the dataclass attributes by typing:
+
+```
+/rest/$catalog/Employees
+```
+
+If you want to get all entities of the Employee dataclass, you write:
+
+```
+/rest/Employees
+```
+
+**Response:**
+
+```
+{
+ "__entityModel": "Employees",
+ "__GlobalStamp": 0,
+ "__COUNT": 3,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2020-01-07T17:07:52.467Z",
+ "__STAMP": 2,
+ "ID": 1,
+ "Lastname": "Brown",
+ "Firstname": "Michael",
+ "Salary": 25000
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "ID": 2,
+ "Lastname": "Jones",
+ "Firstname": "Maryanne",
+ "Salary": 35000
+ },
+ {
+ "__KEY": "3",
+ "__TIMESTAMP": "2020-01-07T17:08:34.844Z",
+ "__STAMP": 2,
+ "ID": 3,
+ "Lastname": "Smithers",
+ "Firstname": "Jack",
+ "Salary": 41000
+ }
+ ],
+ "__SENT": 3
+}
+```
+
+You have many possibilities to filter data to receive. For example, to get only the "Lastname" attribute value from the 2nd entity, you can just write:
+
+```
+/rest/Employees(2)/Lastname
+```
+
+**Response:**
+
+```
+{
+ "__entityModel": "Employees",
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "Lastname": "Jones"
+}
+```
+
+The 4D [REST API](REST_requests.md) provides various commands to interact with the 4D database.
\ No newline at end of file
diff --git a/website/translated_docs/es/REST/manData.md b/website/translated_docs/es/REST/manData.md
new file mode 100644
index 00000000000000..4571016a1a7517
--- /dev/null
+++ b/website/translated_docs/es/REST/manData.md
@@ -0,0 +1,249 @@
+---
+id: manData
+title: Manipulating Data
+---
+
+All [exposed datastore classes, attributes](configuration.md#exposing-tables-and-fields) and methods can be accessed through REST. Dataclass, attribute, and method names are case-sensitive; however, the data for queries is not.
+
+## Querying data
+
+To query data directly, you can do so using the [`$filter`]($filter.md) function. For example, to find a person named "Smith", you could write:
+
+`http://127.0.0.1:8081/rest/Person/?$filter="lastName=Smith"`
+
+
+
+
+## Adding, Modifying, and Deleting Entities
+
+With the REST API, you can perform all the manipulations to data as you can in 4D.
+
+To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Before saving data, you can also validate it beforehand by calling [`$method=validate`]($method.md#methodvalidate). If you want to delete one or more entities, you can use [`$method=delete`]($method.md#methoddelete).
+
+Besides retrieving one attribute in a dataclass using [{dataClass}({key})](%7BdataClass%7D_%7Bkey%7D.html), you can also write a method in your datastore class and call it to return an entity selection (or a collection) by using [{dataClass}/{method}](%7BdataClass%7D.html#dataclassmethod).
+
+Before returning the collection, you can also sort it by using [`$orderby`]($orderby.md) one one or more attributes (even relation attributes).
+
+
+## Navigating Data
+
+Add the [`$skip`]($skip.md) (to define with which entity to start) and [`$top/$limit`]($top_$limit.md) (to define how many entities to return) REST requests to your queries or entity selections to navigate the collection of entities.
+
+
+
+## Creating and Managing Entity Set
+
+An entity set (aka *entity selection*) is a collection of entities obtained through a REST request that is stored in 4D Server's cache. Using an entity set prevents you from continually querying your application for the same results. Accessing an entity set is much quicker and can improve the speed of your application.
+
+To create an entity set, call [`$method=entityset`]($method.md#methodentityset) in your REST request. As a measure of security, you can also use [`$savedfilter`]($savedfilter.md) and/or [`$savedorderby`]($savedorderby.md) when you call [`$filter`]($filter.md) and/or [`$orderby`]($orderby.md) so that if ever the entity set timed out or was removed from the server, it can be quickly retrieved with the same ID as before.
+
+To access the entity set, you must use `$entityset/{entitySetID}`, for example:
+
+`/rest/People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`
+
+
+By default, an entity set is stored for two hours; however, you can change the timeout by passing a new value to [`$timeout`]($timeout.md). The timeout is continually being reset to the value defined for its timeout (either the default one or the one you define) each time you use it.
+
+If you want to remove an entity set from 4D Server's cache, you can use [`$method=release`]($method.md#methodrelease).
+
+If you modify any of the entity's attributes in the entity set, the values will be updated. However, if you modify a value that was a part of the query executed to create the entity set, it will not be removed from the entity set even if it no longer fits the search criteria. Any entities you delete will, of course, no longer be a part of the entity set.
+
+If the entity set no longer exists in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+Using [`$entityset/{entitySetID}?$logicOperator... &$otherCollection`]($entityset.md#entitysetentitysetidoperatorothercollection), you can combine two entity sets that you previously created. You can either combine the results in both, return only what is common between the two, or return what is not common between the two.
+
+A new selection of entities is returned; however, you can also create a new entity set by calling [`$method=entityset`]($method.md#methodentityset) at the end of the REST request.
+
+
+
+## Calculating Data
+
+By using [`$compute`]($compute.md), you can compute the **average**, **count**, **min**, **max**, or **sum** for a specific attribute in a dataclass. You can also compute all values with the $all keyword.
+
+For example, to get the highest salary:
+
+`/rest/Employee/salary/?$compute=sum`
+
+To compute all values and return a JSON object:
+
+`/rest/Employee/salary/?$compute=$all`
+
+
+
+
+## Selecting attributes to get
+
+You can always define which attributes to return in the REST response after an initial request by passing their path in the request (*e.g.*, `Company(1)/name,revenues/`)
+
+You can apply this filter in the following ways:
+
+| Object | Syntax | Example |
+| ---------------------- | --------------------------------------------------- | ------------------------------------------------------------- |
+| Dataclass | {dataClass}/{att1,att2...} | /People/firstName,lastName |
+| Collection of entities | {dataClass}/{att1,att2...}/?$filter="{filter}" | /People/firstName,lastName/?$filter="lastName='a*'" |
+| Specific entity | {dataClass}({ID})/{att1,att2...} | /People(1)/firstName,lastName |
+| | {dataClass}:{attribute}(value)/{att1,att2...}/ | /People:firstName(Larry)/firstName,lastName/ |
+| Entity selection | {dataClass}/{att1,att2...}/$entityset/{entitySetID} | /People/firstName/$entityset/528BF90F10894915A4290158B4281E61 |
+
+The attributes must be delimited by a comma, *i.e.*, `/Employee/firstName,lastName,salary`. Storage or relation attributes can be passed.
+
+
+### Examples
+Here are a few examples, showing you how to specify which attributes to return depending on the technique used to retrieve entities.
+
+You can apply this technique to:
+
+- Dataclasses (all or a collection of entities in a dataclass)
+- Specific entities
+- Dataclass methods
+- Entity sets
+
+#### Dataclass Example
+
+The following requests returns only the first name and last name from the People datastore class (either the entire datastore class or a selection of entities based on the search defined in `$filter`).
+
+ `GET /rest/People/firstName,lastName/`
+
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 4,
+ __SENT: 4,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith"
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary"
+ },
+ {
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+ },
+ {
+ __KEY: "4",
+ __STAMP: 1,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+`GET /rest/People/firstName,lastName/?$filter="lastName='A*'"/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 1,
+ __SENT: 1,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "4",
+ __STAMP: 4,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+#### Entity Example
+The following request returns only the first name and last name attributes from a specific entity in the People dataclass:
+
+ `GET /rest/People(3)/firstName,lastName/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+}
+````
+
+
+ `GET /rest/People(3)/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ ID: 3,
+ firstName: "Pete",
+ lastName: "Marley",
+ salary: 30000,
+ employer: {
+ __deferred: {
+ uri: "http://127.0.0.1:8081/rest/Company(3)",
+ __KEY: "3"
+ }
+ },
+ fullName: "Pete Marley",
+ employerName: "microsoft"
+
+}
+````
+
+#### Method Example
+
+If you have a dataclass method, you can define which attributes to return as shown below before passing the dataclass method:
+
+ `GET /rest/People/firstName,lastName/getHighSalaries`
+
+or
+
+ `GET /rest/People/getHighSalaries/firstName,lastName`
+
+#### Entity Set Example
+
+Once you have created an entity set, you can filter the information in it by defining which attributes to return:
+
+ `GET /rest/People/firstName,employer.name/$entityset/BDCD8AABE13144118A4CF8641D5883F5?$expand=employer
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your dataclass, you can write the following:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
+
+
+## Retrieving only one entity
+
+You can use the [`{dataClass}:{attribute}(value)`](%7BdataClass%7D.html#dataclassattributevalue) syntax when you want to retrieve only one entity. It's especially useful when you want to do a related search that isn't created on the dataclass's primary key. For example, you can write:
+
+ `GET /rest/Company:companyCode("Acme001")`
+
+
diff --git a/website/translated_docs/es/REST/{dataClass}.md b/website/translated_docs/es/REST/{dataClass}.md
new file mode 100644
index 00000000000000..9d590c1261e640
--- /dev/null
+++ b/website/translated_docs/es/REST/{dataClass}.md
@@ -0,0 +1,276 @@
+---
+id:
+ - dataClass
+title:
+ - dataClass
+---
+
+
+
+Dataclass names can be used directly in the REST requests to work with entities, entity selections, or methods of the dataclass.
+
+## Available syntaxes
+
+| Syntax | Example | Description |
+| -------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------- |
+| [**{dataClass}**](#dataClass) | `/Employee` | Returns all the data (by default the first 100 entities) for the dataclass |
+| [**{dataClass}({key})**](#dataclasskey) | `/Employee(22)` | Returns the data for the specific entity defined by the dataclass's primary key |
+| [**{dataClass}:{attribute}(value)**](#dataclassattributevalue) | `/Employee:firstName(John)` | Returns the data for one entity in which the attribute's value is defined |
+| [**{dataClass}/{method}**](#dataclassmethod) | `/Employee/getHighSalaries` or `/Employee/name/getAge` | Returns an entity selection or a collection based on a dataclass method |
+
+
+
+## {dataClass}
+
+Returns all the data (by default the first 100 entities) for a specific dataclass (*e.g.*, `Company`)
+
+### Description
+
+When you call this parameter in your REST request, the first 100 entities are returned unless you have specified a value using [`$top/$limit`]($top_$limit.md).
+
+Here is a description of the data returned:
+
+| Property | Type | Description |
+| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| __entityModel | String | Name of the datastore class. |
+| __COUNT | Number | Number of entities in the datastore class. |
+| __SENT | Number | Number of entities sent by the REST request.This number can be the total number of entities if it is less than the value defined in the Default Top Size property (in the Properties for the datastore class) or `$top/$limit` or the value in `$top/$limit`. |
+| __FIRST | Number | Entity number that the selection starts at. Either 0 by default or the value defined by `$skip`. |
+| __ENTITIES | Array | This array of objects contains an object for each entity with all the Public attributes. All relational attributes are returned as objects with a URI to obtain information regarding the parent. |
+
+For each entity, there is a **__KEY** and a **__STAMP** property. The **__KEY** property contains the value of the primary key defined for the datastore class. The **__STAMP** is an internal stamp that is needed when you modify any of the values in the entity when using `$method=update`.
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). For example:
+
+ `GET /rest/Company/name,address`
+
+
+
+### Example
+
+Return all the data for a specific datastore class.
+
+ `GET /rest/Employee`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__COUNT": 250,
+ "__SENT": 100,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Adobe",
+ "address": null,
+ "city": "San Jose",
+ "country": "USA",
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 1,
+ "ID": 2,
+ "name": "Apple",
+ "address": null,
+ "city": "Cupertino",
+ "country": "USA",
+ "revenues": 890000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(2)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "3",
+ "__STAMP": 2,
+ "ID": 3,
+ "name": "4D",
+ "address": null,
+ "city": "Clichy",
+ "country": "France",
+ "revenues": 700000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(3)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "name": "Microsoft",
+ "address": null,
+ "city": "Seattle",
+ "country": "USA",
+ "revenues": 650000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(4)/staff?$expand=staff"
+ }
+ }
+ }
+.....//more entities here
+ ]
+}
+````
+
+
+## {dataClass}({key})
+
+Returns the data for the specific entity defined by the dataclass's primary key, *e.g.*, `Company(22) or Company("IT0911AB2200")`
+
+### Description
+
+By passing the dataclass and a key, you can retrieve all the public information for that entity. The key is the value in the attribute defined as the Primary Key for your datastore class. For more information about defining a primary key, refer to the **Modifying the Primary Key** section in the **Data Model Editor**.
+
+For more information about the data returned, refer to [{datastoreClass}](#datastoreclass).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). For example:
+
+ `GET /rest/Company(1)/name,address`
+
+If you want to expand a relation attribute using `$expand`, you do so by specifying it as shown below:
+
+ `GET /rest/Company(1)/name,address,staff?$expand=staff`
+
+### Example
+
+The following request returns all the public data in the Company datastore class whose key is 1.
+
+ `GET /rest/Company(1)`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Apple",
+ "address": Infinite Loop,
+ "city": "Cupertino",
+ "country": "USA",
+ "url": http://www.apple.com,
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+}
+````
+
+
+
+## {dataClass}:{attribute}(value)
+
+Returns the data for one entity in which the attribute's value is defined
+
+### Description
+
+By passing the *dataClass* and an *attribute* along with a value, you can retrieve all the public information for that entity. The value is a unique value for attribute, but is not the primary key.
+
+ `GET /rest/Company:companyCode(Acme001)`
+
+For more information about the data returned, refer to [{dataClass}](dataClass.md).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). For example:
+
+ `GET /rest/Company:companyCode(Acme001)/name,address`
+
+If you want to use a relation attribute using [$attributes]($attributes.md), you do so by specifying it as shown below:
+
+ `GET /rest/Company:companyCode(Acme001)?$attributes=name,address,staff.name`
+
+### Example
+
+The following request returns all the public data of the employee named "Jones".
+
+ `GET /rest/Employee:lastname(Jones)`
+
+
+## {dataClass}/{method}
+
+Returns an entity selection or a collection based on a dataclass method
+
+### Description
+
+Dataclass methods must be applied to either a dataclass or an entity selection, and must return either an entity selection or a collection. When returning a collection, however, you cannot define which attributes are returned.
+
+The method must has been declared as "Available through REST server" in 4D for you to be able to call it in a REST request:
+
+`GET /rest/Employee/getHighSalaries` or `GET /rest/Employee/firstName/getHighSalaries`
+
+If you do not have the permissions to execute the method, you will receive the following error:
+
+```
+{
+ "__ERROR": [
+ {
+ "message": "No permission to execute method getHighSalaries in dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1561
+ }
+ ]
+}
+```
+
+### Passing Parameters to a Method
+You can also pass parameters to a method either in a GET or in a POST.
+
+In a GET, you write the following:
+
+`GET /rest/Employee/addEmployee(John,Smith)`
+
+In a POST, you write the following :
+
+`POST /rest/Employee/addEmployee`
+
+**POST data:** ["John","Smith"]
+
+### Manipulating the Data Returned by a Method
+You can define which attributes you want to return, by passing the following:
+
+`GET /rest/Employee/firstName/getEmployees` Or `GET /rest/Employee/getEmployees/firstName`
+
+You can also apply any of the following functions to a method: [$filter]($filter.md), [$orderby]($orderby.md), [$skip]($skip.md), [$expand]($expand.md), and [$top/$limit]($top_$limit.md).
+
+
+### Example
+
+In the example below, we call our method, but also browse through the collection by returning the next ten entities from the sixth one:
+
+`GET /rest/Employee?$attributes=lastName,employer.name&$top=10&$skip=1/getHighSalaries` or `GET /rest/Employee/getHighSalaries?$attributes=lastName,employer.name&$top=10&$skip=1`
+
+If you want to retrieve an attribute and an extended relation attribute, you can write the following REST request:
+
+`GET /rest/Employee/firstName,employer/getHighSalaries?$expand=employer`
+
+In the example below, the getCities dataclass method returns a collection of cities:
+
+`GET /rest/Employee/getCities`
+
+Result:
+
+```
+{
+ "result": [
+ "Paris",
+ "Florence",
+ "New York"
+ ]
+}
+```
diff --git a/website/translated_docs/fr/FormObjects/button_overview.md b/website/translated_docs/fr/FormObjects/button_overview.md
index aa0c1e956299b3..e437f2aecefaee 100644
--- a/website/translated_docs/fr/FormObjects/button_overview.md
+++ b/website/translated_docs/fr/FormObjects/button_overview.md
@@ -1,77 +1,77 @@
---
id: buttonOverview
-title: Button
+title: Bouton
---
-A button is an active object that can be assigned an action (*e.g.*, a database task or an interface function) to perform when a user clicks on it.
+Un bouton est un objet actif auquel une action peut être assignée (*ex :* une tâche de base de données ou une fonction d'interface) pour qu'elle soit réalisée lorsque l'utilisateur clique dessus.

-Buttons can fulfill a variety of roles, depending on their style and the action assigned to it. For example, buttons could lead a user through a questionnaire or form to complete, or to make choices. Depending on its settings, a button may be designed to be clicked only once and execute a command, while others may require the user to click more than once to receive the desired result.
+Les boutons peuvent répondre à divers besoins qui dépendent du style et de l'action qui leur est affecté(e). Par exemple, les boutons peuvent amener l'utilisateur à faire des choix ou à compléter un questionnaire ou formulaire. En fonction de leurs propriétés, les bouton peuvent être destinés à être cliqués une fois seulement et à exécuter une commande, ou à être cliqués plusieurs fois pour obtenir le résultat escompté.
-## Handling buttons
+## Gestion des boutons
-The actions assigned to buttons can originate from predefined [standard actions](properties_Action.md#standard-action) or from custom object methods. Examples of typical actions include letting the user accept, cancel, or delete records, copy or paste data, move from page to page in a multi-page form, open, delete, or add records in a subform, handle font attributes in text areas, etc.
+Les actions assignées aux boutons peuvent provenir d'[actons standard](properties_Action.md#standard-action) ou de méthodes objet personnalisées. Les actions typiques peuvent consister à laisser l'utilisateur accepter, annuler ou supprimer des enregistrements, à copier ou coller des données, à passer d'une page à l'autre dans un formulaire de plusieurs pages, à ouvrir, supprimer ou ajouter des enregistrements dans un sous-formulaire, à gérer les attributs de police dans les zones de texte , etc.
-Buttons with standard actions are dimmed when appropriate during form execution. For example, if the first record of a table is displayed, a button with the `firstRecord` standard action would appear dimmed.
+Les boutons avec des actions standard sont grisés le cas échéant lors de l'exécution du formulaire. Par exemple, si le premier enregistrement d'une table est affiché, un bouton avec l'action standard `firstRecord` apparaît grisé.
-If you want a button to perform an action that's not available as a standard action, leave the standard action field empty and write an object method to specify the button’s action. For more information about object methods and how to create and associate them, see [Using object methods](https://doc.4d.com/4Dv17R5/4D/17-R5/Using-object-methods.300-4163733.en.html). Normally, you would activate the `On Clicked` event and the method would run only when the button is clicked. You can associate a method with any button.
+Si vous souhaitez qu'un bouton exécute une action qui n'est pas disponible en tant qu'action standard, laissez le champ d'action standard vide et écrivez une méthode objet pour spécifier l'action du bouton. Pour plus d'informations sur les méthodes d'objet et comment les créer et les associer, voir [Utilisation de méthodes objet](https://doc.4d.com/4Dv17R5/4D/17-R5/Using-object-methods.300-4163733.en.html). En règle générale, vous activez l'événement `Sur clic` et la méthode s'exécute uniquement lorsque vous cliquez sur le bouton. Vous pouvez associer une méthode à n'importe quel bouton.
-The [variable](properties_Object.md#variable-or-expression) associated with a button is automatically set to **0** when the form is executed for the first time in Design or Application mode. When the user clicks a button, its variable is set to **1**.
+La [variable](properties_Object.md#variable-or-expression) associée à un bouton est automatiquement définie sur **0** lorsque le formulaire est exécuté pour la première fois en mode Développement ou Application. Lorsque l'utilisateur clique sur un bouton, sa variable est définie sur **1**.
-> A button can be assigned both a standard action and a method. In this case, if the button is not disabled by the standard action, the method is executed before the standard action.
+> Il est possible d'affecter à la fois une action standard et une méthode à un bouton. Dans ce cas, si le bouton n'est pas désactivé par l'action standard, la méthode est exécutée avant l'action standard.
-## Button Styles
+## Styles de bouton
-Button styles control a button's general appearance as well as its available properties. It is possible to apply different predefined styles to buttons or to associate pop-up menus with them. A great number of variations can be obtained by combining these properties / behaviors.
+Les styles de bouton contrôlent l'apparence générale d'un bouton ainsi que ses propriétés. Il est possible d'appliquer différents styles prédéfinis aux boutons ou de leur associer des menus pop-up. Plusieurs variantes peuvent être obtenues en combinant ces propriétés/comportements.
-With the exception of the [available properties](#supported-properties), many button objects are *structurally* identical. The difference is in the processing of their associated variables.
+À l'exception des [propriétés disponibles](#supported-properties), de nombreux objets bouton sont *structurellement* identiques. La différence réside dans le traitement de leurs variables associées.
-4D provides buttons in the following predefined styles:
+4D propose des boutons dans les styles prédéfinis suivants :
-### Regular
+### Classique
-The Regular button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it.
+Le style de bouton Classique est un bouton système standard (c'est-à-dire un rectangle avec un libellé descriptif) qui exécute le code lorsqu'un utilisateur clique dessus.

-By default, the Regular style has a light gray background with a label in the center. When the cursor hovers over the Regular button style, the border and background color change to demonstrate that it has the focus. In addition to initiating code execution, the Regular button style mimics a mechanical button by quickly changing background color when being clicked.
+Par défaut, le style Classique a un fond gris clair avec un libellé au centre. Lorsque le curseur survole le style de bouton Classique, la bordure et la l'arrière-plan changent de couleur. En plus de lancer l'exécution de code, le style de bouton Classique imite un bouton mécanique en changeant rapidement la couleur d'arrière-plan lorsque vous cliquez dessus.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
- "type": "button", //define the type of object
- "style":"regular", //define the style of the button
- "defaultButton":"true" //define button as the default choice
- "text": "OK", //text to appear on the button
- "action": "Cancel", //action to be be performed
- "left": 60, //left position on the form
- "top": 160, //top position on the form
- "width": 100, //width of the button
- "height": 20 //height of the button
+ "type": "button", //définit le type d'objet
+ "style":"regular", //définit le style du bouton
+ "defaultButton":"true" //définit le bouton comme choix par défaut
+ "text": "OK", //texte à faire apparaître dans le bouton
+ "action": "Annuler", //Action à exécuter
+ "left": 60, //Position gauche dans le formulaire
+ "top": 160, //Position supérieure dans le formulaire
+ "width": 100, //largeur du bouton
+ "height": 20 //hauteur du bouton
}
```
-Only the Regular and Flat styles offer the [Default Button](properties_Appearance.md#default-button) property.
+Seuls les styles Classique et A plat proposent la propriété [Bouton par défaut](properties_Appearance.md#default-button).
-### Flat
+### A plat
-The Flat button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it.
+Le style de bouton A plat est un bouton système standard (c'est-à-dire un rectangle avec un libellé descriptif) qui exécute le code lorsqu'un utilisateur clique dessus.

-By default, the Flat style has a white background with a label in the center, rounded corners, and a minimalist appearance. The Flat button style's graphic nature is particularly useful for forms that will be printed.
+Par défaut, le style A plat a un arrière-plan avec un libellé au centre, des bords arrondis et un design minimaliste. Le style graphique du bouton A plat est particulièrement utile pour les formulaires à imprimer.
-#### JSON Example:
+#### Exemple JSON :
```code4d
@@ -80,7 +80,7 @@ By default, the Flat style has a white background with a label in the center, ro
"style":"flat",
"defaultButton":"true"
"text": "OK",
- "action": "Cancel",
+ "action": "Annuler",
"left": 60,
"top": 160,
"width": 100,
@@ -89,21 +89,21 @@ 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.
+Seuls les styles Classique et A plat proposent la propriété [Bouton par défaut](properties_Appearance.md#default-button).
-### Toolbar
+### Barre d’outils
-The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select.
+Le style du bouton Barre d'outils est initialement destiné à être intégré dans une barre d'outils. Il inclut l'option à ajouter à un pop-up menu (indiqué par un triangle inversé) généralement utilisé pour afficher des choix de sélection supplémentaires pour l'utilisateur.
-By default, the Toolbar style has a transparent background with a label in the center. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+Par défaut, le style bouton Barre d'outils a un fond transparent avec un libellé au centre. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- - *Windows* - the button is highlighted when it uses the “With Pop-up Menu” property, a triangle is displayed to the right and in the center of the button.
+ - *Sous Windows* - le contour du bouton apparaît lorsqu’il dispose de la propriété “Avec pop up menu”, et un triangle est affiché à droite et au centre du bouton.

- - *macOS* - the highlight of the button never appears. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and at the bottom of the button.
+ - *Sous macOS* - le contour du bouton n’apparaît jamais. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et en bas du bouton.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -111,7 +111,7 @@ By default, the Toolbar style has a transparent background with a label in the c
"style":"toolbar",
"text": "OK",
"popupPlacement":"separated"
- "action": "Cancel",
+ "action": "Annuler",
"left": 60,
"top": 160,
"width": 100,
@@ -123,17 +123,17 @@ By default, the Toolbar style has a transparent background with a label in the c
### Bevel
-The Bevel button style combines the appearance of the [Regular](#regular) (*i.e.*, a rectangle with a descriptive label) style with the [Toolbar](#toolbar) style's pop-up menu property option.
+Le bouton barre d'outils combine l'apparence du style [Classique](#regular) (c'est-à-dire un rectangle avec un libellé descriptif) et la propriété de pop-up menu du style [Barre d'outils](#toolbar).
-By default, the Bevel style has a light gray background with a label in the center. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+Par défaut, le style Bevel a un fond gris clair avec un libellé au centre. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- - *Windows* - the button is highlighted. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and in the center of the button.
+ - *Sous Windows* - le contour du bouton apparaît. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et au centre du bouton.

- - *macOS* - the highlight of the button never appears. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and at the bottom of the button.
+ - *Sous macOS* - le contour du bouton n’apparaît jamais. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et en bas du bouton.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -141,7 +141,7 @@ By default, the Bevel style has a light gray background with a label in the cent
"style":"bevel",
"text": "OK",
"popupPlacement":"linked"
- "action": "Cancel",
+ "action": "Annuler",
"left": 60,
"top": 160,
"width": 100,
@@ -151,19 +151,19 @@ By default, the Bevel style has a light gray background with a label in the cent
-### Rounded Bevel
+### Bevel arrondi
The Rounded Bevel button style is nearly identical to the [Bevel](#bevel) style except, depending on the OS, the corners of the button may be rounded. As with the Bevel style, the Rounded Bevel style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's pop-up menu property option.
-By default, the Rounded Bevel style has a light gray background with a label in the center. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+By default, the Rounded Bevel style has a light gray background with a label in the center. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- - *Windows* - the button is identical to the Bevel style. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and in the center of the button.
+ - *Windows* - the button is identical to the Bevel style. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et au centre du bouton.

- - *macOS* - the corners of the button are rounded. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and at the bottom of the button.
+ - *macOS* - the corners of the button are rounded. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et en bas du bouton.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -185,15 +185,15 @@ By default, the Rounded Bevel style has a light gray background with a label in
The OS X Gradient button style is nearly identical to the [Bevel](#bevel) style except, depending on the OS, it may have a two-toned appearance. As with the Bevel style, the OS X Gradient style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's pop-up menu property option.
-By default, the OS X Gradient style has a light gray background with a label in the center. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+By default, the OS X Gradient style has a light gray background with a label in the center. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- - *Windows* - the button is identical to the Bevel style. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and in the center of the button.
+ - *Windows* - the button is identical to the Bevel style. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et au centre du bouton.

- - *macOS* - the button is displayed as a two-tone system button. When it uses the “With Pop-up Menu” property, a triangle is displayed to the right and at the bottom of the button.
+ - *macOS* - the button is displayed as a two-tone system button. Lorsqu’il dispose de la propriété “Avec pop up menu”, un triangle est affiché à droite et en bas du bouton.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -210,7 +210,7 @@ By default, the OS X Gradient style has a light gray background with a label in
```
-### OS X Textured
+### OS X Texture
The OS X Textured button style is nearly identical to the [Bevel](#bevel) style except, depending on the OS, it may have a different appearance. As with the Bevel style, the OS X Textured style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's pop-up menu property option.
@@ -222,7 +222,7 @@ By default, the OS X Textured style appears as:
- *macOS* - a standard system button displaying a color change from light to dark gray. Its height is predefined: it is not possible to enlarge or reduce it.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -244,7 +244,7 @@ By default, the OS X Textured style appears as:
The Office XP button style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's transparency and pop-up menu property option.
-The colors (highlight and background) of a button with the Office XP style are based on the system colors. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+The colors (highlight and background) of a button with the Office XP style are based on the system colors. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- *Windows* - its background only appears when the mouse rolls over it.
@@ -252,7 +252,7 @@ The colors (highlight and background) of a button with the Office XP style are b
- *macOS* - its background is always displayed.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -277,7 +277,7 @@ The Help button style can be used to display a standard system help button. By d

-#### JSON Example:
+#### Exemple JSON :
```code4d
"myButton": {
@@ -304,7 +304,7 @@ The Circle button style appears as a round system button. This button style is d
On Windows, it is identical to the “None” style (the circle in the background is not taken into account).
-#### JSON Example:
+#### Exemple JSON :
```
"myButton": {
@@ -328,7 +328,7 @@ The Custom button style accepts a personalized background picture and allows man

-#### JSON Example:
+#### Exemple JSON :
```code
"myButton": {
@@ -348,12 +348,12 @@ The Custom button style accepts a personalized background picture and allows man
-## Supported Properties
+## Propriétés prises en charge
-All buttons share the same set of basic properties:
+Tous les boutons partagent une même série de propriétés de base :
-[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Button Style](properties_TextAndPicture.md#button-style) - [Class](properties_Object.md#css-class) - [Droppable](properties_Action.md#droppable) - [Focusable](properties_Entry.md#focusable) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Help Tip](properties_Help.md#help-tip) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Not rendered](properties_Display.md#not-rendered) - [Number of States](properties_TextAndPicture.md#number-of-states)(1) - [Object Name](properties_Object.md#object-name) - [Picture pathname](properties_TextAndPicture.md#picture-pathname)(1) - [Right](properties_CoordinatesAndSizing.md#right) - [Shortcut](properties_Entry.md#shortcut) - [Standard action](properties_Action.md#standard-action) - [Title](properties_Object.md#title) - [Title/Picture Position](properties_TextAndPicture.md#title-picture-position)(1) - [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 Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width)
+[Gras](properties_Text.md#bold) - [Style de la bordure](properties_BackgroundAndBorder.md#border-line-style) - [Bas](properties_CoordinatesAndSizing.md#bottom) - [Style de bouton](properties_TextAndPicture.md#button-style) - [CSS Class](properties_Object.md#css-class) - [Déposable](properties_Action.md#droppable) - [Focusable](properties_Entry.md#focusable) - [Police](properties_Text.md#font) - [Couleur de la police](properties_Text.md#font-color) - [Taille](properties_Text.md#font-size) - [Haut](properties_CoordinatesAndSizing.md#height) - [Message d'aide](properties_Help.md#help-tip) - [Dim. horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Italique](properties_Text.md#italic) - [Gauche](properties_CoordinatesAndSizing.md#left) - [Non représenté](properties_Display.md#not-rendered) - [Nombre d'états](properties_TextAndPicture.md#number-of-states)(1) - [Object Name](properties_Object.md#object-name) - [Picture pathname](properties_TextAndPicture.md#picture-pathname)(1) - [Right](properties_CoordinatesAndSizing.md#right) - [Shortcut](properties_Entry.md#shortcut) - [Standard action](properties_Action.md#standard-action) - [Title](properties_Object.md#title) - [Title/Picture Position](properties_TextAndPicture.md#title-picture-position)(1) - [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 Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width)
> (1) Not supported by the [Help](#help) style.
diff --git a/website/translated_docs/fr/FormObjects/checkbox_overview.md b/website/translated_docs/fr/FormObjects/checkbox_overview.md
index 4f94f54456dc11..cc0b1180fdaa33 100644
--- a/website/translated_docs/fr/FormObjects/checkbox_overview.md
+++ b/website/translated_docs/fr/FormObjects/checkbox_overview.md
@@ -79,19 +79,19 @@ For detailed information on these actions, please refer to the [Standard actions
## Check box button styles
-Check box styles control a check box's general appearance as well as its available properties. It is possible to apply different predefined styles to check boxes. A great number of variations can be obtained by combining these properties / behaviors.
+Check box styles control a check box's general appearance as well as its available properties. It is possible to apply different predefined styles to check boxes. Plusieurs variantes peuvent être obtenues en combinant ces propriétés/comportements.
-With the exception of the [available properties](#supported-properties), many check box objects are *structurally* identical. The difference is in the processing of their associated variables.
+With the exception of the [available properties](#supported-properties), many check box objects are *structurally* identical. La différence réside dans le traitement de leurs variables associées.
4D provides check boxes in the following predefined styles:
-### Regular
+### Classique
The Regular check box style is a standard system check box (*i.e.*, a rectangle with a descriptive title):

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -109,13 +109,13 @@ The Regular check box style is a standard system check box (*i.e.*, a rectangle
-### Flat
+### A plat
The Flat check box style is a minimalist appearance. The Flat style's graphic nature is particularly useful for forms that will be printed.

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -143,7 +143,7 @@ Example with states unchecked / checked / highlighted:

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -172,7 +172,7 @@ Example with states unchecked / checked / highlighted:

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -190,7 +190,7 @@ Example with states unchecked / checked / highlighted:
-### Rounded Bevel
+### Bevel arrondi
The Rounded Bevel check box style is nearly identical to the [Bevel](#bevel) style except, depending on the OS, the corners of the button may be rounded. As with the Bevel style, the Rounded Bevel style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's behavior.
@@ -203,7 +203,7 @@ Example on macOS:
> on Windows, the Rounded Bevel style is identical to the [Bevel](#bevel) style.
-#### JSON Example:
+#### Exemple JSON :
```code4d
"myCheckBox": {
@@ -232,7 +232,7 @@ The OS X Gradient style has a light gray background with a title and is displaye
> On Windows, this style is identical to the [Bevel](#bevel) style.
-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -251,7 +251,7 @@ The OS X Gradient style has a light gray background with a title and is displaye
-### OS X Textured
+### OS X Texture
The OS X Textured checkbox style is similar to the [Bevel](#bevel) style except, depending on the OS, it may have a different appearance. As with the Bevel style, the OS X Textured style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's behavior.
@@ -265,7 +265,7 @@ By default, the OS X Textured style appears as:

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -286,7 +286,7 @@ By default, the OS X Textured style appears as:
The Office XP check box style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's behavior.
-The colors (highlight and background) of a button with the Office XP style are based on the system colors. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+The colors (highlight and background) of a button with the Office XP style are based on the system colors. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- *Windows* - its background only appears when the mouse rolls over it. Example with states unchecked / checked / highlighted:
@@ -296,7 +296,7 @@ The colors (highlight and background) of a button with the Office XP style are b

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -328,7 +328,7 @@ This check box style can be used to add a standard collapse/expand icon. These b

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -357,7 +357,7 @@ In macOS and Windows, a check box with the "Disclosure" style appears as a stand

-#### JSON Example:
+#### Exemple JSON :
```
"myCheckBox": {
@@ -382,7 +382,7 @@ The Custom check box style accepts a personalized background picture and allows
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#backgroundPathname).
-#### JSON Example:
+#### Exemple JSON :
```
"myCheckbox": {
diff --git a/website/translated_docs/fr/FormObjects/formObjects_overview.md b/website/translated_docs/fr/FormObjects/formObjects_overview.md
new file mode 100644
index 00000000000000..20fddcb99d5574
--- /dev/null
+++ b/website/translated_docs/fr/FormObjects/formObjects_overview.md
@@ -0,0 +1,25 @@
+---
+id: formObjectsOverview
+title: A propos des objets formulaires 4D
+---
+
+You build and customize your application forms by manipulating the objects on them. You can add objects, reposition objects, set object properties, enforce business rules by specifying data entry constraints, or write object methods that run automatically when the object is used.
+
+## Active and static objects
+
+4D forms support a large number of built-in **active** and **static** objects:
+
+- **active objects** perform a database task or an interface function. Fields are active objects. Other active objects — enterable objects (variables), combo boxes, drop-down lists, picture buttons, and so on — store data temporarily in memory or perform some action such as opening a dialog box, printing a report, or starting a background process.
+- **static objects** are generally used for setting the appearance of the form and its labels as well as for the graphic interface. Static objects do not have associated variables like active objects. However, you can insert dynamic objects into static objects.
+
+
+## Handling form objects
+
+You can add or modify 4D form objects in the following ways:
+
+* **Form editor:** Drag an object from the Form editor toolbar onto the form. Then use the Property List to specify the object's properties. See the [Building Forms](https://doc.4d.com/4Dv17R6/4D/17-R6/Building-forms.200-4354618.en.html) chapter for more information.
+
+* **4D language**: Commands from the [Objects (Forms)](https://doc.4d.com/4Dv17R5/4D/17-R5/Objects-Forms.201-4127128.en.html) theme such as `OBJECT DUPLICATE` or `OBJECT SET FONT STYLE` allow to create and define form objects.
+
+* **JSON code in dynamic forms:** Define the properties using JSON. Use the [type](properties_Object.md#type) property to define the object type, then set its available properties. See the [Dynamic Forms](https://doc.4d.com/4Dv17R5/4D/17-R5/Dynamic-Forms.300-4163740.en.html#3692292) page for information. Example for a button object: ```
+ { "type": "button", "style": "bevel", "text": "OK", "action": "Cancel", "left": 60, "top": 160, "width": 100, "height": 20 }
diff --git a/website/translated_docs/fr/FormObjects/groupBox.md b/website/translated_docs/fr/FormObjects/groupBox.md
index bf2dbb9ab43680..6c0ee744366e21 100644
--- a/website/translated_docs/fr/FormObjects/groupBox.md
+++ b/website/translated_docs/fr/FormObjects/groupBox.md
@@ -10,7 +10,7 @@ A group box is a static object that allows you to visually assemble multiple for
-#### JSON Example:
+#### Exemple JSON :
```
"myGroup": {
diff --git a/website/translated_docs/fr/FormObjects/input_overview.md b/website/translated_docs/fr/FormObjects/input_overview.md
index d4d653f709a05a..3e09fb6bbaa105 100644
--- a/website/translated_docs/fr/FormObjects/input_overview.md
+++ b/website/translated_docs/fr/FormObjects/input_overview.md
@@ -16,7 +16,7 @@ In addition, inputs can be [enterable or non-enterable](properties_Entry.md#ente
You can manage the data with object or form [methods](Concepts/methods.md).
-### JSON Example:
+### Exemple JSON :
```code4d
"myText": {
diff --git a/website/translated_docs/fr/FormObjects/properties_Footers.md b/website/translated_docs/fr/FormObjects/properties_Footers.md
index 8aa98f6bc1b0f1..90a147270b1da1 100644
--- a/website/translated_docs/fr/FormObjects/properties_Footers.md
+++ b/website/translated_docs/fr/FormObjects/properties_Footers.md
@@ -42,7 +42,7 @@ Note that converting back and forth may lead to an end result that is different
*(font Arial 18)*: 52 pixels -> 2 lines -> 40 pixels *(font Arial 12)*: 3 pixels -> 0.4 line rounded up to 1 line -> 19 pixels
-#### JSON Example:
+#### Exemple JSON :
```
"List Box": {
diff --git a/website/translated_docs/fr/FormObjects/properties_Headers.md b/website/translated_docs/fr/FormObjects/properties_Headers.md
index 07f49023ad6e6d..4ebbe751da7b0d 100644
--- a/website/translated_docs/fr/FormObjects/properties_Headers.md
+++ b/website/translated_docs/fr/FormObjects/properties_Headers.md
@@ -40,7 +40,7 @@ Note that converting back and forth may lead to an end result that is different
*(font Arial 18)*: 52 pixels -> 2 lines -> 40 pixels *(font Arial 12)*: 3 pixels -> 0.4 line rounded up to 1 line -> 19 pixels
-#### JSON Example:
+#### Exemple JSON :
```
"List Box": {
diff --git a/website/translated_docs/fr/FormObjects/radio_overview.md b/website/translated_docs/fr/FormObjects/radio_overview.md
index 182ba1c68c1bc4..8298b7839aabb3 100644
--- a/website/translated_docs/fr/FormObjects/radio_overview.md
+++ b/website/translated_docs/fr/FormObjects/radio_overview.md
@@ -33,14 +33,14 @@ The value contained in a radio button object is not saved automatically (except
-## Button Styles
+## Styles de bouton
Radio [button styles](properties_TextAndPicture.md#button-style) control radio button's general appearance as well as its available properties. It is possible to apply different predefined styles to radio buttons. However, the same button style must be applied to all radio buttons in a group so that they work as expected.
4D provides radio buttons in the following predefined styles:
-### Regular
+### Classique
The Regular radio button style is a standard system button (*i.e.*, a small bullseye with text) which executes code when a user clicks on it.
@@ -49,41 +49,41 @@ The Regular radio button style is a standard system button (*i.e.*, a small bull
In addition to initiating code execution, the Regular radio button style changes bullsey color when being hovered.
-### Flat
+### A plat
The Flat radio button style is a standard system button (*i.e.*, a small bullseye with text) which executes code when a user clicks on it.

-By default, the Flat style has a minimalist appearance. The Flat button style's graphic nature is particularly useful for forms that will be printed.
+By default, the Flat style has a minimalist appearance. Le style graphique du bouton A plat est particulièrement utile pour les formulaires à imprimer.
-### Toolbar
+### Barre d’outils
The Toolbar radio button style is primarily intended for integration in a toolbar.
-By default, the Toolbar style has a transparent background with a label in the center. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+Par défaut, le style bouton Barre d'outils a un fond transparent avec un libellé au centre. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- - *Windows* - the button is highlighted.
+ - *Sous Windows* - le contour du bouton apparaît.

- - *macOS* - the highlight of the button never appears.
+ - *Sous macOS* - le contour du bouton n’apparaît jamais.
### Bevel
-The Bevel radio button style is similar to the [Toolbar](#toolbar) style's behavior, except that it has a light gray background and a gray outline. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+The Bevel radio button style is similar to the [Toolbar](#toolbar) style's behavior, except that it has a light gray background and a gray outline. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- - *Windows* - the button is highlighted.
+ - *Sous Windows* - le contour du bouton apparaît.

- - *macOS* - the highlight of the button never appears.
+ - *Sous macOS* - le contour du bouton n’apparaît jamais.
-### Rounded Bevel
+### Bevel arrondi
The Rounded Bevel button style is nearly identical to the [Bevel](#bevel) style except, depending on the OS, the corners of the button may be rounded.
@@ -102,7 +102,7 @@ The OS X Gradient button style is nearly identical to the [Bevel](#bevel) style
-### OS X Textured
+### OS X Texture
The OS X Textured radio button style is nearly identical to the [Toolbar](#toolbar) style except, depending on the OS, it may have a different appearance and does not display hover.
@@ -120,7 +120,7 @@ By default, the OS X Textured style appears as:
The Office XP button style combines the appearance of the [Regular](#regular) style with the [Toolbar](#toolbar) style's behavior.
-The colors (highlight and background) of a button with the Office XP style are based on the system colors. The appearance of the button can be different when the cursor hovers over it depending on the OS:
+The colors (highlight and background) of a button with the Office XP style are based on the system colors. En fonction du système d'exploitation, le design du bouton peut changer lorsque la souris le survole :
- *Windows* - its background only appears when the mouse rolls over it.
diff --git a/website/translated_docs/fr/FormObjects/shapes_overview.md b/website/translated_docs/fr/FormObjects/shapes_overview.md
index a379312b5c0b8b..bd028bbbc6c521 100644
--- a/website/translated_docs/fr/FormObjects/shapes_overview.md
+++ b/website/translated_docs/fr/FormObjects/shapes_overview.md
@@ -20,7 +20,7 @@ The design of rectangles is controlled through many properties (color, line thic

-#### JSON Example:
+#### Exemple JSON :
```code4d
"myRectangle": {
@@ -91,7 +91,7 @@ A static oval is a decorative object for forms. Oval objects can be used to draw

-#### JSON Example:
+#### Exemple JSON :
```code4d
"myOval": {
diff --git a/website/translated_docs/fr/FormObjects/splitters.md b/website/translated_docs/fr/FormObjects/splitters.md
index 4cf8042db8dbf3..cc14bf29307dc9 100644
--- a/website/translated_docs/fr/FormObjects/splitters.md
+++ b/website/translated_docs/fr/FormObjects/splitters.md
@@ -21,7 +21,7 @@ Some of the splitter’s general characteristics:
Once it is inserted, the splitter appears as a line. You can modify its [border style](properties_BackgroundAndBorder.md#border-line-style-dotted-line-type) to obtain a thinner line or [change its color](properties_BackgroundAndBorder.md##font-color-line-color).
-#### JSON Example:
+#### Exemple JSON :
```code4d
"mySplitter": {
diff --git a/website/translated_docs/fr/FormObjects/subform_overview.md b/website/translated_docs/fr/FormObjects/subform_overview.md
index 4c3caeb3e11df8..74d813372482b7 100644
--- a/website/translated_docs/fr/FormObjects/subform_overview.md
+++ b/website/translated_docs/fr/FormObjects/subform_overview.md
@@ -1,93 +1,93 @@
---
id: subformOverview
-title: Subform
+title: Sous-formulaire
---
## Aperçu
-A subform is a form included in another form.
+Un sous-formulaire est un formulaire inclus dans un autre formulaire.
-### Terminology
+### Terminologie
-In order to clearly define the concepts implemented with subforms, here are some definitions for certain terms used:
+Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés :
-* **Subform**: a form intended for inclusion in another form, itself called the parent form.
-* **Parent form**: a form containing one or more subform(s).
-* **Subform container**: an object included in the parent form, displaying an instance of the subform.
-* **Subform instance**: the representation of a subform in a parent form. This concept is important because it is possible to display several instances of the same subform in a parent form.
-* **List form**: instance of subform displayed as a list.
-* **Detail form**: page-type input form associated with a list-type subform that can be accessed by double-clicking in the list.
+* **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent.
+* **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s).
+* **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire.
+* **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent.
+* **Formulaire liste écran** : instance de sous-formulaire en liste.
+* **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste.
-## List subforms
+## Sous-formulaires en liste
-A list subform lets you enter, view, and modify data in other tables. You usually use list subforms in databases in which you have established One to Many relations. A list subform on a form in a related One table lets you view, enter, and modify data in a related Many table. You can have several subforms coming from different tables in the same form. However, it is not possible to place two subforms that belong to the same table on the same page of a form.
+Un sous-formulaire en liste vous permet de saisir, visualiser et modifier des données dans d’autres tables. Les sous-formulaires en liste sont généralement utilisés avec les bases de données utilisant des liens de type 1 vers N. Un sous-formulaire en liste affiche les enregistrements de la table N liée par un lien automatique de type 1 vers N. Vous pouvez disposer de plusieurs sous-formulaires provenant de différentes tables dans le même formulaire. En revanche, il n’est pas possible de placer deux sous-formulaires appartenant à la même table dans une même page de formulaire.
-For example, a Contacts manager database might use a list subform to display all the telephone numbers for a particular contact. Although the telephone numbers appear on the Contacts screen, the information is actually stored in a related table. Using a One to Many relation, this database design makes it easy to store an unlimited number of telephone numbers per contact. With automatic relations, you can support data entry directly into the related Many table without programming.
+Par exemple, une base de gestion de contacts peut utiliser une instance de sous-formulaire en liste pour afficher tous les contacts d’une société. Bien que les contacts apparaissent dans l’écran général, l’information est en fait stockée dans la table liée. A l’aide d’un lien 1 vers N, la conception de cette base de données rend facile le stockage d’un nombre illimité de contacts pour chacune des sociétés. Avec des liens automatiques, vous pouvez permettre la saisie de données dans la table liée sans programmation.
-Although list subforms are generally associated with Many tables, a subform instance can display the records of any other database table.
+Bien que les sous-formulaires en liste soient généralement associés aux tables N, une instance de sous-formulaire peut afficher des enregistrements de toute autre table de la base de données.
-You can also allow the user to enter data in the List form. Depending on the configuration of the subform, the user may display the detail form by double-clicking on a subrecord or by using the commands for adding and editing subrecords.
+Vous pouvez également permettre à l’utilisateur de saisir des données dans le formulaire liste. Suivant la configuration du sous-formulaire, l’utilisateur pourra afficher le formulaire détaillé en double-cliquant sur un sous-enregistrement ou en utilisant les commandes d’ajout et de modification des sous-enregistrements.
-> 4D offers three standard actions to meet the basic needs for managing subrecords: `Edit Subrecord`, `Delete Subrecord`, and `Add Subrecord`. When the form includes several subform instances, the action will apply to the subform that has the focus.
+> 4D propose trois actions standard, permettant de répondre aux besoins élémentaires de gestion des sous-enregistrements : `Modifier sous-enregistrement`, `Supprimer sous-enregistrement` et `Ajouter sous-enregistrement`. Lorsque le formulaire comporte plusieurs instances de sous-formulaires, l’action s’applique au sous-formulaire ayant le focus.
-## Page subforms
+## Sous-formulaires en page
-Page subforms can display the data of the current subrecord or any type of pertinent value depending on the context (variables, pictures, and so on). One of the main advantages of using page subforms is that they can include advanced functionalities and can interact directly with the parent form (widgets). Page subforms also have their own specific properties and events; you can manage them entirely by programming.
+Les sous-formulaires en mode page peuvent afficher des données relatives à l'enregistrement courant ou toute valeur pertinente en fonction du contexte (variables, images, etc.). Il peuvent également, et c'est là leur intérêt majeur, comporter des fonctionnalités avancées et interagir avec le formulaire parent (widgets). Les sous-formulaires en page bénéficient de propriétés et d'événements spécifiques, et peuvent être entièrement contrôlés par programmation.
-The page subform uses the input form indicated by the [Detail Form](properties_Subform.md#detail-form) property. Unlike a list subform, the form used can come from the same table as the parent form. It is also possible to use a project form. When executed, a page subform has the same standard display characteristics as an input form.
+Le sous-formulaire en page utilise le formulaire entrée désigné par la propriété [Formulaire détaillé](properties_Subform.md#detail-form). A la différence d’un sous-formulaire en mode liste, le formulaire utilisé peut provenir de la même table que le formulaire parent. Il est également possible d’utiliser un formulaire projet. En exécution, un sous-formulaire en mode page dispose des caractéristiques d’affichage standard d’un formulaire entrée.
-> 4D Widgets are predefined compound objects based upon page subforms. They are described in detail in a separate manual, [4D Widgets](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-Widgets.100-4465257.en.html).
+> Les widgets 4D sont des objets composés prédéfinis. Pour plus de détails sur les widgets, consultez le manuel [4D Widgets](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-Widgets.100-4465257.en.html).
-### Managing the bound variable
+### Gestion de la variable liée
-The [variable](properties_Object.md#variable-or-expression) bound to a page subform lets you link the parent form and subform contexts to put the finishing touches on sophisticated interfaces. For example, imagine a subform representing a dynamic clock, inserted into a parent form containing an enterable variable of the Time type:
+La [variable](properties_Object.md#variable-or-expression) liée au sous-formulaire permet de relier les deux contextes (formulaire et sous-formulaire) pour mettre au point des interfaces sophistiquées. Imaginons par exemple un sous-formulaire représentant une pendule dynamique, inséré dans un formulaire parent contenant une variable saisissable de type heure :

-Both objects (time variable and subform container) *have the same variable name*. In this case, when you open the parent form, 4D synchronizes both values automatically. If the variable value is set at several locations, 4D uses the value that was loaded last. It applies the following loading order: 1-Object methods of subform 2-Form method of subform 3-Object methods of parent form 4-Form method of parent form
+Les deux objets (variable heure et conteneur du sous-formulaire) *ont le même nom de variable*. Dans ce cas, à l’ouverture du formulaire parent, les deux valeurs sont automatiquement synchronisées par 4D. Si la valeur de la variable est définie à plusieurs emplacements, la valeur utilisée sera celle qui aura été chargée en dernier lieu. L’ordre de chargement suivant est appliqué : 1-Méthodes objet du sous-formulaire 2-Méthode formulaire du sous-formulaire 3-Méthodes objet du formulaire parent 4-Méthode formulaire du formulaire parent
-When the parent form is executed, the developer must take care to synchronize the variables using appropriate form events. Two types of interactions can occur: form to subform and vice versa.
+A l’exécution du formulaire parent, la synchronisation des variables doit être effectuée par le développeur à l’aide des événements formulaires adéquats. Deux types d’interactions peuvent se produire : du formulaire vers le sous-formulaire et inversement.
-#### Updating subform contents
-Case 1: The value of the parent form variable is modified and this modification must be passed on to the subform. In our example, the time of ParisTime changes to 12:15:00, either because the user entered it, or because it was updated dynamically (via the `Current time` command for example).
+#### Mise à jour du contenu du sous-formulaire
+Scénario 1 : La valeur de la variable du formulaire parent est modifiée et cette modification doit être répercutée dans le sous-formulaire. Dans notre exemple, l’heure de Heureparis passe à 12:15:00, soit parce que l’utilisateur l’a saisie, soit parce qu’elle est mise à jour dynamiquement (via la commande `Current time` par exemple).
-In this case, you must use the On Bound Variable Change form event. This event must be selected in the subform properties; it is generated in the form method of the subform.
+Dans ce cas, vous devez utiliser l'événement formulaire Sur modif variable liée. Cet événement doit être coché dans les propriétés du sous-formulaire, il sera généré dans la méthode formulaire du sous-formulaire.

-The `On Bound Variable Change` form event is generated:
+L’événement formulaire `Sur modif variable liée` est généré :
-- as soon as a value is assigned to the variable of the parent form, even if the same value is reassigned,
-- if the subform belongs to the current form page or to page 0.
+- dès qu’une valeur est affectée à la variable du formulaire parent, même si la même valeur est réaffectée,
+- si le sous-formulaire appartient à la page formulaire courante ou à la page 0.
-Note that, as in the above example, it is preferable to use the `OBJECT Get pointer` command which returns a pointer to the subform container rather than its variable because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). In this case, only a pointer lets you know which subform container is at the origin of the event.
+A noter que, comme dans l’exemple ci-dessus, il est préférable d’utiliser la commande `OBJECT Get pointer` qui retourne un pointeur vers le conteneur de sous-formulaire plutôt que sa variable car il est possible d’insérer plusieurs sous-formulaires dans un même formulaire parent (par exemple, une fenêtre affichant des fuseaux horaires contiendrait plusieurs pendules). Dans ce cas, seul un pointeur permet de connaître le conteneur de sous-formulaire à l’origine de l’événement.
-#### Updating parent form contents
+#### Mise à jour du contenu du formulaire parent
-Case 2: The contents of the subform are modified and this modification must be passed on to the parent form. In our example, imagine that the subform interface lets the user "manually" move the hands of the clock.
+Scénario 2 : Le contenu du sous-formulaire est modifié et cette modification doit être répercutée dans le formulaire parent. Dans notre exemple, imaginons que l’interface du sous-formulaire permette à l’utilisateur de déplacer "manuellement" les aiguilles.
-In this case, from the subform, you must assign the object value to the variable of the parent subform container. As in the previous example, we recommend that you use the `OBJECT Get pointer` command with the `Object subform container` selector which returns a pointer to the subform container.
+Dans ce cas, vous devez affecter la valeur de l’objet à la variable du conteneur du sous-formulaire parent depuis le sous-formulaire. Comme dans l’exemple précédent, il est conseillé d’utiliser pour cela la commande `OBJECT Get pointer` avec le sélecteur `Objet conteneur sous formulaire` qui retourne un pointeur vers le conteneur du sous-formulaire.
-Assigning the value to the variable generates the `On Data Change` form event in the object method of the parent subform container, which lets you perform any type of action. The event must be selected in the properties of the subform container.
+Cette affectation génère l’événement formulaire `Sur données modifiées` dans la méthode de l’objet conteneur du sous-formulaire parent, ce qui vous permet d’effectuer tout type d’action. L’événement doit être coché dans les propriétés du conteneur de sous-formulaire.

-> If you "manually" move the hands of the clock, this also generates the `On Data Change` form event in the object method of the *clockValue* variable in the subform.
+> Si vous déplacez "manuellement" les aiguilles, cela génère également l’événement formulaire `Sur données modifiées` de l'événement formulaire dans la méthode objet de la variable *clockValue* du sous-formulaire.
-### Using the subform bound object
+### Utiliser l'objet associé au sous-formulaire
-4D automatically binds an object (`C_OBJECT`) to each subform. The contents of this object can be read and/or modified from within the context of the subform, allowing you to share values in a local context.
+4D associe automatiquement un objet de langage (`C_OBJECT`) à chaque sous-formulaire. Le contenu de cet objet peut être lu et/ou modifié depuis le contexte du sous-formulaire, ce qui vous permet de partager des valeurs dans un contexte local.
-The object can be created automatically or be the parent container variable, if explicitely named and typed as Object (see below). In all cases, the object is returned by the `Form` command, which can be called directy the subform (using a pointer is useless). Since objects are always passed by reference, if the user modifies a property value in the subform, it will automatically be saved in the object itself.
+L'objet peut être créé automatiquement ou être la variable du conteneur parent, si elle a été explicitement nommée et typée Objet (voir ci-dessus). Dans tous les cas, l'objet est retourné par la commande `Form`, qui peut être appelée directement dans le sous-formulaire (l'usage d'un pointeur est inutile). Comme les objets sont toujours passés par référence, si l'utilisateur modifie une valeur de propriété dans le sous-formulaire, elle sera automatiquement mise à jour dans l'objet lui-même.
-For example, in your subform, field labels are stored in the bound object so that you can display different languages:
+Par exemple, dans votre sous-formulaire, les libellés des champs sont stockés dans l'objet associé afin de vous permettre d'afficher différentes langues :

-You can modify the labels from the subform by assigning values to the *InvoiceAddress* object:
+Vous pouvez modifier les libellés depuis le sous-formulaire en affectant des valeurs à l'objet *InvoiceAddress* :
```code4d
C_OBJECT($lang)
@@ -104,49 +104,49 @@ You can modify the labels from the subform by assigning values to the *InvoiceAd

-### Advanced inter-form programming
-Communication between the parent form and the instances of the subform may require going beyond the exchange of a value through the bound variable. In fact, you may want to update variables in subforms according to the actions carried out in the parent form and vice versa. If we use the previous example of the "dynamic clock" type subform, we may want to set one or more alarm times for each clock.
+### Programmation inter-formulaires avancée
+La communication entre le formulaire parent et les instances des sous-formulaires peut nécessiter d’aller au-delà de l’échange d’une valeur via la variable associée. En effet, vous pouvez souhaiter mettre à jour des variables dans les sous-formulaires en fonction d’actions effectuées dans le formulaire parent et inversement. Si l’on reprend l’exemple du sous-formulaire de type "pendule dynamique", on peut souhaiter définir une ou plusieurs heures d’alerte par pendule.
-4D has implemented the following mechanisms to meet these needs:
+Pour répondre à ces besoins, 4D propose les mécanismes suivants :
-- Use of the "subform" parameter with the `OBJECT Get name` command to specify the subform object and the `OBJECT Get pointer` command.
-- Calling of a container object from the subform using the `CALL SUBFORM CONTAINER` command,
-- Execution of a method in the context of the subform via the `EXECUTE METHOD IN SUBFORM` command.
+- Utilisation du paramètre "sous-formulaire" avec la commande `OBJECT Get name` afin de désigner l’objet sous-formulaire et commande `OBJECT Get pointer`.
+- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER`,
+- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM`.
-#### Object get pointer and Object get name commands
-In addition to the `Object subform container` selector, the `OBJECT Get pointer` command accepts a parameter that indicates in which subform to search for the object whose name is specified in the second parameter. This syntax can only be used when the Object named selector is passed.
+#### Commandes Object get pointer et Object get name
+Outre le sélecteur `Objet conteneur sous formulaire`, la commande `OBJECT Get pointer` admet un paramètre permettant de préciser dans quel sous-formulaire chercher l’objet dont le nom est passé en deuxième paramètre. Cette syntaxe n’est utilisable que lorsque le sélecteur Objet nommé est passé.
-For example, the following statement:
+Par exemple, l’instruction suivante :
```code4d
$ptr:=OBJECT Get pointer(Object named;"MyButton";"MySubForm")
```
-... retrieves a pointer to the "MyButton" variable that is located in the "MySubForm" subform object. This syntax can be used to access from the parent form any object found in a subform. Also note the `OBJECT Get name` command which can be used to retrieve the name of the object that has the focus.
+... permet de récupérer un pointeur sur la variable "MonBouton" se trouvant dans l’objet sous-formulaire "MonSousForm". Cette syntaxe permet d’accéder depuis le formulaire parent à tout objet se trouvant dans un sous-formulaire. A noter également la commande `OBJECT Get name` qui permet de récupérer le nom de l’objet ayant le focus.
-#### CALL SUBFORM CONTAINER command
+#### Commande CALL SUBFORM CONTAINER
-The `CALL SUBFORM CONTAINER` command lets a subform instance send an event to the subform container object, which can then process it in the context of the parent form. The event is received in the container object method. It may be at the origin of any event detected by the subform (click, drag-and-drop, etc.).
+La commande `CALL SUBFORM CONTAINER` permet à une instance de sous-formulaire d’envoyer un événement à l’objet conteneur du sous-formulaire, qui peut alors le traiter dans le contexte du formulaire parent. L’événement est reçu dans la méthode de l’objet conteneur. Il peut s’agir à l’origine de tout événement détecté par le sous-formulaire (clic, glisser-déposer, etc.).
-The code of the event is unrestricted (for example, 20000 or -100). You can use a code that corresponds to an existing event (for example, 3 for `On Validate`), or use a custom code. In the first case, you can only use events that you have checked in the Property List for subform containers. In the second case, the code must not correspond to any existing form event. It is recommended to use a negative value to be sure that this code will not be used by 4D in future versions.
+Le code de l’événement est libre (par exemple, 20000 ou -100). Vous pouvez soit utiliser un code correspondant à un événement existant (par exemple, 3 pour `Sur validation`), soit utiliser un code personnalisé. Dans le premier cas, seuls les événements présents dans la liste des événements "cochables" des conteneurs de sous-formulaire peuvent être utilisés (cf. Liste des propriétés). L'événement doit en outre être coché. Dans le second cas, le code ne doit correspondre à aucun événement formulaire existant. Il est conseillé d’utiliser une valeur négative pour avoir l’assurance que 4D n’utilisera pas ce code dans les versions futures.
-For more information, refer to the description of the `CALL SUBFORM CONTAINER` command.
+Pour plus d'informations, reportez-vous à la description de la commande `CALL SUBFORM CONTAINER`.
-#### EXECUTE METHOD IN SUBFORM command
-The `EXECUTE METHOD IN SUBFORM` command lets a form or one of its objects request the execution of a method in the context of the subform instance, which gives it access to the subform variables, objects, etc. This method can also receive parameters.
+#### Commande EXECUTE METHOD IN SUBFORM
+La commande `EXECUTE METHOD IN SUBFORM` permet à un formulaire ou à l’un de ses objets de demander l’exécution d’une méthode dans le contexte de l’instance du sous-formulaire, ce qui lui donne accès aux variables, objets, etc., du sous-formulaire. Cette méthode peut en outre recevoir des paramètres.
-This mechanism is illustrated in the following diagram:
+Ce mécanisme est illustré dans le schéma suivant :

-For more information, refer to the description of the `EXECUTE METHOD IN SUBFORM` command.
+Pour plus d'informations, reportez-vous à la description de la commande `EXECUTE METHOD IN SUBFORM`.
-#### GOTO OBJECT command
-The `GOTO OBJECT` command looks for the destination object in the parent form even if it is executed from a subform.
+#### Commande GOTO OBJECT
+La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire.
-## Supported Properties
+## Propriétés prises en charge
[Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Detail Form](properties_Subform.md#detail-form) - [Double click on empty row](properties_Subform.md#double-click-on-empty-row) - [Double click on row](properties_Subform.md#double-click-on-row) - [Enterable in list](properties_Subform.md#enterable-in-list) - [Expression Type](properties_Object.md#expression-type) - [Focusable](properties_Entry.md#focusable) - [Height](properties_CoordinatesAndSizing.md#height) - [Hide focus rectangle](properties_Appearance.md#hide-focus-rectangle) - [Horizontal Scroll Bar](properties_Appearance.md#horizontal-scroll-bar) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [List Form](properties_Subform.md#list-form) - [Method](properties_Action.md#method) - [Object Name](properties_Object.md#object-name) - [Print Frame](properties_Print.md#print-frame) - [Right](properties_CoordinatesAndSizing.md#right) - [Selection mode](properties_Subform.md#selection-mode) - [Source](properties_Subform.md#source) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [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)
diff --git a/website/translated_docs/fr/FormObjects/tabControl.md b/website/translated_docs/fr/FormObjects/tabControl.md
index 27f15d2eb31118..ab27c2bb1814f7 100644
--- a/website/translated_docs/fr/FormObjects/tabControl.md
+++ b/website/translated_docs/fr/FormObjects/tabControl.md
@@ -1,32 +1,32 @@
---
id: tabControl
-title: Tab Controls
+title: Onglets
---
-A tab control creates an object that lets the user choose among a set of virtual screens that are enclosed by the tab control object. Each screen is accessed by clicking its tab.
+Un onglet crée un objet qui permet à l’utilisateur de choisir entre plusieurs écrans virtuels affichés dans les limites de l’onglet. L’utilisateur accède à chaque écran en cliquant sur l’onglet correspondant.
-The following multi-page form uses a tab control object:
+Le formulaire multi-pages suivant utilise un onglet :

-To navigate from screen to screen, the user simply clicks the desired tab.
+Pour passer d’un écran à l’autre, l’utilisateur clique simplement sur l’onglet correspondant.
-The screens can represent pages in a multi-page form or an object that changes when the user clicks a tab. If the tab control is used as a page navigation tool, then the [FORM GOTO PAGE](https://doc.4d.com/4Dv17R5/4D/17-R5/FORM-GOTO-PAGE.301-4128536.en.html) command or the `gotoPage` standard action would be used when a user clicks a tab.
+Un onglet peut être utilisé, entre autres, pour gérer la navigation entre les pages d’un formulaire multi-pages. Dans ce cas, la commande [FORM GOTO PAGE](https://doc.4d.com/4Dv17R5/4D/17-R5/FORM-GOTO-PAGE.301-4128536.en.html) ou l’action standard `gotoPage` devra être appelée lorsque l’utilisateur cliquera sur l’onglet.
-Another use of the tab control is to control the data that is displayed in a subform. For example, a Rolodex could be implemented using a tab control. The tabs would display the letters of the alphabet and the tab control’s action would be to load the data corresponding to the letter that the user clicked.
+Un onglet peut aussi être utilisé pour contrôler les données qui sont affichées dans un sous-formulaire. On peut, par exemple, implémenter un rolodex à l’aide d’un onglet. Chaque onglet afficherait alors une des lettres de l’alphabet et l’action de l’onglet serait de charger les informations correspondantes à la lettre sur lequel l’utilisateur a cliqué.
-Each tab can display labels or labels and a small icon. If you include icons, they appear to the left of each label. Here is an example of a tab control that uses icons:
+Chaque onglet peut afficher des intitulés ou des intitulés et des petites icônes. Si vous placez des icônes, elles apparaissent à gauche de chaque intitulé. Voici un exemple d’onglet qui utilise des icônes :

-When you create a tab control, 4D manages the spacing and placement of the tabs. You only need to supply the labels in the form of an array, or the icons and labels in the form of a hierarchical list.
+Lorsque vous créez un onglet, 4D gère l’espacement et le placement des onglets. Vous n’avez à fournir à 4D que les intitulés sous la forme d’un tableau ou les icônes et intitulés sous la forme d’une énumération hiérarchique.
-If the tab control is wide enough to display all the tabs with both the labels and icons, it displays both. If the tab control is not wide enough to display both the labels and icons, 4D displays the icons only. If it can’t fit all the icons, it places scroll arrows to the right of the last visible tab. The scroll arrows allow the user to scroll the icons to the left or right.
+Si l’onglet est assez large, il affiche les intitulés et les icônes. S’il ne peut pas afficher toutes les icônes à la fois, il place des flèches de défilement à droite du dernier onglet visible. Les flèches de défilement permettent à l’utilisateur de faire défiler des onglets vers la droite ou vers la gauche.
-Under macOS, in addition to the standard position (top), the tab controls can also be aligned to the bottom.
+Sous macOS, les onglets peuvent être orientés, en plus de la position standard (en haut), à droite, à gauche ou en bas.
-### JSON Example:
+### Exemple JSON :
```code4d
"myTab": {
@@ -35,18 +35,18 @@ Under macOS, in addition to the standard position (top), the tab controls can al
"top": 160,
"width": 100,
"height": 20,
- "labelsPlacement": "bottom" //define the direction
+ "labelsPlacement": "bottom" //définit l'orientation
}
```
-## Adding labels to a tab control
+## Ajouter les intitulés dans un onglet
-There are several ways to supply the labels for a tab control:
+Pour placer des intitulés dans un onglet, plusieurs possibilités se présentent à vous :
-* You can assign a [choice list](properties_DataSource.md#choice-list-static-list) to the tab control, either through a collection (static list) or a JSON pointer ("$ref") to a json list. Icons associated with list items in the Lists editor will be displayed in the tob control.
-* You can create a Text array that contains the names of each page of the form. This code must be executed before the form is presented to the user. For example, you could place the code in the object method of the tab control and execute it when the `On Load` event occurs.
+* Vous pouvez associer à l’onglet [une liste de valeurs](properties_DataSource.md#choice-list-static-list), accessible via une collection (liste statique) ou un pointeur JSON ("$ref") vers une liste json. Les icônes associées à des éléments de liste dans l'éditeur de listes seront affichées dans l'onglet.
+* Vous pouvez créer un tableau Texte qui contient les noms de chaque page du formulaire. Le code doit être exécuté avant que le formulaire soit présenté à l’utilisateur. Par exemple, vous pouvez placer ce code dans l’événement formulaire `Sur chargement`.
```code4d
ARRAY TEXT(arrPages;3)
@@ -54,22 +54,22 @@ There are several ways to supply the labels for a tab control:
arrPages{2}:="Address"
arrPages{3}:="Notes"
```
-> You can also store the names of the pages in a hierarchical list and use the `Load list` command to load the values into the array.
+> Vous pouvez aussi stocker les noms des pages dans une liste hiérarchique et utiliser la commande `Load list` pour charger les valeurs dans le tableau.
-## Managing tabs programmatically
+## Gérer les onglets par programmation
-### FORM GOTO PAGE command
+### Commande FORM GOTO PAGE
-You can use the [FORM GOTO PAGE](https://doc.4d.com/4Dv17R5/4D/17-R5/FORM-GOTO-PAGE.301-4128536.en.html) command in the tab control’s method:
+Vous pouvez utiliser la commande [FORM GOTO PAGE](https://doc.4d.com/4Dv17R5/4D/17-R5/FORM-GOTO-PAGE.301-4128536.en.html) dans la méthode objet de l’onglet pour naviguer parmi les pages du formulaire :
```code4d
FORM GOTO PAGE(arrPages)
```
-The command is executed when the `On Clicked` event occurs. You should then clear the array when the `On Unload` event occurs.
+Cette commande devra être exécutée dans l’événement formulaire `Sur clic`. Il est préférable d’effacer le tableau dans l’événement formulaire `Sur libération`.
-Here is an example object method:
+Vous pouvez, par exemple, écrire le code suivant :
```code4d
Case of
@@ -82,12 +82,16 @@ Here is an example object method:
End case
```
-### Goto Page action
+### Action Goto Page
-When you assign the `gotoPage` [standard action](properties_Action.md#standard-action) to a tab control, 4D will automatically display the page of the form that corresponds to the number of the tab that is selected.
+Lorsque vous associez l’[](properties_Action.md#standard-action)action standard
+ `gotoPage` à un objet de type Onglet, 4D affiche automatiquement la page du formulaire correspondant au numéro de l’onglet sélectionné.
-For example, if the user selects the 3rd tab, 4D will display the third page of the current form (if it exists).
+Par exemple, si l’utilisateur clique sur le 3e onglet, 4D affichera la page 3 du formulaire courant (si elle existe).
-## Supported Properties
+
+
+## Propriétés prises en charge
+
[Bold](properties_Text.md#bold) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Choice List](properties_DataSource.md#choice-list-static-list) - [Class](properties_Object.md#css-class) - [Expression Type](properties_Object.md#expression-type) - [Font](properties_Text.md#font) - [Height](properties_CoordinatesAndSizing.md#height) - [Help Tip](properties_Help.md#help-tip) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Pusher](properties_ResizingOptions.md#pusher) - [Right](properties_CoordinatesAndSizing.md#right) - [Standard action](properties_Action.md#standard-action) - [Tab Control Direction](properties_Appearance.md#tab-control-direction) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width)
diff --git a/website/translated_docs/fr/FormObjects/viewProArea_overview.md b/website/translated_docs/fr/FormObjects/viewProArea_overview.md
index bd1b28cb956c60..80efb2e82ea7e9 100644
--- a/website/translated_docs/fr/FormObjects/viewProArea_overview.md
+++ b/website/translated_docs/fr/FormObjects/viewProArea_overview.md
@@ -3,11 +3,11 @@ id: viewProAreaOverview
title: Zone 4D View Pro
---
-4D View Pro allows you to insert and display a spreadsheet area in your 4D forms. A spreadsheet is an application containing a grid of cells into which you can enter information, execute calculations, or display pictures.
+4D View Pro vous permet d'insérer et d'afficher une zone de tableur dans vos formulaires 4D. Une tableur est une application contenant une grille de cellules dans lesquelles vous pouvez saisir des informations, effectuer des calculs ou afficher des images.

-Once you use 4D View Pro areas in your forms, you can import and export spreadsheets documents.
+Une fois que vous utilisez les zones 4D View Pro dans vos formulaires, vous pouvez importer et exporter des feuilles de calcul.
## Utiliser des zones 4D View Pro
diff --git a/website/translated_docs/fr/FormObjects/webArea_overview.md b/website/translated_docs/fr/FormObjects/webArea_overview.md
index cf9adb3cd31370..44b940292f0002 100644
--- a/website/translated_docs/fr/FormObjects/webArea_overview.md
+++ b/website/translated_docs/fr/FormObjects/webArea_overview.md
@@ -1,36 +1,36 @@
---
id: webAreaOverview
-title: Zone Web
+title: Zones Web
---
## Aperçu
-The Web areas can display various types of Web content within your forms: HTML pages with static or dynamic contents, files, pictures, Javascript, etc. The rendering engine of the Web area depends on the execution platform of the application and the selected [rendering engine option](properties_WebArea.md#use-embedded-web-rendering-engine).
+Les zones Web (Web Areas) peuvent afficher tout type de contenu Web(*) à l’intérieur de vos formulaires : pages HTML au contenu statique ou dynamique, fichiers, images, JavaScript, etc. Le moteur de rendu de la zone Web dépend de la plate-forme d’exécution de l’application et de [l'option de moteur de rendu](properties_WebArea.md#use-embedded-web-rendering-engine) sélectionnée.
-It is possible to create several Web areas in the same form. Note, however, that the use of Web areas must follow [several rules](#web-areas-rules).
+Il est possible de créer plusieurs zones Web dans un même formulaire. A noter cependant que l'insertion de zones Web est soumis à [quelques limitations](#web-areas-rules).
-Several dedicated [standard actions](#standard-actions), numerous [language commands](https://doc.4d.com/4Dv18/4D/18/Web-Area.201-4504309.en.html) as well as generic and specific [form events](#form-events) allow the developer to control the functioning of Web areas. Specific variables can be used to exchange information between the area and the 4D environment.
-> The use of Web plugins and Java applets is not recommended in Web areas because they may lead to instability in the operation of 4D, particularly at the event management level.
+Plusieurs [actions standard](#standard-actions), de nombreuses [commandes de langage](https://doc.4d.com/4Dv18/4D/18/Web-Area.201-4504309.en.html) et [événements formulaires](#form-events) génériques et dédiés permettent au développeur de contrôler le fonctionnement des zones Web. Des variables spécifiques permettent d’échanger des informations entre la zone et l’environnement 4D.
+> (*) L'usage de plugins Web et d'applets Java est toutefois déconseillé dans les zones Web car ils peuvent déstabiliser une opération menée par 4D, notamment au niveau de la gestion d'événement.
-## Specific properties
+## Propriétés spécifiques
-### Associated variables
+### Variables associées
-Two specific variables can be associated with each Web area:
-- [`URL`](properties_WebArea.md#url) --to control the URL displayed by the Web area
-- [`Progression`](properties_WebArea.md#progression) -- to control the loading percentage of the page displayed in the Web area.
+Deux variables spécifiques sont automatiquement associées à chaque zone Web :
+- [`URL`](properties_WebArea.md#url) -- pour contrôler l’URL affiché par la zone Web
+- [`Progression`](properties_WebArea.md#progression) -- pour contrôler le pourcentage de chargement de la page affichée dans la zone Web.
-### Web rendering engine
+### Moteur de rendu Web
-You can choose between [two rendering engines](properties_WebArea.md#use-embedded-web-rendering-engine) for the Web area, depending on the specifics of your application.
+Vous pouvez choisir entre [deux moteurs de rendus](properties_WebArea.md#use-embedded-web-rendering-engine) pour la zone Web, en fonction des spécificités de votre application.
-Selecting the embedded web rendering engine allows you to call 4D methods from the Web area.
+Le moteur de rendu Web vous permet d'appeler des méthodes 4D à partir de la zone Web.
-### Access 4D methods
-When the [Access 4D methods](properties_WebArea.md#access-4d-methods) property is selected, you can call 4D methods from a Web area.
+### Accès aux méthodes 4D
+Lorsque la propriété [Accès méthodes 4D](properties_WebArea.md#access-4d-methods) est cochée, vous pouvez appeler des méthodes 4D à partir d'une zone Web.
-> This property is only available if the Web area [uses the embedded Web rendering engine](#use-embedded-web-rendering-engine).
+> Cette propriété n'est disponible que si la zone Web [utilise le moteur de rendu Web intégré](#use-embedded-web-rendering-engine).
### $4d object
@@ -124,9 +124,9 @@ $4d.calcSum(33, 45, 75, 102.5, 7, function(dollarZero)
Four specific standard actions are available for managing Web areas automatically: `Open Back URL`, `Open Next URL`, `Refresh Current URL` and `Stop Loading URL`. These actions can be associated with buttons or menu commands and allow quick implementation of basic Web interfaces. These actions are described in [Standard actions](https://doc.4d.com/4Dv17R6/4D/17-R6/Standard-actions.300-4354791.en.html).
-## Form events
+## Evénements formulaire
-Specific form events are intended for programmed management of Web areas, more particularly concerning the activation of links:
+Des événements formulaire spécifiques sont destinés à la gestion programmée des zones Web, concernant notamment l'activation des liens :
- `On Begin URL Loading`
- `On URL Resource Loading`
@@ -136,7 +136,7 @@ Specific form events are intended for programmed management of Web areas, more p
- `On Open External Link`
- `On Window Opening Denied`
-In addition, Web areas support the following generic form events:
+En outre, les zones Web prennent en charge les événements formulaire génériques suivants :
- `On Load`
- `On Unload`
@@ -144,40 +144,40 @@ In addition, Web areas support the following generic form events:
- `On Losing Focus`
-## Web area rules
+## Notes d'utilisation des zones Web
-### User interface
+### Interface utilisateur
-When the form is executed, standard browser interface functions are available to the user in the Web area, which permit interaction with other form areas:
+Lors de l’exécution du formulaire, l’utilisateur dispose des fonctions d’interface standard des navigateurs dans la zone Web, ce qui lui permet d’interagir avec les autres zones du formulaire :
-- **Edit menu commands**: When the Web area has the focus, the **Edit** menu commands can be used to carry out actions such as copy, paste, select all, etc., according to the selection.
-- **Context menu**: It is possible to use the standard [context menu](properties_Entry.md#context-menu) of the system with the Web area. Display of the context menu can be controlled using the `WA SET PREFERENCE` command.
-- **Drag and drop**: The user can drag and drop text, pictures and documents within the Web area or between a Web area and the 4D form objects, according to the 4D object properties. For security reasons, changing the contents of a Web area by means of dragging and dropping a file or URL is not allowed by default. In this case, the mouse cursor displays a "forbidden" icon . You have to use the `WA SET PREFERENCE` command to explicitly allow the dropping of URLs or files in the area.
+- **Commandes Edit menu** : lorsque la zone Web a le focus, les commandes du menu **Edit** permettent d’effectuer les actions de copier, coller, tout sélectionner, etc., en fonction de la sélection.
+- **Le menu contextuel** : il est possible d'utiliser le [menu contextuel](properties_Entry.md#context-menu) standard du système avec la zone Web. L’affichage de ce menu peut également être contrôlé via la commande `WA SET PREFERENCE`.
+- **Glisser-déposer** : l’utilisateur peut effectuer des glisser-déposer de textes, d’images ou de documents à l’intérieur d’une zone Web ou entre une zone Web et les objets des formulaires 4D, en fonction des propriétés des objets 4D. Pour des raisons de sécurité, le changement du contenu d'une zone Web via le glisser-déposer d'un fichier ou d'un URL n'est pas autorisé par défaut. Dans ce cas, le curseur de la souris affiche une icône d'interdiction . La possibilité de déposer des URL ou des fichiers dans la zone doit être explicitement autorisée à l'aide de la commande `WA SET PREFERENCE`.
-### Subforms
-For reasons related to window redrawing mechanisms, the insertion of a Web area into a subform is subject to the following constraints:
+### Sous-formulaires
+Pour des raisons liées aux mécanismes de redessinement des fenêtres, l'insertion d'une zone Web dans un sous-formulaire est soumise aux contraintes suivantes :
-- The subform must not be able to scroll
-- The limits of the Web area must not exceed the size of the subform
+- Le sous-formulaire ne doit pas pouvoir défiler,
+- Les limites de la zone Web ne doivent pas dépasser de la zone du sous-formulaire
-> Superimposing a Web area on top of or beneath other form objects is not supported.
+> La superposition d'une zone Web au dessus ou en-dessous d'autres objets formulaires n'est pas prise en charge.
-### Web Area and Web server conflict (Windows)
-Under Windows, it is not recommended to access, via a Web area, the Web server of the 4D application containing the area because this configuration could lead to a conflict that freezes the application. Of course, a remote 4D can access the Web server of 4D Server, but not its own Web server.
+### Conflit Zone Web et serveur Web (Windows)
+Sous Windows, il est déconseillé d’accéder via une zone Web au serveur Web de l’application 4D contenant la zone car cette configuration peut provoquer un conflit paralysant l’application. Bien entendu, un 4D distant peut accéder au serveur Web du 4D Server, mais pas à son propre serveur Web.
-### Web plugins and Java applets
-The use of Web plugins and Java applets is not recommended in Web areas because they may lead to instability in the operation of 4D, particularly at the event management level.
+### Plugins Web et applets Java
+L'usage de plugins Web et d'applets Java dans les zones Web est déconseillé car ils peuvent entraîner des instabilités dans le fonctionnement de 4D, notamment au niveau de la gestion des événements.
-### Insertion of protocol (macOS)
-The URLs handled by programming in Web areas under macOS must begin with the protocol. For example, you need to pass the string "http://www.mysite.com" and not just "www.mysite.com".
+### Insertion du protocole (macOS)
+Les URLs manipulés par programmation dans les zones Web sous Mac OS doivent débuter par le protocole. Par exemple, vous devez passer la chaîne "http://www.monsite.fr" et non uniquement "www.monsite.fr".
-## Access to Web inspector
-You can view and use a Web inspector within Web areas of your forms. The Web inspector is a debugger which is provided by the embedded Web engine. It allows to parse the code and the flow of information of the Web pages.
+## Accès à l’inspecteur Web
+Il est possible d’afficher et d’utiliser un inspecteur Web au sein des zones Web de vos formulaires. L’inspecteur Web est un débogueur, proposé par le moteur de rendu Web intégré. Il permet d’analyser le code et les flux d’information des pages Web.
-### Displaying the Web inspector
-The following conditions must be met in order to view the Web inspector in a Web area:
+### Afficher l’inspecteur Web
+Pour que vous puissiez afficher l’inspecteur Web dans une zone Web, les conditions suivantes doivent être réunies :
- You must [select the embedded Web rendering engine](properties_WebArea.md#use-embedded-web-rendering-engine) for the area (the Web inspector is only available with this configuration).
- You must enable the [context menu](properties_Entry.md#context-menu) for the area (this menu is used to call the inspector)
@@ -195,7 +195,7 @@ When you have done the settings as described above, you then have new options su
-## Supported Properties
+## Propriétés prises en charge
[Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Context Menu](properties_Entry.md#context-menu) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Method](properties_Action.md#method) - [Object Name](properties_Object.md#object-name) - [Progression](properties_WebArea.md#progression) - [Right](properties_CoordinatesAndSizing.md#right) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [URL](properties_WebArea.md#url) - [Use embedded Web rendering engine](properties_WebArea.md#use-embedded-web-rendering-engine) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibilty](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width)
diff --git a/website/translated_docs/fr/REST/$asArray.md b/website/translated_docs/fr/REST/$asArray.md
new file mode 100644
index 00000000000000..40d937daf77fb2
--- /dev/null
+++ b/website/translated_docs/fr/REST/$asArray.md
@@ -0,0 +1,124 @@
+---
+id: asArray
+title: '$asArray'
+---
+
+
+Retourne le résultat d'une requête sous forme de tableau (c'est-à-dire une collection) au lieu d'un objet JSON.
+
+
+## Description
+
+Si vous souhaitez obtenir la réponse sous forme de tableau, il vous suffit d'ajouter `$asArray` à votre requête REST (*ex :*, `$asArray=true`).
+
+## Exemple
+Voici un exemple pour obtenir une réponse sous forme de tableau.
+
+ `GET /rest/Company/?$filter="name begin a"&$top=3&$asArray=true`
+
+**Réponse** :
+
+````
+[
+ {
+ "__KEY": 15,
+ "__STAMP": 0,
+ "ID": 15,
+ "name": "Alpha North Yellow",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 82000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ },
+ {
+ "__KEY": 34,
+ "__STAMP": 0,
+ "ID": 34,
+ "name": "Astral Partner November",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 90000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ },
+ {
+ "__KEY": 47,
+ "__STAMP": 0,
+ "ID": 47,
+ "name": "Audio Production Uniform",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 28000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ }
+]
+````
+
+Les mêmes données au format JSON par défaut :
+
+````
+{
+ "__entityModel": "Company",
+ "__GlobalStamp": 50,
+ "__COUNT": 52,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "15",
+ "__TIMESTAMP": "2018-03-28T14:38:07.434Z",
+ "__STAMP": 0,
+ "ID": 15,
+ "name": "Alpha North Yellow",
+ "creationDate": "0!0!0",
+ "revenues": 82000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(15)/employees?$expand=employees"
+ }
+ }
+ },
+ {
+ "__KEY": "34",
+ "__TIMESTAMP": "2018-03-28T14:38:07.439Z",
+ "__STAMP": 0,
+ "ID": 34,
+ "name": "Astral Partner November",
+ "creationDate": "0!0!0",
+ "revenues": 90000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(34)/employees?$expand=employees"
+ }
+ }
+ },
+ {
+ "__KEY": "47",
+ "__TIMESTAMP": "2018-03-28T14:38:07.443Z",
+ "__STAMP": 0,
+ "ID": 47,
+ "name": "Audio Production Uniform",
+ "creationDate": "0!0!0",
+ "revenues": 28000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(47)/employees?$expand=employees"
+ }
+ }
+ }
+ ],
+"__SENT": 3
+}
+````
+
+
diff --git a/website/translated_docs/fr/REST/$atomic_$atonce.md b/website/translated_docs/fr/REST/$atomic_$atonce.md
new file mode 100644
index 00000000000000..e66eeef76cb0c5
--- /dev/null
+++ b/website/translated_docs/fr/REST/$atomic_$atonce.md
@@ -0,0 +1,97 @@
+---
+id: atomic_$atonce
+title: '$atomic/$atonce'
+---
+
+
+Autorise les actions d'une requête REST à faire partie d'une transaction. Si aucune erreur n'est générée, la transaction est validée. Sinon, la transaction est annulée.
+
+
+## Description
+Lorsque plusieurs actions sont réunies, vous pouvez utiliser `$atomic/$atonce` pour vous assurer qu'aucune action ne se réalise si l'une d'elle échoue. Vous pouvez utiliser `$atomic` ou `$atonce`.
+
+
+## Exemple
+Nous appelons la requête REST suivante dans une transaction.
+
+ `POST /rest/Employee?$method=update&$atomic=true`
+
+**POST data**:
+
+````
+[
+{
+ "__KEY": "1",
+ "__STAMP": 5,
+ "salary": 45000
+},
+{
+ "__KEY": "2",
+ "__STAMP": 10,
+ "salary": 99000
+}
+]
+````
+
+Nous obtenons l'erreur suivante dans la deuxième entité ; la première entité n'est donc pas sauvegardée :
+
+````
+{
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 5,
+ "uri": "http://127.0.0.1:8081/rest/Employee(1)",
+ "ID": 1,
+ "firstName": "John",
+ "lastName": "Smith",
+ "fullName": "John Smith",
+ "gender": false,
+ "telephone": "4085551111",
+ "salary": 45000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 2,
+ "ID": 2,
+ "firstName": "Paula",
+ "lastName": "Miller",
+ "fullName": "Paula Miller",
+ "telephone": "4085559999",
+ "salary": 36000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ },
+ "__ERROR": [
+ {
+ "message": "Value cannot be greater than 60000",
+ "componentSignature": "dbmg",
+ "errCode": 1569
+ },
+ {
+ "message": "Entity fails validation",
+ "componentSignature": "dbmg",
+ "errCode": 1570
+ },
+ {
+ "message": "The entity# 1 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+ }
+ ]
+}
+````
+> Même si le salaire de la première entité porte la valeur 45000, cette valeur n'a pas été sauvegardée sur le serveur et le timestamp (__STAMP)* n'a pas été modifié. Si nous rechargeons l'entité, la valeur précédente s'affichera.
diff --git a/website/translated_docs/fr/REST/$attributes.md b/website/translated_docs/fr/REST/$attributes.md
new file mode 100644
index 00000000000000..8fa1a5a8e7a951
--- /dev/null
+++ b/website/translated_docs/fr/REST/$attributes.md
@@ -0,0 +1,106 @@
+---
+id: attributes
+title: '$attributes'
+---
+
+Allows selecting the related attribute(s) to get from the dataclass (*e.g.*, `Company(1)?$attributes=employees.lastname` or `Employee?$attributes=employer.name`).
+
+
+## Description
+
+When you have relation attributes in a dataclass, use `$attributes` to define the path of attributes whose values you want to get for the related entity or entities.
+
+You can apply `$attributes` to an entity (*e.g.*, People(1)) or an entity selection (*e.g.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) .
+
+
+- If `$attributes` is not specified in a query, or if the "*" value is passed, all available attributes are extracted. **Related entity** attributes are extracted with the simple form: an object with property `__KEY` (primary key). **Related entities** attributes are not extracted.
+
+- If `$attributes` is specified for **related entity** attributes:
+ - `$attributes=relatedEntity`: the related entity is returned with simple form (deferred __KEY property (primary key)).
+ - `$attributes=relatedEntity.*`: all the attributes of the related entity are returned
+ - `$attributes=relatedEntity.attributePath1, relatedEntity.attributePath2, ...`: only those attributes of the related entity are returned.
+
+
+- If `$attributes` is specified for **related entities** attributes:
+ - `$attributes=relatedEntities.*`: all the properties of all the related entities are returned
+ - `$attributes=relatedEntities.attributePath1, relatedEntities.attributePath2, ...`: only those attributes of the related entities are returned.
+
+
+
+## Example with related entities
+
+If we pass the following REST request for our Company datastore class (which has a relation attribute "employees"):
+
+ `GET /rest/Company(1)/?$attributes=employees.lastname`
+
+**Réponse** :
+
+```
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__TIMESTAMP": "2018-04-25T14:41:16.237Z",
+ "__STAMP": 2,
+ "employees": {
+ "__ENTITYSET": "/rest/Company(1)/employees?$expand=employees",
+ "__GlobalStamp": 50,
+ "__COUNT": 135,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2019-12-01T20:18:26.046Z",
+ "__STAMP": 5,
+ "lastname": "ESSEAL"
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2019-12-04T10:58:42.542Z",
+ "__STAMP": 6,
+ "lastname": "JONES"
+ },
+ ...
+ }
+}
+```
+
+If you want to get all attributes from employees:
+
+ `GET /rest/Company(1)/?$attributes=employees.*`
+
+If you want to get last name and job name attributes from employees:
+
+ `GET /rest/Company(1)/?$attributes=employees.lastname,employees.jobname`
+
+
+## Example with related entity
+
+If we pass the following REST request for our Employee datastore class (which has several relation attributes, including "employer"):
+
+
+ `GET /rest/Employee(1)?$attributes=employer.name`
+
+**Réponse** :
+
+```
+{
+ "__entityModel": "Employee",
+ "__KEY": "1",
+ "__TIMESTAMP": "2019-12-01T20:18:26.046Z",
+ "__STAMP": 5,
+ "employer": {
+ "__KEY": "1",
+ "__TIMESTAMP": "2018-04-25T14:41:16.237Z",
+ "__STAMP": 0,
+ "name": "Adobe"
+ }
+}
+```
+
+If you want to get all attributes of the employer:
+
+ `GET /rest/Employee(1)?$attributes=employer.*`
+
+If you want to get the last names of all employees of the employer:
+
+ `GET /rest/Employee(1)?$attributes=employer.employees.lastname`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$binary.md b/website/translated_docs/fr/REST/$binary.md
new file mode 100644
index 00000000000000..f38f6c9e236a6a
--- /dev/null
+++ b/website/translated_docs/fr/REST/$binary.md
@@ -0,0 +1,21 @@
+---
+id: binaire
+title: '$binary'
+---
+
+Pass "true" to save the BLOB as a document (must also pass `$expand={blobAttributeName}`)
+
+## Description
+
+`$binary` allows you to save the BLOB as a document. You must also use the [`$expand`]($expand.md) command in conjunction with it.
+
+When you make the following request:
+
+```
+GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt
+```
+
+You will be asked where to save the BLOB to disk:
+
+
+
diff --git a/website/translated_docs/fr/REST/$catalog.md b/website/translated_docs/fr/REST/$catalog.md
new file mode 100644
index 00000000000000..a7a76933768652
--- /dev/null
+++ b/website/translated_docs/fr/REST/$catalog.md
@@ -0,0 +1,337 @@
+---
+id: catalog
+title: '$catalog'
+---
+
+
+The catalog describes all the dataclasses and attributes available in the datastore.
+
+
+## Available syntaxes
+
+| Syntaxe | Exemple | Description |
+| --------------------------------------------- | -------------------- | -------------------------------------------------------------------------------- |
+| [**$catalog**](#catalog) | `/$catalog` | Returns a list of the dataclasses in your project along with two URIs |
+| [**$catalog/$all**](#catalogall) | `/$catalog/$all` | Returns information about all of your project's dataclasses and their attributes |
+| [**$catalog/{dataClass}**](#catalogdataclass) | `/$catalog/Employee` | Returns information about a dataclass and its attributes |
+
+
+## $catalog
+Returns a list of the dataclasses in your project along with two URIs: one to access the information about its structure and one to retrieve the data in the dataclass
+
+
+### Description
+
+When you call `$catalog`, a list of the dataclasses is returned along with two URIs for each dataclass in your project's datastore.
+
+Only the exposed dataclasses are shown in this list for your project's datastore. For more information, please refer to [**Exposing tables and fields**](configuration.md#exposing-tables-and-fields) section.
+
+Here is a description of the properties returned for each dataclass in your project's datastore:
+
+
+| Property | Type | Description |
+| -------- | ------ | --------------------------------------------------------------------------------- |
+| name | Chaine | Name of the dataclass. |
+| uri | Chaine | A URI allowing you to obtain information about the |dataclass and its attributes. |
+| dataURI | Chaine | A URI that allows you to view the data in the dataclass. |
+
+
+### Exemple
+
+`GET /rest/$catalog`
+
+**Result**:
+
+````
+{
+ dataClasses: [
+ {
+ name: "Company",
+ uri: "http://127.0.0.1:8081/rest/$catalog/Company",
+ dataURI: "http://127.0.0.1:8081/rest/Company"
+ },
+ {
+ name: "Employee",
+ uri: "http://127.0.0.1:8081/rest/$catalog/Employee",
+ dataURI: "http://127.0.0.1:8081/rest/Employee"
+ }
+ ]
+}
+````
+
+
+## $catalog/$all
+
+Returns information about all of your project's dataclasses and their attributes
+
+### Description
+
+Calling `$catalog/$all` allows you to receive detailed information about the attributes in each of the datastore classes in your project's active model. Remember that the scope for the datastore classes and their attributes must be **Public** for any information to be returned.
+
+For more information about what is returned for each datastore class and its attributes, use [`$catalog/{dataClass}`](#catalogdataClass).
+
+
+### Exemple
+
+`GET /rest/$catalog/$all`
+
+**Result**:
+
+````
+{
+
+ "dataClasses": [
+ {
+ "name": "Company",
+ "className": "Company",
+ "collectionName": "CompanyCollection",
+ "scope": "public",
+ "dataURI": "/rest/Company",
+ "attributes": [
+ {
+ "name": "ID",
+ "kind": "storage",
+ "scope": "public",
+ "indexed": true,
+ "type": "long",
+ "identifying": true
+ },
+ {
+ "name": "name",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "revenues",
+ "kind": "storage",
+ "scope": "public",
+ "type": "number"
+ },
+ {
+ "name": "staff",
+ "kind": "relatedEntities",
+ "matchColumn": "employees,staff",
+ "scope": "public",
+ "type": "EmployeeCollection",
+ "reversePath": true,
+ "path": "employer"
+ },
+ {
+ "name": "url",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ }
+ ],
+ "key": [
+ {
+ "name": "ID"
+ }
+ ]
+ },
+ {
+ "name": "Employee",
+ "className": "Employee",
+ "collectionName": "EmployeeCollection",
+ "scope": "public",
+ "dataURI": "/rest/Employee",
+ "attributes": [
+ {
+ "name": "ID",
+ "kind": "storage",
+ "scope": "public",
+ "indexed": true,
+ "type": "long",
+ "identifying": true
+ },
+ {
+ "name": "firstname",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "lastname",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "employer",
+ "kind": "relatedEntity",
+ "scope": "public",
+ "type": "Company",
+ "path": "Company"
+ }
+ ],
+ "key": [
+ {
+ "name": "ID"
+ }
+ ]
+ }
+ ]
+}
+````
+
+
+## $catalog/{dataClass}
+
+Returns information about a dataclass and its attributes
+
+### Description
+
+Calling `$catalog/{dataClass}` for a specific dataclass will return the following information about the dataclass and the attributes it contains. If you want to retrieve this information for all the datastore classes in your project's datastore, use [`$catalog/$all`](#catalogall).
+
+The information you retrieve concerns the following:
+
+* Dataclass
+* Attribute(s)
+* Method(s) if any
+* Primary key
+
+### DataClass
+
+The following properties are returned for an exposed dataclass:
+
+
+| Property | Type | Description |
+| -------------- | ------ | -------------------------------------------------------------------------------------------------- |
+| name | Chaine | Name of the dataclass |
+| collectionName | Chaine | Collection name of the dataclass |
+| scope | Chaine | Scope for the dataclass (note that only datastore classes whose **Scope** is public are displayed) |
+| dataURI | Chaine | A URI to the data in the dataclass |
+
+
+### Attribute(s)
+
+Here are the properties for each exposed attribute that are returned:
+
+| Property | Type | Description |
+| ------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| name | Chaine | Attribute name. |
+| kind | Chaine | Attribute type (storage, calculated, relatedEntity, and alias). |
+| scope | Chaine | Scope of the attribute (only those attributes whose scope is Public will appear). |
+| indexed | Chaine | If any **Index Kind** was selected, this property will return true. Otherwise, this property does not appear. |
+| type | Chaine | Attribute type (bool, blob, byte, date, duration, image, long, long64, number, string, uuid, or word) or the datastore class for a N->1 relation attribute. |
+| minLength | Nombre | This property returns the value entered for the **Min Length** property, if one was entered. |
+| maxLength | Nombre | This property returns the value entered for the **Max Length** property, if one was entered. |
+| autoComplete | Booléen | This property returns True if the **Autocomplete** property was checked. Otherwise, this property does not appear. |
+| identifying | Booléen | This property returns True if the **Identifying** property was checked. Otherwise, this property does not appear. |
+| multiLine | Booléen | This property returns True if the **Multiline** property was checked. Otherwise, this property does not appear. |
+| path | Chaine | For an alias attribute, the type is a path (*e.g.*, employer.name) |
+| readOnly | Booléen | This property is True if the attribute is of type calculated or alias. |
+| defaultFormat | Objet | If you define a format for the attribute in the **Default Format** property, it will appear in the "format" property. |
+
+### Method(s)
+
+Defines the project methods asociated to the dataclass, if any.
+
+### Primary Key
+
+The key object returns the **name** of the attribute defined as the **Primary Key** for the datastore class.
+
+
+### Exemple
+You can retrieve the information regarding a specific datastore class.
+
+`GET /rest/$catalog/Employee`
+
+**Result**:
+
+````
+{
+ name: "Employee",
+ className: "Employee",
+ collectionName: "EmployeeCollection",
+ scope: "public",
+ dataURI: "http://127.0.0.1:8081/rest/Employee",
+ defaultTopSize: 20,
+ extraProperties: {
+ panelColor: "#76923C",
+ __CDATA: "\n\n\t\t\n",
+ panel: {
+ isOpen: "true",
+ pathVisible: "true",
+ __CDATA: "\n\n\t\t\t\n",
+ position: {
+ X: "394",
+ Y: "42"
+ }
+ }
+ },
+ attributes: [
+ {
+ name: "ID",
+ kind: "storage",
+ scope: "public",
+ indexed: true,
+ type: "long",
+ identifying: true
+ },
+ {
+ name: "firstName",
+ kind: "storage",
+ scope: "public",
+ type: "string"
+ },
+ {
+ name: "lastName",
+ kind: "storage",
+ scope: "public",
+ type: "string"
+ },
+ {
+ name: "fullName",
+ kind: "calculated",
+ scope: "public",
+ type: "string",
+ readOnly: true
+ },
+ {
+ name: "salary",
+ kind: "storage",
+ scope: "public",
+ type: "number",
+ defaultFormat: {
+ format: "$###,###.00"
+ }
+ },
+ {
+ name: "photo",
+ kind: "storage",
+ scope: "public",
+ type: "image"
+ },
+ {
+ name: "employer",
+ kind: "relatedEntity",
+ scope: "public",
+ type: "Company",
+ path: "Company"
+ },
+ {
+ name: "employerName",
+ kind: "alias",
+ scope: "public",
+ type: "string",
+ path: "employer.name",
+ readOnly: true
+ },
+ {
+ name: "description",
+ kind: "storage",
+ scope: "public",
+ type: "string",
+ multiLine: true
+ },
+ ],
+ key: [
+ {
+ name: "ID"
+ }
+ ]
+}
+````
+
diff --git a/website/translated_docs/fr/REST/$compute.md b/website/translated_docs/fr/REST/$compute.md
new file mode 100644
index 00000000000000..cbd22b3ce34426
--- /dev/null
+++ b/website/translated_docs/fr/REST/$compute.md
@@ -0,0 +1,84 @@
+---
+id: compute
+title: '$compute'
+---
+
+Calculate on specific attributes (*e.g.*, `Employee/salary/?$compute=sum)` or in the case of an Object attribute (*e.g.*, Employee/objectAtt.property1/?$compute=sum)
+
+
+## Description
+
+This parameter allows you to do calculations on your data.
+
+If you want to perform a calculation on an attribute, you write the following:
+
+ `GET /rest/Employee/salary/?$compute=$all`
+
+If you want to pass an Object attribute, you must pass one of its property. Par exemple:
+
+ `GET /rest/Employee/objectAtt.property1/?$compute=$all`
+
+You can use any of the following keywords:
+
+
+| Keyword | Description |
+| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| $all | A JSON object that defines all the functions for the attribute (average, count, min, max, and sum for attributes of type Number and count, min, and max for attributes of type String |
+| average | Get the average on a numerical attribute |
+| count | Get the total number in the collection or datastore class (in both cases you must specify an attribute) |
+| min | Get the minimum value on a numerical attribute or the lowest value in an attribute of type String |
+| max | Get the maximum value on a numerical attribute or the highest value in an attribute of type String |
+| sum | Get the sum on a numerical attribute |
+
+
+## Exemple
+
+If you want to get all the computations for an attribute of type Number, you can write:
+
+ `GET /rest/Employee/salary/?$compute=$all`
+
+**Réponse** :
+
+````
+{
+ "salary": {
+ "count": 4,
+ "sum": 335000,
+ "average": 83750,
+ "min": 70000,
+ "max": 99000
+ }
+}
+````
+
+If you want to get all the computations for an attribute of type String, you can write:
+
+ `GET /rest/Employee/firstName/?$compute=$all`
+
+**Réponse** :
+
+````
+{
+ "salary": {
+ "count": 4,
+ "min": Anne,
+ "max": Victor
+ }
+}
+````
+
+If you want to just get one calculation on an attribute, you can write the following:
+
+ `GET /rest/Employee/salary/?$compute=sum`
+
+**Réponse** :
+
+`235000`
+
+If you want to perform a calculation on an Object attribute, you can write the following:
+
+ `GET /rest/Employee/objectAttribute.property1/?$compute=sum`
+
+Response:
+
+`45`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$directory.md b/website/translated_docs/fr/REST/$directory.md
new file mode 100644
index 00000000000000..d08334ecc1d3c2
--- /dev/null
+++ b/website/translated_docs/fr/REST/$directory.md
@@ -0,0 +1,182 @@
+---
+id: directory
+title: '$directory'
+---
+
+The directory handles user access through REST requests.
+
+
+## Available syntaxes
+
+| Syntaxe | Method | Description |
+| --------------------------------------------------------------------- | ------ | ---------------------------------------------------------------- |
+| [**$directory/currentUser**](#directorycurrentuser) | `GET` | Returns information about the current user |
+| [**$directory/currentUserBelongsTo**](#directorycurrentuserbelongsto) | `POST` | Indicates if the current user belongs to a specific group |
+| [**$directory/login**](#directorylogin) | `POST` | Opens a REST session on your 4D application and logs in the user |
+| [**$directory/logout**](#directorylogout) | `GET` | Logs out the current user |
+
+
+
+## $directory/currentUser
+Returns information about the current user
+
+
+### Description
+By calling `$directory/currentUser` after a user has logged in, you can retrieve the following information:
+
+| Property | Type | Description |
+| -------- | ------ | ------------------------------------------ |
+| userName | Chaine | Username used to log into the application. |
+| fullName | Chaine | Full name of the user. |
+| ID | Chaine | UUID referencing the user. |
+
+
+### Exemple
+ Call `$directory/currentUser` to find out the current user of your application.
+
+`GET /rest/$directory/currentUser`
+
+**Result**:
+
+````
+{
+ "result": {
+ "userName": "jsmith",
+ "fullName": "John Smith",
+ "ID": "12F169764253481E89F0E4EA8C1D791A"
+ }
+}
+````
+
+
+If no user has been logged in, the result is:
+
+````
+{
+ "result": null
+}
+````
+
+
+## $directory/currentUserBelongsTo
+
+Indicates if the current user belongs to a specific GroupID or GroupName.
+
+### Description
+To find out if the currently logged in user belongs to a specific group, use `$directory/currentUserBelongsTo`. You can pass either the group ID (which is the group's UUID reference number) or its name as defined in the datastore directory.
+
+If we want to check to see if the current user is a member of the Sales group, we must pass either *GroupID* or *GroupName* in the `POST`.
+
+### Exemple
+Below is an example of how to pass either the GroupID or GroupName in the `POST` data.
+
+`POST /rest/$directory/currentUserBelongsTo`
+
+**POST data**:
+
+`["88BAF858143D4B13B26AF48C7A5A7A68"]`
+
+or
+
+`["Sales"]`
+
+**Result**:
+
+If the current user is in the group specified in the array, the response will be:
+
+````
+{
+ "result": true
+}
+````
+
+Otherwise, it will return:
+
+````
+{
+ "result": false
+}
+````
+
+
+## $directory/login
+
+Opens a REST session on your 4D application and logs in the user.
+
+### Description
+Use `$directory/login` to open a session in your 4D application through REST and login a user. You can also modify the default 4D session timeout.
+
+All parameters must be passed in **headers** of a POST method:
+
+| Header key | Header value |
+| ------------------ | ---------------------------------------------------------------------------- |
+| username-4D | User - Not mandatory |
+| password-4D | Password - Not mandatory |
+| hashed-password-4D | Hashed password - Not mandatory |
+| session-4D-length | Session inactivity timeout (minutes). Cannot be less than 60 - Not mandatory |
+
+
+### Exemple
+
+```code4d
+C_TEXT($response;$body_t)
+ARRAY TEXT($hKey;3)
+ARRAY TEXT($hValues;3)
+$hKey{1}:="username-4D"
+$hKey{2}:="hashed-password-4D"
+$hKey{3}:="session-4D-length"
+$hValues{1}:="john"
+$hValues{2}:=Generate digest("123";4D digest)
+$hValues{3}:=120
+$httpStatus:=HTTP Request(HTTP POST method;"database.example.com:9000";$body_t;$response;$hKey;$hValues)
+```
+
+**Result**:
+
+If the login was successful, the result will be:
+
+```
+{
+ "result": true
+}
+```
+
+Otherwise, the response will be:
+
+```
+{
+ "result": false
+}
+```
+
+
+## $directory/logout
+
+
+Logs out the current user.
+
+### Description
+To log out the current user from your application, use `$directory/logout`.
+
+### Exemple
+You call `$directory/logout` to log the current user out of the application.
+
+`GET /rest/$directory/logout`
+
+**Result**:
+
+If the logout was successful, the result will be:
+
+````
+{
+ "result": true
+}
+````
+
+Otherwise, the response will be:
+
+````
+{
+ "result": false
+}
+````
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$distinct.md b/website/translated_docs/fr/REST/$distinct.md
new file mode 100644
index 00000000000000..957d00e3846c1c
--- /dev/null
+++ b/website/translated_docs/fr/REST/$distinct.md
@@ -0,0 +1,29 @@
+---
+id: distinct
+title: '$distinct'
+---
+
+
+Returns the distinct values for a specific attribute in a collection (*e.g.*, `Company/name?$filter="name=a*"&$distinct=true`)
+
+
+## Description
+
+`$distinct` allows you to return a collection containing the distinct values for a query on a specific attribute. Only one attribute in the dataclass can be specified. Generally, the String type is best; however, you can also use it on any attribute type that could contain multiple values.
+
+You can also use `$skip` and `$top/$limit` as well, if you'd like to navigate the selection before it's placed in an array.
+
+## Exemple
+In our example below, we want to retrieve the distinct values for a company name starting with the letter "a":
+
+ `GET /rest/Company/name?$filter="name=a*"&$distinct=true`
+
+**Réponse** :
+
+````
+[
+ "Adobe",
+ "Apple"
+]
+````
+
diff --git a/website/translated_docs/fr/REST/$entityset.md b/website/translated_docs/fr/REST/$entityset.md
new file mode 100644
index 00000000000000..f5f71488ba9150
--- /dev/null
+++ b/website/translated_docs/fr/REST/$entityset.md
@@ -0,0 +1,98 @@
+---
+id: entityset
+title: '$entityset'
+---
+
+After creating an entity set by using `$method=entityset`, you can then use it subsequently.
+
+
+## Available syntaxes
+
+| Syntaxe | Exemple | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------ |
+| [**$entityset/{entitySetID}**](#entitysetentitySetID) | `/People/$entityset/0ANUMBER` | Retrieves an existing entity set |
+| [**$entityset/{entitySetID}?$operator...&$otherCollection**](#entitysetentitysetidoperatorothercollection) | `/Employee/$entityset/0ANUMBER?$logicOperator=AND &$otherCollection=C0ANUMBER` | Creates a new entity set from comparing existing entity sets |
+
+
+
+
+## $entityset/{entitySetID}
+
+Retrieves an existing entity set (*e.g.*, `People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`)
+
+
+### Description
+
+This syntax allows you to execue any operation on a defined entity set.
+
+Because entity sets have a time limit on them (either by default or after calling `$timeout` with your own limit), you can call `$savedfilter` and `$savedorderby` to save the filter and order by statements when you create an entity set.
+
+When you retrieve an existing entity set stored in 4D Server's cache, you can also apply any of the following to the entity set: [`$expand`]($expand.md), [`$filter`]($filter), [`$orderby`]($orderby), [`$skip`]($skip.md), and [`$top/$limit`](top_$limit.md).
+
+### Exemple
+
+After you create an entity set, the entity set ID is returned along with the data. You call this ID in the following manner:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7`
+
+
+## $entityset/{entitySetID}?$operator...&$otherCollection
+
+Create another entity set based on previously created entity sets
+
+| Paramètres | Type | Description |
+| ---------------- | ------ | -------------------------------------------------------------- |
+| $operator | Chaine | One of the logical operators to test with the other entity set |
+| $otherCollection | Chaine | Entity set ID |
+
+
+
+### Description
+
+After creating an entity set (entity set #1) by using `$method=entityset`, you can then create another entity set by using the `$entityset/{entitySetID}?$operator... &$otherCollection` syntax, the `$operator` property (whose values are shown below), and another entity set (entity set #2) defined by the `$otherCollection` property. The two entity sets must be in the same datastore class.
+
+You can then create another entity set containing the results from this call by using the `$method=entityset` at the end of the REST request.
+
+Here are the logical operators:
+
+| Opérateur | Description |
+| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| AND | Returns the entities in common to both entity sets |
+| OU | Returns the entities in both entity sets |
+| EXCEPT | Returns the entities in entity set #1 minus those in entity set #2 |
+| INTERSECT | Returns either true or false if there is an intersection of the entities in both entity sets (meaning that least one entity is common in both entity sets) |
+> The logical operators are not case-sensitive, so you can write "AND" or "and".
+
+Below is a representation of the logical operators based on two entity sets. The red section is what is returned.
+
+**AND**
+
+
+
+**OU**
+
+
+
+**EXCEPT**
+
+
+
+
+The syntax is as follows:
+
+ `GET /rest/dataClass/$entityset/entitySetID?$logicOperator=AND&$otherCollection=entitySetID`
+
+### Exemple
+In the example below, we return the entities that are in both entity sets since we are using the AND logical operator:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=AND&$otherCollection=C05A0D887C664D4DA1B38366DD21629B`
+
+If we want to know if the two entity sets intersect, we can write the following:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=intersect&$otherCollection=C05A0D887C664D4DA1B38366DD21629B`
+
+If there is an intersection, this query returns true. Otherwise, it returns false.
+
+In the following example we create a new entity set that combines all the entities in both entity sets:
+
+`GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=OR&$otherCollection=C05A0D887C664D4DA1B38366DD21629B&$method=entityset`
diff --git a/website/translated_docs/fr/REST/$expand.md b/website/translated_docs/fr/REST/$expand.md
new file mode 100644
index 00000000000000..37e2ce4803fcda
--- /dev/null
+++ b/website/translated_docs/fr/REST/$expand.md
@@ -0,0 +1,25 @@
+---
+id: expand
+title: '$expand'
+---
+
+
+Expands an image stored in an Image attribute (*e.g.*, `Employee(1)/photo?$imageformat=best&$expand=photo`)
or
Expands an BLOB attribute to save it.
+
+> **Compatibility**: For compatibility reasons, $expand can be used to expand a relational attribute (*e.g.*, `Company(1)?$expand=staff` or `Employee/?$filter="firstName BEGIN a"&$expand=employer`). It is however recommended to use [`$attributes`]($attributes.md) for this feature.
+
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your datastore class, you can write the following by also passing "true" to $binary:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$filter.md b/website/translated_docs/fr/REST/$filter.md
new file mode 100644
index 00000000000000..5f0ec00b9f7317
--- /dev/null
+++ b/website/translated_docs/fr/REST/$filter.md
@@ -0,0 +1,100 @@
+---
+id: filter
+title: '$filter'
+---
+
+
+
+Allows to query the data in a dataclass or method *(e.g.*, `$filter="firstName!='' AND salary>30000"`)
+
+
+## Description
+
+This parameter allows you to define the filter for your dataclass or method.
+
+### Using a simple filter
+
+A filter is composed of the following elements:
+
+**{attribute} {comparator} {value}**
+
+For example: `$filter="firstName=john"` where `firstName` is the **attribute**, `=` is the **comparator** and `john` is the **value**.
+
+### Using a complex filter
+
+A more compex filter is composed of the following elements, which joins two queries:
+
+**{attribute} {comparator} {value} {AND/OR/EXCEPT} {attribute} {comparator} {value}**
+
+
+For example: `$filter="firstName=john AND salary>20000"` where `firstName` and `salary` are attributes in the Employee datastore class.
+
+### Using the params property
+
+You can also use 4D's params property.
+
+**{attribute} {comparator} {placeholder} {AND/OR/EXCEPT} {attribute} {comparator} {placeholder}&$params='["{value1}","{value2}"]"'**
+
+For example: `$filter="firstName=:1 AND salary>:2"&$params='["john",20000]'"` where firstName and salary are attributes in the Employee datastore class.
+
+For more information regarding how to query data in 4D, refer to the [dataClass.query()](https://doc.4d.com/4Dv18/4D/18/dataClassquery.305-4505887.en.html) documentation.
+> When inserting quotes (') or double quotes ("), you must escape them using using their character code:
+>
+> Quotes ('): \u0027 Double quotes ("): \u0022
+>
+> For example, you can write the following when passing a value with a quote when using the *params* property: `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"`
+
+## Attribute
+
+If the attribute is in the same dataclass, you can just pass it directly (*e.g.*, `firstName`). However, if you want to query another dataclass, you must include the relation attribute name plus the attribute name, i.e. the path (*e.g.*, employer.name). The attribute name is case-sensitive (`firstName` is not equal to `FirstName`).
+
+You can also query attributes of type Object by using dot-notation. For example, if you have an attribute whose name is "objAttribute" with the following structure:
+
+```
+{
+ prop1: "this is my first property",
+ prop2: 9181,
+ prop3: ["abc","def","ghi"]
+}
+```
+
+You can search in the object by writing the following:
+
+`GET /rest/Person/?filter="objAttribute.prop2 == 9181"`
+
+## Comparator
+
+The comparator must be one of the following values:
+
+| Comparator | Description |
+| ---------- | ------------------------ |
+| = | equals to |
+| != | not equal to |
+| > | greater than |
+| >= | greater than or equal to |
+| < | less than |
+| <= | less than or equal to |
+| begin | begins with |
+
+## Exemples
+
+In the following example, we look for all employees whose last name begins with a "j":
+
+```
+ GET /rest/Employee?$filter="lastName begin j"
+```
+
+In this example, we search the Employee datastore class for all employees whose salary is greater than 20,000 and who do not work for a company named Acme:
+
+```
+ GET /rest/Employee?$filter="salary>20000 AND
+ employer.name!=acme"&$orderby="lastName,firstName"
+```
+
+In this example, we search the Person datastore class for all the people whose number property in the anotherobj attribute of type Object is greater than 50:
+
+```
+ GET /rest/Person/?filter="anotherobj.mynum > 50"
+```
diff --git a/website/translated_docs/fr/REST/$imageformat.md b/website/translated_docs/fr/REST/$imageformat.md
new file mode 100644
index 00000000000000..f974062125348d
--- /dev/null
+++ b/website/translated_docs/fr/REST/$imageformat.md
@@ -0,0 +1,29 @@
+---
+id: imageformat
+title: '$imageformat'
+---
+
+Defines which image format to use for retrieving images (*e.g.*, `$imageformat=png`)
+
+## Description
+
+Define which format to use to display images. By default, the best format for the image will be chosen. You can, however, select one of the following formats:
+
+| Type | Description |
+| ---- | ------------------------------ |
+| GIF | GIF format |
+| PNG | PNG format |
+| JPEG | JPEG format |
+| TIFF | TIFF format |
+| best | Best format based on the image |
+
+Once you have defined the format, you must pass the image attribute to [`$expand`]($expand.md) to load the photo completely.
+
+If there is no image to be loaded or the format doesn't allow the image to be loaded, the response will be empty.
+
+## Exemple
+
+The following example defines the image format to JPEG regardless of the actual type of the photo and passes the actual version number sent by the server:
+
+`GET /rest/Employee(1)/photo?$imageformat=jpeg&$version=3&$expand=photo`
+
diff --git a/website/translated_docs/fr/REST/$info.md b/website/translated_docs/fr/REST/$info.md
new file mode 100644
index 00000000000000..29c765227f4fdb
--- /dev/null
+++ b/website/translated_docs/fr/REST/$info.md
@@ -0,0 +1,147 @@
+---
+id: info
+title: '$info'
+---
+
+Returns information about the entity sets currently stored in 4D Server's cache as well as user sessions
+
+## Description
+When you call this request for your project, you retrieve information in the following properties:
+
+| Property | Type | Description |
+| -------------- | ------- | ---------------------------------------------------------------------------------------------- |
+| cacheSize | Nombre | Wakanda Server's cache size. |
+| usedCache | Nombre | How much of Wakanda Server's cache has been used. |
+| entitySetCount | Nombre | Number of entity sets. |
+| entitySet | Tableau | An array in which each object contains information about each entity set. |
+| ProgressInfo | Tableau | An array containing information about progress indicator information. |
+| sessionInfo | Tableau | An array in which each object contains information about each user session. |
+| jsContextInfo | Tableau | An array containing one object that returns the information about the JavaScript context pool. |
+
+### entitySet
+For each entity set currently stored in 4D Server's cache, the following information is returned:
+
+
+| Property | Type | Description |
+| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| id | Chaine | A UUID that references the entity set. |
+| tableName | Chaine | Name of the datastore class. |
+| selectionSize | Nombre | Number of entities in the entity set. |
+| sorted | Booléen | Returns true if the set was sorted (using `$orderby`) or false if it's not sorted. |
+| refreshed | Date | When the entity set was created or the last time it was used. |
+| expires | Date | When the entity set will expire (this date/time changes each time when the entity set is refreshed). The difference between refreshed and expires is the timeout for an entity set. This value is either two hours by default or what you defined using `$timeout`. |
+
+For information about how to create an entity set, refer to `$method=entityset`. If you want to remove the entity set from 4D Server's cache, use `$method=release`.
+> 4D also creates its own entity sets for optimization purposes, so the ones you create with `$method=entityset` are not the only ones returned.
+> **IMPORTANT** If your project is in **Controlled Admin Access Mode**, you must first log into the project as a user in the Admin group.
+
+### sessionInfo
+
+For each user session, the following information is returned in the *sessionInfo* array:
+
+| Property | Type | Description |
+| ---------- | ------ | ------------------------------------------------------------ |
+| sessionID | Chaine | A UUID that references the session. |
+| userID | Chaine | A UUID that references the user who runs the session. |
+| userName | Chaine | The name of the user who runs the session. |
+| lifeTime | Nombre | The lifetime of a user session in seconds (3600 by default). |
+| expiration | Date | The current expiration date and time of the user session. |
+
+### jsContextInfo
+
+The object in the **jsContextInfo** array details the JavaScript context pool:
+
+
+| Property | Type | Description |
+| --------------------- | ------- | ------------------------------------------------------------------------------------- |
+| contextPoolSize | Nombre | Maximum number of reusable contexts that can be stored in the JS pool (50 by default) |
+| activeDebugger | Booléen | Debugger state (false by default) |
+| usedContextCount | Nombre | Number of used contexts |
+| usedContextMaxCount | Nombre | Maximum number of contexts that have been used simultaneously |
+| reusableContextCount | Nombre | Number of reusable contexts (both used and unused) |
+| unusedContextCount | Nombre | Number of unused contexts |
+| createdContextCount | Nombre | Number of contexts created since the project was started |
+| destroyedContextCount | Nombre | Number of contexts destroyed since the project was started |
+
+## Exemple
+
+Retrieve information about the entity sets currently stored in 4D Server's cache as well as user sessions:
+
+`GET /rest/$info`
+
+**Result**:
+
+```
+{
+cacheSize: 209715200,
+usedCache: 3136000,
+entitySetCount: 4,
+entitySet: [
+ {
+ id: "1418741678864021B56F8C6D77F2FC06",
+ tableName: "Company",
+ selectionSize: 1,
+ sorted: false,
+ refreshed: "2011-11-18T10:30:30Z",
+ expires: "2011-11-18T10:35:30Z"
+ },
+ {
+ id: "CAD79E5BF339462E85DA613754C05CC0",
+ tableName: "People",
+ selectionSize: 49,
+ sorted: true,
+ refreshed: "2011-11-18T10:28:43Z",
+ expires: "2011-11-18T10:38:43Z"
+ },
+ {
+ id: "F4514C59D6B642099764C15D2BF51624",
+ tableName: "People",
+ selectionSize: 37,
+ sorted: false,
+ refreshed: "2011-11-18T10:24:24Z",
+ expires: "2011-11-18T12:24:24Z"
+ }
+],
+ProgressInfo: [
+ {
+ UserInfo: "flushProgressIndicator",
+ sessions: 0,
+ percent: 0
+ },
+ {
+ UserInfo: "indexProgressIndicator",
+ sessions: 0,
+ percent: 0
+ }
+],
+sessionInfo: [
+ {
+ sessionID: "6657ABBCEE7C3B4089C20D8995851E30",
+ userID: "36713176D42DB045B01B8E650E8FA9C6",
+ userName: "james",
+ lifeTime: 3600,
+ expiration: "2013-04-22T12:45:08Z"
+ },
+ {
+ sessionID: "A85F253EDE90CA458940337BE2939F6F",
+ userID: "00000000000000000000000000000000",
+ userName: "default guest",
+ lifeTime: 3600,
+ expiration: "2013-04-23T10:30:25Z"
+}
+],
+jsContextInfo: [
+ {
+ "contextPoolSize": 50,
+ "activeDebugger": false,
+ "usedContextCount": 1,
+ "usedContextMaxCount": 1,
+ "reusableContextCount": 1,
+ "unusedContextCount": 0,
+ "createdContextCount": 4,
+ "destroyedContextCount": 3
+ }
+]
+}
+```
+> The progress indicator information listed after the entity sets is used internally by 4D.
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$method.md b/website/translated_docs/fr/REST/$method.md
new file mode 100644
index 00000000000000..16059fdb45a525
--- /dev/null
+++ b/website/translated_docs/fr/REST/$method.md
@@ -0,0 +1,420 @@
+---
+id: method
+title: '$method'
+---
+
+This parameter allows you to define the operation to execute with the returned entity or entity selection.
+
+## Available syntaxes
+
+| Syntaxe | Exemple | Description |
+| ----------------------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| [**$method=delete**](#methoddelete) | `POST /Employee?$filter="ID=11"& $method=delete` | Deletes the current entity, entity collection, or entity selection |
+| [**$method=entityset**](#methodentityset) | `GET /People/?$filter="ID>320"& $method=entityset& $timeout=600` | Creates an entity set in 4D Server's cache based on the collection of entities defined in the REST request |
+| [**$method=release**](#methodrelease) | `GET /Employee/$entityset/4CANUMBER?$method=release` | Releases an existing entity set stored in 4D Server's cache |
+| [**$method=subentityset**](#methodsubentityset) | `GET /Company(1)/staff?$expand=staff& $method=subentityset& $subOrderby=lastName ASC` | Creates an entity set based on the collection of related entities defined in the REST request |
+| [**$method=update**](#methodupdate) | `POST /Person/?$method=update` | Updates and/or creates one or more entities |
+| [**$method=validate**](#methodvalidate) | `POST /Employee/?$method=validate` | Validates the request when adding and/or modifying entities |
+
+
+
+
+
+## $method=delete
+
+Deletes the current entity, entity collection, or entity selection (created through REST)
+
+
+### Description
+
+With `$method=delete`, you can delete an entity or an entire entity collection. You can define the collection of entities by using, for example, [`$filter`]($filter.md) or specifying one directly using [`{dataClass}({key})`](%7BdataClass%7D.html#dataclasskey) *(e.g.*, /Employee(22)).
+
+You can also delete the entities in an entity set, by calling [`$entityset/{entitySetID}`]($entityset.md#entitysetentitysetid).
+
+## Exemple
+You can then write the following REST request to delete the entity whose key is 22:
+
+ `POST /rest/Employee(22)/?$method=delete`
+
+You can also do a query as well using $filter:
+
+ `POST /rest/Employee?$filter="ID=11"&$method=delete`
+
+You can also delete an entity set using $entityset/{entitySetID}:
+
+ `POST /rest/Employee/$entityset/73F46BE3A0734EAA9A33CA8B14433570?$method=delete`
+
+Response:
+
+```
+{
+ "ok": true
+}
+```
+
+
+
+## $method=entityset
+
+Creates an entity set in 4D Server's cache based on the collection of entities defined in the REST request
+
+### Description
+
+When you create a collection of entities in REST, you can also create an entity set that will be saved in 4D Server's cache. The entity set will have a reference number that you can pass to `$entityset/{entitySetID}` to access it. By default, it is valid for two hours; however, you can modify that amount of time by passing a value (in seconds) to $timeout.
+
+If you have used `$savedfilter` and/or `$savedorderby` (in conjunction with `$filter` and/or `$orderby`) when you created your entity set, you can recreate it with the same reference ID even if it has been removed from 4D Server's cache.
+
+### Exemple
+
+To create an entity set, which will be saved in 4D Server's cache for two hours, add `$method=entityset` at the end of your REST request:
+
+ `GET /rest/People/?$filter="ID>320"&$method=entityset`
+
+You can create an entity set that will be stored in 4D Server's cache for only ten minutes by passing a new timeout to `$timeout`:
+
+ `GET /rest/People/?$filter="ID>320"&$method=entityset&$timeout=600`
+
+You can also save the filter and order by, by passing true to `$savedfilter` and `$savedorderby`.
+> `$skip` and `$top/$limit` are not taken into consideration when saving an entity set.
+
+After you create an entity set, the first element, `__ENTITYSET`, is added to the object returned and indicates the URI to use to access the entity set:
+
+`__ENTITYSET: "http://127.0.0.1:8081/rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7"`
+
+
+
+
+## $method=release
+
+Releases an existing entity set stored in 4D Server's cache.
+
+### Description
+
+You can release an entity set, which you created using [`$method=entityset`](#methodentityset), from 4D Server's cache.
+
+### Exemple
+
+Release an existing entity set:
+
+`GET /rest/Employee/$entityset/4C51204DD8184B65AC7D79F09A077F24?$method=release`
+
+#### Response:
+
+If the request was successful, the following response is returned:
+
+```
+{
+ "ok": true
+}
+If the entity set wasn't found, an error is returned:
+
+{
+ "__ERROR": [
+ {
+ "message": "Error code: 1802\nEntitySet \"4C51204DD8184B65AC7D79F09A077F24\" cannot be found\ncomponent: 'dbmg'\ntask 22, name: 'HTTP connection handler'\n",
+ "componentSignature": "dbmg",
+ "errCode": 1802
+ }
+ ]
+}
+```
+
+
+## $method=subentityset
+
+Creates an entity set in 4D Server's cache based on the collection of related entities defined in the REST request
+
+
+### Description
+
+`$method=subentityset` allows you to sort the data returned by the relation attribute defined in the REST request.
+
+To sort the data, you use the `$subOrderby` property. For each attribute, you specify the order as ASC (or asc) for ascending order and DESC (desc) for descending order. By default, the data is sorted in ascending order.
+
+If you want to specify multiple attributes, you can delimit them with a comma, µ, `$subOrderby="lastName desc, firstName asc"`.
+
+### Exemple
+
+If you want to retrieve only the related entities for a specific entity, you can make the following REST request where staff is the relation attribute in the Company dataclass linked to the Employee dataclass:
+
+`GET /rest/Company(1)/staff?$expand=staff&$method=subentityset&$subOrderby=lastName ASC`
+
+#### Response:
+
+```
+{
+
+ "__ENTITYSET": "/rest/Employee/$entityset/FF625844008E430B9862E5FD41C741AB",
+ "__entityModel": "Employee",
+ "__COUNT": 2,
+ "__SENT": 2,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "firstName": "Linda",
+ "lastName": "Jones",
+ "birthday": "1970-10-05T14:23:00Z",
+ "employer": {
+ "__deferred": {
+ "uri": "/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ },
+ {
+ "__KEY": "1",
+ "__STAMP": 3,
+ "ID": 1,
+ "firstName": "John",
+ "lastName": "Smith",
+ "birthday": "1985-11-01T15:23:00Z",
+ "employer": {
+ "__deferred": {
+ "uri": "/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ }
+ ]
+
+}
+```
+
+
+## $method=update
+
+
+Updates and/or creates one or more entities
+
+### Description
+
+`$method=update` allows you to update and/or create one or more entities in a single **POST**. If you update and/or create one entity, it is done in an object with each property an attribute with its value, *e.g.*, `{ lastName: "Smith" }`. If you update and/or create multiple entities, you must create an array of objects.
+
+To update an entity, you must pass the `__KEY` and `__STAMP` parameters in the object along with any modified attributes. If both of these parameters are missing, an entity will be added with the values in the object you send in the body of your **POST**.
+
+All triggers, calculated attributes, and events are executed immediately when saving the entity to the server. The response contains all the data as it exists on the server.
+
+You can also put these requests to create or update entities in a transaction by calling `$atomic/$atonce`. If any errors occur during data validation, none of the entities are saved. You can also use $method=validate to validate the entities before creating or updating them.
+
+If a problem arises while adding or modifying an entity, an error will be returned to you with that information.
+> Notes for specific attribute types:
+>
+> * **Dates** must be expressed in JS format: YYYY-MM-DDTHH:MM:SSZ (e.g., "2010-10-05T23:00:00Z"). If you have selected the Date only property for your Date attribute, the time zone and time (hour, minutes, and seconds) will be removed. In this case, you can also send the date in the format that it is returned to you dd!mm!yyyy (e.g., 05!10!2013).
+> * **Booleans** are either true or false.
+> * Uploaded files using `$upload` can be applied to an attribute of type Image or BLOB by passing the object returned in the following format { "ID": "D507BC03E613487E9B4C2F6A0512FE50"}
+
+### Exemple
+
+To update a specific entity, you use the following URL:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+{
+ __KEY: "340",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Miller"
+}
+```
+
+The firstName and lastName attributes in the entity indicated above will be modified leaving all other attributes (except calculated ones based on these attributes) unchanged.
+
+If you want to create an entity, you can POST the attributes using this URL:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+{
+ firstName: "John",
+ lastName: "Smith"
+}
+```
+
+You can also create and update multiple entities at the same time using the same URL above by passing multiple objects in an array to the POST:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+[{
+ "__KEY": "309",
+ "__STAMP": 5,
+ "ID": "309",
+ "firstName": "Penelope",
+ "lastName": "Miller"
+}, {
+ "firstName": "Ann",
+ "lastName": "Jones"
+}]
+```
+
+**Response:**
+
+When you add or modify an entity, it is returned to you with the attributes that were modified. For example, if you create the new employee above, the following will be returned:
+
+```
+{
+ "__KEY": "622",
+ "__STAMP": 1,
+ "uri": "http://127.0.0.1:8081/rest/Employee(622)",
+ "ID": 622,
+ "firstName": "John",
+ "firstName": "Smith",
+ "fullName": "John Smith"
+}
+```
+> The only reason the fullName attribute is returned is because it is a calculated attribute based on both firstName and lastName.
+
+If, for example, the stamp is not correct, the following error is returned:
+
+```
+{
+ "__ENTITIES": [
+ {
+ "__KEY": "309",
+ "__STAMP": 1,
+ "ID": 309,
+ "firstName": "Betty",
+ "lastName": "Smith",
+ "fullName": "Betty Smith",
+ "__ERROR": [
+ {
+ "message": "Given stamp does not match current one for record# 308 of table Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1263
+ },
+ {
+ "message": "Cannot save record 308 in table Employee of database Widgets",
+ "componentSignature": "dbmg",
+ "errCode": 1046
+ },
+ {
+ "message": "The entity# 308 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+ },
+ {
+ "__KEY": "612",
+ "__STAMP": 4,
+ "uri": "http://127.0.0.1:8081/rest/Employee(612)",
+ "ID": 612,
+ "firstName": "Ann",
+ "lastName": "Jones",
+ "fullName": "Ann Jones"
+ }
+ ]
+}
+```
+
+If, for example, the user does not have the appropriate permissions to update an entity, the following error is returned:
+
+```
+{
+ "__KEY": "2",
+ "__STAMP": 4,
+ "ID": 2,
+ "firstName": "Paula",
+ "lastName": "Miller",
+ "fullName": "Paula Miller",
+ "telephone": "408-555-5555",
+ "salary": 56000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ },
+ "__ERROR": [
+ {
+ "message": "No permission to update for dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1558
+ },
+ {
+ "message": "The entity# 1 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+}
+```
+
+
+## $method=validate
+
+Validates the request when adding and/or modifying entities
+
+### Description
+
+Before actually saving a new or modified entity with `$method=update`, you can first try to validate the actions with `$method=validate`.
+
+### Exemple
+
+In this example, we **POST** the following request to $method=validate:
+
+ `POST /rest/Employee/?$method=validate`
+
+**POST data**:
+
+```
+[{
+ "__KEY": "1",
+ "__STAMP": 8,
+ "firstName": "Pete",
+ "lastName": "Jones",
+ "salary": 75000
+}, {
+ "firstName": "Betty",
+ "lastName": "Miller",
+}]
+```
+
+**Réponse** :
+
+If the request is successful, the following response is returned:
+
+```
+{
+ "ok": true
+}
+```
+
+Otherwise, you receive an error. In our case, we got an error because our salary field must be inferior to 60000:
+
+```
+{
+ "__ENTITIES": [
+ {
+ "__ERROR": [
+ {
+ "message": "Value cannot be greater than 60000",
+ "componentSignature": "dbmg",
+ "errCode": 1569
+ },
+ {
+ "message": "Entity fails validation",
+ "componentSignature": "dbmg",
+ "errCode": 1570
+ },
+ {
+ "message": "The new entity of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1534
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/fr/REST/$orderby.md b/website/translated_docs/fr/REST/$orderby.md
new file mode 100644
index 00000000000000..c142e9c4570520
--- /dev/null
+++ b/website/translated_docs/fr/REST/$orderby.md
@@ -0,0 +1,51 @@
+---
+id: orderby
+title: '$orderby'
+---
+
+
+Sorts the data returned by the attribute and sorting order defined (*e.g.*, `$orderby="lastName desc, salary asc"`)
+
+## Description
+
+`$orderby` orders the entities returned by the REST request. For each attribute, you specify the order as `ASC` (or `asc`) for ascending order and `DESC` (`desc`) for descending order. By default, the data is sorted in ascending order. If you want to specify multiple attributes, you can delimit them with a comma, *e.g.*, `$orderby="lastName desc, firstName asc"`.
+
+
+## Exemple
+
+In this example, we retrieve entities and sort them at the same time:
+
+ `GET /rest/Employee/?$filter="salary!=0"&$orderby="salary DESC,lastName ASC,firstName ASC"`
+
+The example below sorts the entity set by lastName attribute in ascending order:
+
+ `GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$orderby="lastName"`
+
+**Result**:
+
+```
+{
+ __entityModel: "Employee",
+ __COUNT: 10,
+ __SENT: 10,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith",
+ salary: 90000
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary",
+ salary: 80000
+ },
+// more entities
+ ]
+}
+```
+
diff --git a/website/translated_docs/fr/REST/$querypath.md b/website/translated_docs/fr/REST/$querypath.md
new file mode 100644
index 00000000000000..c7371a5ada6857
--- /dev/null
+++ b/website/translated_docs/fr/REST/$querypath.md
@@ -0,0 +1,110 @@
+---
+id: querypath
+title: '$querypath'
+---
+
+Returns the query as it was executed by 4D Server (*e.g.*, `$querypath=true`)
+
+## Description
+
+`$querypath` returns the query as it was executed by 4D Server. If, for example, a part of the query passed returns no entities, the rest of the query is not executed. The query requested is optimized as you can see in this `$querypath`.
+
+For more information about query paths, refer to [queryPlan and queryPath](genInfo.md#querypath-and-queryplan).
+
+In the steps collection, there is an object with the following properties defining the query executed:
+
+| Property | Type | Description |
+| ------------- | ---------- | --------------------------------------------------------------------------- |
+| description | Chaine | Actual query executed or "AND" when there are multiple steps |
+| time | Nombre | Number of milliseconds needed to execute the query |
+| recordsfounds | Nombre | Number of records found |
+| steps | Collection | An collection with an object defining the subsequent step of the query path |
+
+## Exemple
+
+If you passed the following query:
+
+ `GET /rest/Employee/$filter="employer.name=acme AND lastName=Jones"&$querypath=true`
+
+And no entities were found, the following query path would be returned, if you write the following:
+
+`GET /rest/$querypath`
+
+**Réponse** :
+
+```
+__queryPath: {
+
+ steps: [
+ {
+ description: "AND",
+ time: 0,
+ recordsfounds: 0,
+ steps: [
+ {
+ description: "Join on Table : Company : People.employer = Company.ID",
+ time: 0,
+ recordsfounds: 0,
+ steps: [
+ {
+ steps: [
+ {
+ description: "Company.name = acme",
+ time: 0,
+ recordsfounds: 0
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+
+}
+```
+
+If, on the other hand, the first query returns more than one entity, the second one will be executed. If we execute the following query:
+
+ `GET /rest/Employee/$filter="employer.name=a* AND lastName!=smith"&$querypath=true`
+
+If at least one entity was found, the following query path would be returned, if you write the following:
+
+ `GET /rest/$querypath`
+
+**Respose**:
+
+```
+"__queryPath": {
+ "steps": [
+ {
+ "description": "AND",
+ "time": 1,
+ "recordsfounds": 4,
+ "steps": [
+ {
+ "description": "Join on Table : Company : Employee.employer = Company.ID",
+ "time": 1,
+ "recordsfounds": 4,
+ "steps": [
+ {
+ "steps": [
+ {
+ "description": "Company.name LIKE a*",
+ "time": 0,
+ "recordsfounds": 2
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Employee.lastName # smith",
+ "time": 0,
+ "recordsfounds": 4
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/fr/REST/$queryplan.md b/website/translated_docs/fr/REST/$queryplan.md
new file mode 100644
index 00000000000000..3c3f3d6bf82952
--- /dev/null
+++ b/website/translated_docs/fr/REST/$queryplan.md
@@ -0,0 +1,42 @@
+---
+id: queryplan
+title: '$queryplan'
+---
+
+
+Returns the query as it was passed to 4D Server (*e.g.*, `$queryplan=true`)
+
+## Description
+$queryplan returns the query plan as it was passed to 4D Server.
+
+| Property | Type | Description |
+| -------- | ------- | ------------------------------------------------------------------------------------------- |
+| item | Chaine | Actual query executed |
+| subquery | Tableau | If there is a subquery, an additional object containing an item property (as the one above) |
+
+For more information about query plans, refer to [queryPlan and queryPath](genInfo.md#querypath-and-queryplan).
+
+## Exemple
+If you pass the following query:
+
+ `GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true`
+
+#### Response:
+
+```
+__queryPlan: {
+ And: [
+ {
+ item: "Join on Table : Company : People.employer = Company.ID",
+ subquery: [
+ {
+ item: "Company.name = acme"
+ }
+ ]
+ },
+ {
+ item: "People.lastName = Jones"
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/fr/REST/$savedfilter.md b/website/translated_docs/fr/REST/$savedfilter.md
new file mode 100644
index 00000000000000..8d196d4dae111d
--- /dev/null
+++ b/website/translated_docs/fr/REST/$savedfilter.md
@@ -0,0 +1,26 @@
+---
+id: savedfilter
+title: '$savedfilter'
+---
+
+Saves the filter defined by $filter when creating an entity set (*e.g.*, `$savedfilter="{filter}"`)
+
+## Description
+
+When you create an entity set, you can save the filter that you used to create it as a measure of security. If the entity set that you created is removed from 4D Server's cache (due to the timeout, the server's need for space, or your removing it by calling [`$method=release`]($method.md#methodrelease)).
+
+You use `$savedfilter` to save the filter you defined when creating your entity set and then pass `$savedfilter` along with your call to retrieve the entity set each time.
+
+If the entity set is no longer in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+If you have used both `$savedfilter` and [`$savedorderby`]($savedorderby.md) in your call when creating an entity set and then you omit one of them, the new entity set, which will have the same reference number, will reflect that.
+
+## Exemple
+
+In our example, we first call ``$savedfilter` with the initial call to create an entity set as shown below:
+
+`GET /rest/People/?$filter="employer.name=Apple"&$savedfilter="employer.name=Apple"&$method=entityset`
+
+Then, when you access your entity set, you write the following to ensure that the entity set is always valid:
+
+`GET /rest/People/$entityset/AEA452C2668B4F6E98B6FD2A1ED4A5A8?$savedfilter="employer.name=Apple"`
diff --git a/website/translated_docs/fr/REST/$savedorderby.md b/website/translated_docs/fr/REST/$savedorderby.md
new file mode 100644
index 00000000000000..4d407f67f8773c
--- /dev/null
+++ b/website/translated_docs/fr/REST/$savedorderby.md
@@ -0,0 +1,23 @@
+---
+id: savedorderby
+title: '$savedorderby'
+---
+
+Saves the order by defined by `$orderby` when creating an entity set (*e.g.*, `$savedorderby="{orderby}"`)
+
+## Description
+
+When you create an entity set, you can save the sort order along with the filter that you used to create it as a measure of security. If the entity set that you created is removed from 4D Server's cache (due to the timeout, the server's need for space, or your removing it by calling [`$method=release`]($method.md#methodrelease)).
+
+You use `$savedorderby` to save the order you defined when creating your entity set, you then pass `$savedorderby` along with your call to retrieve the entity set each time.
+
+If the entity set is no longer in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. If you have used both [`$savedfilter`]($savedfilter.md) and `$savedorderby` in your call when creating an entity set and then you omit one of them, the new entity set, having the same reference number, will reflect that.
+
+## Exemple
+You first call `$savedorderby` with the initial call to create an entity set:
+
+ `GET /rest/People/?$filter="lastName!=''"&$savedfilter="lastName!=''"&$orderby="salary"&$savedorderby="salary"&$method=entityset`
+
+Then, when you access your entity set, you write the following (using both $savedfilter and $savedorderby) to ensure that the filter and its sort order always exists:
+
+`GET /rest/People/$entityset/AEA452C2668B4F6E98B6FD2A1ED4A5A8?$savedfilter="lastName!=''"&$savedorderby="salary"`
diff --git a/website/translated_docs/fr/REST/$skip.md b/website/translated_docs/fr/REST/$skip.md
new file mode 100644
index 00000000000000..17b0bf24bc0a75
--- /dev/null
+++ b/website/translated_docs/fr/REST/$skip.md
@@ -0,0 +1,19 @@
+---
+id: skip
+title: '$skip'
+---
+
+Starts the entity defined by this number in the collection (*e.g.*, `$skip=10`)
+
+
+## Description
+
+`$skip` defines which entity in the collection to start with. By default, the collection sent starts with the first entity. To start with the 10th entity in the collection, pass 10.
+
+`$skip` is generally used in conjunction with [`$top/$limit`]($top_$limit.md) to navigate through an entity collection.
+
+## Exemple
+
+In the following example, we go to the 20th entity in our entity set:
+
+ `GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$skip=20`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$timeout.md b/website/translated_docs/fr/REST/$timeout.md
new file mode 100644
index 00000000000000..f267856bfd04e0
--- /dev/null
+++ b/website/translated_docs/fr/REST/$timeout.md
@@ -0,0 +1,21 @@
+---
+id: timeout
+title: '$timeout'
+---
+
+
+Defines the number of seconds to save an entity set in 4D Server's cache (*e.g.*, `$timeout=1800`)
+
+## Description
+
+To define a timeout for an entity set that you create using [`$method=entityset`]($method.md#methodentityset), pass the number of seconds to `$timeout`. For example, if you want to set the timeout to 20 minutes, pass 1200. By default, the timeout is two (2) hours.
+
+Once the timeout has been defined, each time an entity set is called upon (by using `$method=entityset`), the timeout is recalculated based on the current time and the timeout.
+
+If an entity set is removed and then recreated using `$method=entityset` along with [`$savedfilter`]($savedfilter.md), the new default timeout is 10 minutes regardless of the timeout you defined when calling `$timeout`.
+
+## Exemple
+
+In our entity set that we're creating, we define the timeout to 20 minutes:
+
+`GET /rest/Employee/?$filter="salary!=0"&$method=entityset&$timeout=1200`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$top_$limit.md b/website/translated_docs/fr/REST/$top_$limit.md
new file mode 100644
index 00000000000000..0f0a217aa5bd83
--- /dev/null
+++ b/website/translated_docs/fr/REST/$top_$limit.md
@@ -0,0 +1,18 @@
+---
+id: top_$limit
+title: '$top/$limit'
+---
+
+Limits the number of entities to return (e.g., `$top=50`)
+
+## Description
+
+`$top/$limit` defines the limit of entities to return. By default, the number is limited to 100. You can use either keyword: `$top` or `$limit`.
+
+When used in conjunction with [`$skip`]($skip.md), you can navigate through the entity collection returned by the REST request.
+
+## Exemple
+
+In the following example, we request the next ten entities after the 20th entity:
+
+`GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$skip=20&$top=10`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/$upload.md b/website/translated_docs/fr/REST/$upload.md
new file mode 100644
index 00000000000000..8770faf3e41a6d
--- /dev/null
+++ b/website/translated_docs/fr/REST/$upload.md
@@ -0,0 +1,60 @@
+---
+id: upload
+title: '$upload'
+---
+
+
+Returns an ID of the file uploaded to the server
+
+## Description
+Post this request when you have a file that you want to upload to the Server. If you have an image, you pass `$rawPict=true`. For all other files, you pass `$binary=true`.
+
+You can modify the timeout, which by default is 120 seconds, by passing a value to the `$timeout parameter`.
+
+## Image upload example
+To upload an image, you must first select the file object on the client using the HTML 5 built-in API for using file from a web application. 4D uses the MIME type attribute of the file object so it can handle it appropriately.
+
+Then, we upload the selected image to 4D Server:
+
+ `POST /rest/$upload?$rawPict=true`
+
+**Result**:
+
+`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50" }`
+
+ Afterwards, you use this ID to add it to an attribute using [`$method=update`]($method.md#methodupdate) to add the image to an entity:
+
+ `POST /rest/Employee/?$method=update`
+
+**POST data**:
+
+````
+{
+ __KEY: "12",
+ __STAMP: 4,
+ photo: { "ID": "D507BC03E613487E9B4C2F6A0512FE50" }
+}
+````
+
+**Réponse** :
+
+The modified entity is returned:
+
+````
+{
+ "__KEY": "12",
+ "__STAMP": 5,
+ "uri": "http://127.0.0.1:8081/rest/Employee(12)",
+ "ID": 12,
+ "firstName": "John",
+ "firstName": "Smith",
+ "photo":
+ {
+ "__deferred":
+ {
+ "uri": "/rest/Employee(12)/photo?$imageformat=best&$version=1&$expand=photo",
+ "image": true
+ }
+ },}
+````
+
diff --git a/website/translated_docs/fr/REST/$version.md b/website/translated_docs/fr/REST/$version.md
new file mode 100644
index 00000000000000..8d7f20043447c5
--- /dev/null
+++ b/website/translated_docs/fr/REST/$version.md
@@ -0,0 +1,18 @@
+---
+id: version
+title: '$version'
+---
+
+Image version number
+
+## Description
+
+`$version` is the image's version number returned by the server. The version number, which is sent by the server, works around the browser's cache so that you are sure to retrieve the correct image.
+
+The value of the image's version parameter is modified by the server.
+
+## Exemple
+
+The following example defines the image format to JPEG regardless of the actual type of the photo and passes the actual version number sent by the server:
+
+ `GET /rest/Employee(1)/photo?$imageformat=jpeg&$version=3&$expand=photo`
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/REST_requests.md b/website/translated_docs/fr/REST/REST_requests.md
new file mode 100644
index 00000000000000..8b044864627cd5
--- /dev/null
+++ b/website/translated_docs/fr/REST/REST_requests.md
@@ -0,0 +1,57 @@
+---
+id: REST_requests
+title: A propos des requêtes REST
+---
+
+
+Les structures suivantes sont prises en charge par les requêtes REST :
+
+| URI | Ressource | {Subresource} | {Querystring} |
+| -------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------- |
+| http://{servername}:{port}/rest/ | [{dataClass}](%7BdataClass%7D.html)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | |
+| | [{dataClass}](%7BdataClass%7D.html)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | [{method}](%7BdataClass%7D.html#dataclassmethod) |
+| | | | [$entityset/{entitySetID}](entityset.html#entitysetentitysetid) |
+| | | | [?$filter]($filter.md) |
+| | | | [$entityset/{entitySetID}](entityset.html#entitysetentitysetid) |
+| | | [{attribute}](manData.html#selecting-attributes-to-get)/ | [?$compute]($compute.md) |
+| | [{dataClass}({key})](%7BdataClass%7D.html#dataclasskey)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | |
+| | [{dataClass}:{attribute}(value)](%7BdataClass%7D%7Battribute%7D_value.html) | | |
+| | [$catalog]($catalog.md) | | |
+| | [$directory]($directory.md) | | |
+| | [$info]($info.md) | | |
+
+
+While all REST requests must contain the URI and Resource parameters, the Subresource (which filters the data returned) is optional.
+
+As with all URIs, the first parameter is delimited by a “?” and all subsequent parameters by a “&”. Par exemple:
+
+ `GET /rest/Person/?$filter="lastName!=Jones"&$method=entityset&$timeout=600`
+> You can place all values in quotes in case of ambiguity. For example, in our above example, we could've put the value for the last name in quotes "Jones".
+
+The parameters allow you to manipulate data in dataclasses in your 4D project. Besides retrieving data using `GET` HTTP methods, you can also add, update, and delete entities in a datastore class using `POST` HTTP methods.
+
+If you want the data to be returned in an array instead of JSON, use the [`$asArray`]($asArray.md) parameter.
+
+
+## REST Status and Response
+With each REST request, the server returns the status and a response (with or without an error).
+
+### Request Status
+With each REST request, you get the status along with the response. Below are a few of the statuses that can arise:
+
+| Status | Description |
+| ------------------------- | -------------------------------------------------------------------------- |
+| 0 | Request not processed (server might not be started). |
+| 200 OK | Request processed without error. |
+| 401 Unauthorized | Permissions error (check user's permissions). |
+| 404 Not Found | The data class is not accessible via REST or the entity set doesn't exist. |
+| 500 Internal Server Error | Error processing the REST request. |
+
+### Response
+
+The response (in JSON format) varies depending on the request.
+
+If an error arises, it will be sent along with the response from the server or it will be the response from the server.
+
+
+
diff --git a/website/translated_docs/fr/REST/authUsers.md b/website/translated_docs/fr/REST/authUsers.md
new file mode 100644
index 00000000000000..5da6171774a437
--- /dev/null
+++ b/website/translated_docs/fr/REST/authUsers.md
@@ -0,0 +1,25 @@
+---
+id: authUsers
+title: Sessions and Users
+---
+
+## Session cookie
+
+Each REST request is handled through a specific session on the 4D server.
+
+When a first valid REST request is received, the server creates the session and sends a **session cookie** named `WASID4D`, containing the session UUID, for example:
+
+```
+WASID4D=EA0400C4D58FF04F94C0A4XXXXXX3
+```
+
+In the subsequent REST requests, make sure this cookie is included in the header so that you will reuse the same session. Otherwise, a new session will be opened, and another license used.
+
+
+
+## Authenticating users
+
+Once you have set up users and groups in your project's directory, you will need to have users log into the project to access and manipulate data.
+
+You can log in a user to your application by passing the user's name and password to [`$directory/login`](directory_login). Once logged in, you can retrieve the user's name by using [`$directory/currentUser`](directory_currentUser) and can find out if he/she belongs to a specific group by using [`$directory/currentUserBelongsTo`](directory_currentUserBelongsTo). To log out the current user, call [`$directory/logout`](directory_logout).
+
diff --git a/website/translated_docs/fr/REST/configuration.md b/website/translated_docs/fr/REST/configuration.md
new file mode 100644
index 00000000000000..3a55d697175561
--- /dev/null
+++ b/website/translated_docs/fr/REST/configuration.md
@@ -0,0 +1,89 @@
+---
+id: configuration
+title: Server Configuration
+---
+
+Using standard HTTP requests, the 4D REST Server allows external applications to access the data of your database directly, *i.e.* to retrieve information about the dataclasses in your project, manipulate data, log into your web application, and much more.
+
+To start using the REST features, you need to start and configure the 4D REST server.
+
+> - On 4D Server, opening a REST session requires that a free 4D client licence is available.
+> - On 4D single-user, you can open up to three REST sessions for testing purposes. You need to manage the [session cookie](authUsers.md#session-cookie) to use the same session for your requesting application.
+
+
+
+## Starting the REST Server
+
+For security reasons, by default, 4D does not respond to REST requests. If you want to start the REST Server, you must check the **Expose as REST server** option in the "Web/REST resource" page of the database settings in order for REST requests to be processed.
+
+
+
+> REST services use the 4D HTTP server, so you need to make sure that the 4D Web server is started.
+
+The warning message "Caution, check the access privileges" is displayed when you check this option to draw your attention to the fact that when REST services are activated, by default access to database objects is free as long as the REST accesses have not been configured.
+
+
+## Configuring REST access
+
+By default, REST accesses are open to all users which is obviously not recommended for security reasons, and also to control client licenses usage.
+
+You can configuring REST accesses with one of the following means:
+- assigning a **Read/Write** user group to REST services in the "Web/REST resource" page of the Database Settings;
+- writing an `On REST Authentication` database method to intercept and handle every initial REST request.
+
+> You cannot use both features simultaneously. Once an `On REST Authentication` database method has been defined, 4D fully delegates control of REST requests to it: any setting made using the "Read/Write" menu on the Web/REST resource page of the Database Settings is ignored.
+
+
+### Using the Database settings
+
+The **Read/Write** menu in the "Web/REST resource" page of the database settings specifies a group of 4D users that is authorized to establish the link to the 4D database using REST queries.
+
+By default, the menu displays ****, which means that REST accesses are open to all users. Once you have specified a group, only a 4D user account that belongs to this group may be used to [access 4D by means of a REST request](authUsers.md). If an account is used that does not belong to this group, 4D returns an authentication error to the sender of the request.
+
+> In order for this setting to take effect, the `On REST Authentication` database method must not be defined. If it exists, 4D ignores access settings defined in the Database Settings.
+
+### Using the On REST Authentication database method
+The `On REST Authentication` database method provides you with a custom way of controlling the opening of REST sessions on 4D. This database method is automatically called when a new session is opened through a REST request. When a [request to open a REST session](authUsers.md) is received, the connection identifiers are provided in the header of the request. The `On REST Authentication` database method is called so that you can evaluate these identifiers. You can use the list of users for the 4D database or you can use your own table of identifiers. For more information, refer to the `On REST Authentication` database method [documentation](https://doc.4d.com/4Dv18/4D/18/On-REST-Authentication-database-method.301-4505004.en.html).
+
+
+
+## Exposing tables and fields
+
+Once REST services are enabled in the 4D database, by default a REST session can access all tables and fields of the datastore, and thus use their data. For example, if your database contains an [Employee] table, it is possible to write:
+
+```
+http://127.0.0.1:8044/rest/Employee/?$filter="salary>10000"
+
+```
+This request will return all employees whose salary field is higher than 10000.
+
+> 4D tables and/or fields that have the "Invisible" attribute are also exposed in REST by default.
+
+If you want to customize the datastore objects accessible through REST, you must disable the exposure of each table and/or field that you want to hide. When a REST request attempts to access an unauthorized resource, 4D returns an error.
+
+### Exposing tables
+
+By default, all tables are exposed in REST.
+
+For security reasons, you may want to only expose certain tables of your datastore to REST calls. For instance, if you created a [Users] table storing user names and passwords, it would be better not to expose it.
+
+To remove the REST exposure for a table:
+
+1. Display the Table Inspector in the Structure editor and select the table you want to modify.
+
+2. Uncheck the **Expose as REST resource** option:  Do this for each table whose exposure needs to be modified.
+
+
+### Exposing fields
+
+By default, all 4D database fields are exposed in REST.
+
+You may not want to expose certain fields of your tables to REST. For example, you may not want to expose the [Employees]Salary field.
+
+To remove the REST exposure for a field:
+
+1. Display the Field Inspector in the Structure editor and select the field you want to modify.
+
+2. Uncheck the **Expose as REST resource** for the field.  Repeat this for each field whose exposure needs to be modified.
+
+> In order for a field to be accessible through REST, the parent table must be as well. If the parent table is not exposed, none of its fields will be, regardless of their status.
diff --git a/website/translated_docs/fr/REST/genInfo.md b/website/translated_docs/fr/REST/genInfo.md
new file mode 100644
index 00000000000000..66ce24439b91f6
--- /dev/null
+++ b/website/translated_docs/fr/REST/genInfo.md
@@ -0,0 +1,36 @@
+---
+id: genInfo
+title: Getting Server Information
+---
+
+You can get several information from the REST server:
+
+- the exposed datastores and their attributes
+- the REST server cache contents, including user sessions.
+
+## Catalog
+
+Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed datastore classes and their attributes](configuration.md#exposing-tables-and-fields).
+
+To get the collection of all exposed dataclasses along with their attributes:
+
+`GET /rest/$catalog/$all`
+
+
+## Cache info
+
+Use the [`$info`]($info.md) parameter to get information about the entity selections currently stored in 4D Server's cache as well as running user sessions.
+
+## queryPath and queryPlan
+
+Entity selections that are generated through queries can have the following two properties: `queryPlan` and `queryPath`. To calculate and return these properties, you just need to add [`$queryPlan`]($queryplan.md) and/or [`$queryPath`]($querypath.md) in the REST request.
+
+Par exemple:
+
+`GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true&$querypath=true`
+
+These properties are objects that contain information about how the server performs composite queries internally through dataclasses and relations:
+- **queryPlan**: object containing the detailed description of the query just before it was executed (i.e., the planned query).
+- **queryPath**: object containing the detailed description of the query as it was actually performed.
+
+The information recorded includes the query type (indexed and sequential) and each necessary subquery along with conjunction operators. Query paths also contain the number of entities found and the time required to execute each search criterion. You may find it useful to analyze this information while developing your application. Generally, the description of the query plan and its path are identical but they can differ because 4D can implement dynamic optimizations when a query is executed in order to improve performance. For example, the 4D engine can dynamically convert an indexed query into a sequential one if it estimates that it is faster. This particular case can occur when the number of entities being searched for is low.
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/gettingStarted.md b/website/translated_docs/fr/REST/gettingStarted.md
new file mode 100644
index 00000000000000..94284c82710943
--- /dev/null
+++ b/website/translated_docs/fr/REST/gettingStarted.md
@@ -0,0 +1,138 @@
+---
+id: gettingStarted
+title: Prise en main
+---
+
+4D vous fournit un serveur REST puissant, qui permet d'accéder directement aux données stockées dans vos bases de données 4D.
+
+Le serveur REST est inclus dans les applications 4D et 4D Server et automatiquement disponible dans vos bases 4D [une fois configuré](configuration.md).
+
+Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons :
+- créer et configurer une base de données 4D simple
+- accéder aux données de la base 4D via REST à l'aide d'un navigateur standard.
+
+Pour simplifier l'exemple, nous allons utiliser une application 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante.
+
+
+
+## Créer et configurer la base de données 4D
+
+1. Lancez votre application 4D ou 4D Server et créez une nouvelle base de données. Vous pouvez, par exemple, le nommer "Emp4D".
+
+2. Dans l'éditeur de structure, créez une table [Employees] et ajoutez-y les champs suivants :
+ - Lastname (Alpha)
+ - Firstname (Alpha)
+ - Salary (Longint)
+
+
+
+> L'option "Exposer une ressource REST" est cochée par défaut pour la table et pour chaque champ ; ne modifiez pas ce paramètre.
+
+3. Créez des formulaires, puis créez quelques employés :
+
+
+
+4. Affichez la page **ressources Web / REST** de la boîte de dialogue des Propriétés de la base de données et [cochez l'option Exposer en tant que serveur REST](configuration.md#starting-the-rest-server).
+
+5. Dans le menu **Exécuter**, sélectionnez **Démarrer le serveur Web** (si nécessaire), puis sélectionnez **Tester le serveur Web**.
+
+4D affiche la page d'accueil par défaut du serveur Web 4D.
+
+
+## Accéder aux données 4D avec le navigateur
+
+Vous pouvez désormais lire et modifier des données dans 4D uniquement via les requêtes REST.
+
+Toute requête d'URL 4D REST commence par `/ rest`, pour être insérée après la zone `adress:port`. Par exemple, pour voir le contenu du datastore 4D, vous pouvez écrire :
+
+```
+http://127.0.01/rest/$catalog
+```
+
+Le serveur REST répond :
+
+```
+{
+ "__UNIQID": "96A49F7EF2ABDE44BF32059D9ABC65C1",
+ "dataClasses": [
+ {
+ "name": "Employees",
+ "uri": "/rest/$catalog/Employees",
+ "dataURI": "/rest/Employees"
+ }
+ ]
+}
+```
+
+Cela signifie que le datastore contient le dataclass Employees. You can see the dataclass attributes by typing:
+
+```
+/rest/$catalog/Employees
+```
+
+Si vous souhaitez obtenir toutes les entités de la dataclass Employee, vous pouvez écrire :
+
+```
+/rest/Employees
+```
+
+**Réponse :**
+
+```
+{
+ "__entityModel": "Employees",
+ "__GlobalStamp": 0,
+ "__COUNT": 3,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2020-01-07T17:07:52.467Z",
+ "__STAMP": 2,
+ "ID": 1,
+ "Lastname": "Brown",
+ "Firstname": "Michael",
+ "Salary": 25000
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "ID": 2,
+ "Lastname": "Jones",
+ "Firstname": "Maryanne",
+ "Salary": 35000
+ },
+ {
+ "__KEY": "3",
+ "__TIMESTAMP": "2020-01-07T17:08:34.844Z",
+ "__STAMP": 2,
+ "ID": 3,
+ "Lastname": "Smithers",
+ "Firstname": "Jack",
+ "Salary": 41000
+ }
+ ],
+ "__SENT": 3
+}
+```
+
+Il existe plusieurs possibilités pour filtrer les données à recevoir. Par exemple, pour obtenir uniquement la valeur de l'attribut "Lastname" de la 2ème entité, vous pouvez simplement écrire :
+
+```
+/rest/Employees(2)/Lastname
+```
+
+**Réponse :**
+
+```
+{
+ "__entityModel": "Employees",
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "Lastname": "Jones"
+}
+```
+
+L'[API REST](REST_requests.md) de 4D fournit plusieurs commandes pour interagir avec la base 4D.
\ No newline at end of file
diff --git a/website/translated_docs/fr/REST/manData.md b/website/translated_docs/fr/REST/manData.md
new file mode 100644
index 00000000000000..15656e33843a86
--- /dev/null
+++ b/website/translated_docs/fr/REST/manData.md
@@ -0,0 +1,249 @@
+---
+id: manData
+title: Manipulating Data
+---
+
+All [exposed datastore classes, attributes](configuration.md#exposing-tables-and-fields) and methods can be accessed through REST. Dataclass, attribute, and method names are case-sensitive; however, the data for queries is not.
+
+## Querying data
+
+To query data directly, you can do so using the [`$filter`]($filter.md) function. For example, to find a person named "Smith", you could write:
+
+`http://127.0.0.1:8081/rest/Person/?$filter="lastName=Smith"`
+
+
+
+
+## Adding, Modifying, and Deleting Entities
+
+With the REST API, you can perform all the manipulations to data as you can in 4D.
+
+To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Before saving data, you can also validate it beforehand by calling [`$method=validate`]($method.md#methodvalidate). If you want to delete one or more entities, you can use [`$method=delete`]($method.md#methoddelete).
+
+Besides retrieving one attribute in a dataclass using [{dataClass}({key})](%7BdataClass%7D_%7Bkey%7D.html), you can also write a method in your datastore class and call it to return an entity selection (or a collection) by using [{dataClass}/{method}](%7BdataClass%7D.html#dataclassmethod).
+
+Before returning the collection, you can also sort it by using [`$orderby`]($orderby.md) one one or more attributes (even relation attributes).
+
+
+## Navigating Data
+
+Add the [`$skip`]($skip.md) (to define with which entity to start) and [`$top/$limit`]($top_$limit.md) (to define how many entities to return) REST requests to your queries or entity selections to navigate the collection of entities.
+
+
+
+## Creating and Managing Entity Set
+
+An entity set (aka *entity selection*) is a collection of entities obtained through a REST request that is stored in 4D Server's cache. Using an entity set prevents you from continually querying your application for the same results. Accessing an entity set is much quicker and can improve the speed of your application.
+
+To create an entity set, call [`$method=entityset`]($method.md#methodentityset) in your REST request. As a measure of security, you can also use [`$savedfilter`]($savedfilter.md) and/or [`$savedorderby`]($savedorderby.md) when you call [`$filter`]($filter.md) and/or [`$orderby`]($orderby.md) so that if ever the entity set timed out or was removed from the server, it can be quickly retrieved with the same ID as before.
+
+To access the entity set, you must use `$entityset/{entitySetID}`, for example:
+
+`/rest/People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`
+
+
+By default, an entity set is stored for two hours; however, you can change the timeout by passing a new value to [`$timeout`]($timeout.md). The timeout is continually being reset to the value defined for its timeout (either the default one or the one you define) each time you use it.
+
+If you want to remove an entity set from 4D Server's cache, you can use [`$method=release`]($method.md#methodrelease).
+
+If you modify any of the entity's attributes in the entity set, the values will be updated. However, if you modify a value that was a part of the query executed to create the entity set, it will not be removed from the entity set even if it no longer fits the search criteria. Any entities you delete will, of course, no longer be a part of the entity set.
+
+If the entity set no longer exists in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+Using [`$entityset/{entitySetID}?$logicOperator... &$otherCollection`]($entityset.md#entitysetentitysetidoperatorothercollection), you can combine two entity sets that you previously created. You can either combine the results in both, return only what is common between the two, or return what is not common between the two.
+
+A new selection of entities is returned; however, you can also create a new entity set by calling [`$method=entityset`]($method.md#methodentityset) at the end of the REST request.
+
+
+
+## Calculating Data
+
+By using [`$compute`]($compute.md), you can compute the **average**, **count**, **min**, **max**, or **sum** for a specific attribute in a dataclass. You can also compute all values with the $all keyword.
+
+For example, to get the highest salary:
+
+`/rest/Employee/salary/?$compute=sum`
+
+To compute all values and return a JSON object:
+
+`/rest/Employee/salary/?$compute=$all`
+
+
+
+
+## Selecting attributes to get
+
+You can always define which attributes to return in the REST response after an initial request by passing their path in the request (*e.g.*, `Company(1)/name,revenues/`)
+
+You can apply this filter in the following ways:
+
+| Objet | Syntaxe | Exemple |
+| ---------------------- | --------------------------------------------------- | ------------------------------------------------------------- |
+| Dataclass | {dataClass}/{att1,att2...} | /People/firstName,lastName |
+| Collection of entities | {dataClass}/{att1,att2...}/?$filter="{filter}" | /People/firstName,lastName/?$filter="lastName='a*'" |
+| Specific entity | {dataClass}({ID})/{att1,att2...} | /People(1)/firstName,lastName |
+| | {dataClass}:{attribute}(value)/{att1,att2...}/ | /People:firstName(Larry)/firstName,lastName/ |
+| Entity selection | {dataClass}/{att1,att2...}/$entityset/{entitySetID} | /People/firstName/$entityset/528BF90F10894915A4290158B4281E61 |
+
+The attributes must be delimited by a comma, *i.e.*, `/Employee/firstName,lastName,salary`. Storage or relation attributes can be passed.
+
+
+### Exemples
+Here are a few examples, showing you how to specify which attributes to return depending on the technique used to retrieve entities.
+
+You can apply this technique to:
+
+- Dataclasses (all or a collection of entities in a dataclass)
+- Specific entities
+- Dataclass methods
+- Entity sets
+
+#### Dataclass Example
+
+The following requests returns only the first name and last name from the People datastore class (either the entire datastore class or a selection of entities based on the search defined in `$filter`).
+
+ `GET /rest/People/firstName,lastName/`
+
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 4,
+ __SENT: 4,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith"
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary"
+ },
+ {
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+ },
+ {
+ __KEY: "4",
+ __STAMP: 1,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+`GET /rest/People/firstName,lastName/?$filter="lastName='A*'"/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 1,
+ __SENT: 1,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "4",
+ __STAMP: 4,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+#### Entity Example
+The following request returns only the first name and last name attributes from a specific entity in the People dataclass:
+
+ `GET /rest/People(3)/firstName,lastName/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+}
+````
+
+
+ `GET /rest/People(3)/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ ID: 3,
+ firstName: "Pete",
+ lastName: "Marley",
+ salary: 30000,
+ employer: {
+ __deferred: {
+ uri: "http://127.0.0.1:8081/rest/Company(3)",
+ __KEY: "3"
+ }
+ },
+ fullName: "Pete Marley",
+ employerName: "microsoft"
+
+}
+````
+
+#### Method Example
+
+If you have a dataclass method, you can define which attributes to return as shown below before passing the dataclass method:
+
+ `GET /rest/People/firstName,lastName/getHighSalaries`
+
+or
+
+ `GET /rest/People/getHighSalaries/firstName,lastName`
+
+#### Entity Set Example
+
+Once you have created an entity set, you can filter the information in it by defining which attributes to return:
+
+ `GET /rest/People/firstName,employer.name/$entityset/BDCD8AABE13144118A4CF8641D5883F5?$expand=employer
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your dataclass, you can write the following:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
+
+
+## Retrieving only one entity
+
+You can use the [`{dataClass}:{attribute}(value)`](%7BdataClass%7D.html#dataclassattributevalue) syntax when you want to retrieve only one entity. It's especially useful when you want to do a related search that isn't created on the dataclass's primary key. For example, you can write:
+
+ `GET /rest/Company:companyCode("Acme001")`
+
+
diff --git a/website/translated_docs/fr/REST/{dataClass}.md b/website/translated_docs/fr/REST/{dataClass}.md
new file mode 100644
index 00000000000000..7e29a1dc695e16
--- /dev/null
+++ b/website/translated_docs/fr/REST/{dataClass}.md
@@ -0,0 +1,276 @@
+---
+id:
+ - dataClass
+title:
+ - dataClass
+---
+
+
+
+Dataclass names can be used directly in the REST requests to work with entities, entity selections, or methods of the dataclass.
+
+## Available syntaxes
+
+| Syntaxe | Exemple | Description |
+| -------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------- |
+| [**{dataClass}**](#dataClass) | `/Employee` | Returns all the data (by default the first 100 entities) for the dataclass |
+| [**{dataClass}({key})**](#dataclasskey) | `/Employee(22)` | Returns the data for the specific entity defined by the dataclass's primary key |
+| [**{dataClass}:{attribute}(value)**](#dataclassattributevalue) | `/Employee:firstName(John)` | Returns the data for one entity in which the attribute's value is defined |
+| [**{dataClass}/{method}**](#dataclassmethod) | `/Employee/getHighSalaries` or `/Employee/name/getAge` | Returns an entity selection or a collection based on a dataclass method |
+
+
+
+## {dataClass}
+
+Returns all the data (by default the first 100 entities) for a specific dataclass (*e.g.*, `Company`)
+
+### Description
+
+When you call this parameter in your REST request, the first 100 entities are returned unless you have specified a value using [`$top/$limit`]($top_$limit.md).
+
+Here is a description of the data returned:
+
+| Property | Type | Description |
+| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| __entityModel | Chaine | Name of the datastore class. |
+| __COUNT | Nombre | Number of entities in the datastore class. |
+| __SENT | Nombre | Number of entities sent by the REST request.This number can be the total number of entities if it is less than the value defined in the Default Top Size property (in the Properties for the datastore class) or `$top/$limit` or the value in `$top/$limit`. |
+| __FIRST | Nombre | Entity number that the selection starts at. Either 0 by default or the value defined by `$skip`. |
+| __ENTITIES | Tableau | This array of objects contains an object for each entity with all the Public attributes. All relational attributes are returned as objects with a URI to obtain information regarding the parent. |
+
+For each entity, there is a **__KEY** and a **__STAMP** property. The **__KEY** property contains the value of the primary key defined for the datastore class. The **__STAMP** is an internal stamp that is needed when you modify any of the values in the entity when using `$method=update`.
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). Par exemple:
+
+ `GET /rest/Company/name,address`
+
+
+
+### Exemple
+
+Return all the data for a specific datastore class.
+
+ `GET /rest/Employee`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__COUNT": 250,
+ "__SENT": 100,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Adobe",
+ "address": null,
+ "city": "San Jose",
+ "country": "USA",
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 1,
+ "ID": 2,
+ "name": "Apple",
+ "address": null,
+ "city": "Cupertino",
+ "country": "USA",
+ "revenues": 890000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(2)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "3",
+ "__STAMP": 2,
+ "ID": 3,
+ "name": "4D",
+ "address": null,
+ "city": "Clichy",
+ "country": "France",
+ "revenues": 700000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(3)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "name": "Microsoft",
+ "address": null,
+ "city": "Seattle",
+ "country": "USA",
+ "revenues": 650000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(4)/staff?$expand=staff"
+ }
+ }
+ }
+.....//more entities here
+ ]
+}
+````
+
+
+## {dataClass}({key})
+
+Returns the data for the specific entity defined by the dataclass's primary key, *e.g.*, `Company(22) or Company("IT0911AB2200")`
+
+### Description
+
+By passing the dataclass and a key, you can retrieve all the public information for that entity. The key is the value in the attribute defined as the Primary Key for your datastore class. For more information about defining a primary key, refer to the **Modifying the Primary Key** section in the **Data Model Editor**.
+
+For more information about the data returned, refer to [{datastoreClass}](#datastoreclass).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). Par exemple:
+
+ `GET /rest/Company(1)/name,address`
+
+If you want to expand a relation attribute using `$expand`, you do so by specifying it as shown below:
+
+ `GET /rest/Company(1)/name,address,staff?$expand=staff`
+
+### Exemple
+
+The following request returns all the public data in the Company datastore class whose key is 1.
+
+ `GET /rest/Company(1)`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Apple",
+ "address": Infinite Loop,
+ "city": "Cupertino",
+ "country": "USA",
+ "url": http://www.apple.com,
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+}
+````
+
+
+
+## {dataClass}:{attribute}(value)
+
+Returns the data for one entity in which the attribute's value is defined
+
+### Description
+
+By passing the *dataClass* and an *attribute* along with a value, you can retrieve all the public information for that entity. The value is a unique value for attribute, but is not the primary key.
+
+ `GET /rest/Company:companyCode(Acme001)`
+
+For more information about the data returned, refer to [{dataClass}](dataClass.md).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). Par exemple:
+
+ `GET /rest/Company:companyCode(Acme001)/name,address`
+
+If you want to use a relation attribute using [$attributes]($attributes.md), you do so by specifying it as shown below:
+
+ `GET /rest/Company:companyCode(Acme001)?$attributes=name,address,staff.name`
+
+### Exemple
+
+The following request returns all the public data of the employee named "Jones".
+
+ `GET /rest/Employee:lastname(Jones)`
+
+
+## {dataClass}/{method}
+
+Returns an entity selection or a collection based on a dataclass method
+
+### Description
+
+Dataclass methods must be applied to either a dataclass or an entity selection, and must return either an entity selection or a collection. When returning a collection, however, you cannot define which attributes are returned.
+
+The method must has been declared as "Available through REST server" in 4D for you to be able to call it in a REST request:
+
+`GET /rest/Employee/getHighSalaries` or `GET /rest/Employee/firstName/getHighSalaries`
+
+If you do not have the permissions to execute the method, you will receive the following error:
+
+```
+{
+ "__ERROR": [
+ {
+ "message": "No permission to execute method getHighSalaries in dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1561
+ }
+ ]
+}
+```
+
+### Passing Parameters to a Method
+You can also pass parameters to a method either in a GET or in a POST.
+
+In a GET, you write the following:
+
+`GET /rest/Employee/addEmployee(John,Smith)`
+
+In a POST, you write the following :
+
+`POST /rest/Employee/addEmployee`
+
+**POST data:** ["John","Smith"]
+
+### Manipulating the Data Returned by a Method
+You can define which attributes you want to return, by passing the following:
+
+`GET /rest/Employee/firstName/getEmployees` Or `GET /rest/Employee/getEmployees/firstName`
+
+You can also apply any of the following functions to a method: [$filter]($filter.md), [$orderby]($orderby.md), [$skip]($skip.md), [$expand]($expand.md), and [$top/$limit]($top_$limit.md).
+
+
+### Exemple
+
+In the example below, we call our method, but also browse through the collection by returning the next ten entities from the sixth one:
+
+`GET /rest/Employee?$attributes=lastName,employer.name&$top=10&$skip=1/getHighSalaries` or `GET /rest/Employee/getHighSalaries?$attributes=lastName,employer.name&$top=10&$skip=1`
+
+If you want to retrieve an attribute and an extended relation attribute, you can write the following REST request:
+
+`GET /rest/Employee/firstName,employer/getHighSalaries?$expand=employer`
+
+In the example below, the getCities dataclass method returns a collection of cities:
+
+`GET /rest/Employee/getCities`
+
+Result:
+
+```
+{
+ "result": [
+ "Paris",
+ "Florence",
+ "New York"
+ ]
+}
+```
diff --git a/website/translated_docs/ja/Backup/overview.md b/website/translated_docs/ja/Backup/overview.md
index a75be6afeab3ec..ddfd2050b102c8 100644
--- a/website/translated_docs/ja/Backup/overview.md
+++ b/website/translated_docs/ja/Backup/overview.md
@@ -1,5 +1,5 @@
---
-id: 概要
+id: overview
title: Overview
---
diff --git a/website/translated_docs/ja/Concepts/arrays.md b/website/translated_docs/ja/Concepts/arrays.md
index f2c1c5d286a774..2fcddfe17de565 100644
--- a/website/translated_docs/ja/Concepts/arrays.md
+++ b/website/translated_docs/ja/Concepts/arrays.md
@@ -93,7 +93,7 @@ Here is another example: you want to execute an action only when you click on an
## Two-dimensional Arrays
-Each of the array declaration commands can create or resize one-dimensional or two-dimensional arrays. Example:
+Each of the array declaration commands can create or resize one-dimensional or two-dimensional arrays. 例:
```code4d
ARRAY TEXT(atTopics;100;50) // Creates a text array composed of 100 rows of 50 columns
@@ -172,17 +172,17 @@ However, in some circumstances, you may need to work with arrays holding hundred
| Array Type | Formula for determining Memory Usage in Bytes |
| --------------- | -------------------------------------------------------------------- |
-| Blob | (1+number of elements) * 12 + Sum of the size of each blob |
-| Boolean | (31+number of elements)\8 |
-| Date | (1+number of elements) * 6 |
-| Integer | (1+number of elements) * 2 |
+| BLOB | (1+number of elements) * 12 + Sum of the size of each blob |
+| ブール | (31+number of elements)\8 |
+| 日付 | (1+number of elements) * 6 |
+| 整数 | (1+number of elements) * 2 |
| Long Integer | (1+number of elements) * 4 |
-| Object | (1+number of elements) * 8 + Sum of the size of each object |
-| Picture | (1+number of elements) * 8 + Sum of the size of each picture |
-| Pointer | (1+number of elements) * 8 + Sum of the size of each pointer |
-| Real | (1+number of elements) * 8 |
-| Text | (1+number of elements) * 20 + (Sum of the length of each text) * 2 |
-| Time | (1+number of elements) * 4 |
+| オブジェクト | (1+number of elements) * 8 + Sum of the size of each object |
+| ピクチャー | (1+number of elements) * 8 + Sum of the size of each picture |
+| ポインター | (1+number of elements) * 8 + Sum of the size of each pointer |
+| 実数 | (1+number of elements) * 8 |
+| テキスト | (1+number of elements) * 20 + (Sum of the length of each text) * 2 |
+| 時間 | (1+number of elements) * 4 |
| Two-dimensional | (1+number of elements) * 16 + Sum of the size of each array |
**Notes:**
diff --git a/website/translated_docs/ja/Concepts/cf_branching.md b/website/translated_docs/ja/Concepts/cf_branching.md
index 7082697519f3d7..bd908e0717207b 100644
--- a/website/translated_docs/ja/Concepts/cf_branching.md
+++ b/website/translated_docs/ja/Concepts/cf_branching.md
@@ -45,7 +45,7 @@ he expression is TRUE only if both methods are TRUE. However, even if *MethodA*
The result is similar and *MethodB* is evaluated only if necessary.
-### Example
+### 例題
```code4d
// Ask the user to enter a name
@@ -125,7 +125,7 @@ Only the statements following the first TRUE case (and up to the next case) will
You can include an Else statement after the last case. If all of the cases are FALSE, the statements following the `Else` will be executed.
-### Example
+### 例題
This example tests a numeric variable and displays an alert box with a word in it:
diff --git a/website/translated_docs/ja/Concepts/cf_looping.md b/website/translated_docs/ja/Concepts/cf_looping.md
index 7cb0d4cd78f50a..16ccd135241b19 100644
--- a/website/translated_docs/ja/Concepts/cf_looping.md
+++ b/website/translated_docs/ja/Concepts/cf_looping.md
@@ -27,7 +27,7 @@ The Boolean expression must be set by something inside the loop or else the loop
If you find yourself in such a situation, where a method is executing uncontrolled, you can use the trace facilities to stop the loop and track down the problem. For more information about tracing a method, see the [Error handling](error-handling.md) page.
-### Example
+### 例題
```code4d
CONFIRM("Add a new record?") //The user wants to add a record?
@@ -52,7 +52,7 @@ A `Repeat...Until` loop is similar to a [While...End while](flow-control#whileen
The other difference with a `Repeat...Until` loop is that the loop continues until the Boolean expression is TRUE.
-### Example
+### 例題
Compare the following example with the example for the `While...End while` loop. Note that the Boolean expression does not need to be initialized—there is no `CONFIRM` command to initialize the `OK` variable.
@@ -105,7 +105,7 @@ The `For...End for` loop is a loop controlled by a counter variable:
End for
```
-3. The following example goes through all the characters of the text vtSomeText:
+3. テキスト変数 vtSomeText の文字を一つ一つループ処理します:
```code4d
For($vlChar;1;Length(vtSomeText))
@@ -152,7 +152,7 @@ In some cases, you may want to have a loop whose counter variable is decreasing
End for
```
-7. The following example goes through all the characters of the text vtSomeText:
+7. テキスト変数 vtSomeText の文字を一つ一つループ処理します:
```code4d
For($vlChar;Length(vtSomeText);1;-1)
@@ -295,10 +295,10 @@ The following table compares the three types of `For each...End for each`:
| | Loop through collections | Loop through entity selections | Loop through objects |
| --------------------------------- | ------------------------------------------------ | ----------------------------------- | --------------------------- |
-| Current_Item type | Variable of the same type as collection elements | Entity | Text variable |
-| Expression type | Collection (with elements of the same type) | Entity selection | Object |
+| Current_Item type | Variable of the same type as collection elements | エンティティ | Text variable |
+| Expression type | Collection (with elements of the same type) | Entity selection | オブジェクト |
| Number of loops (by default) | Number of collection elements | Number of entities in the selection | Number of object properties |
-| Support of begin / end parameters | Yes | Yes | No |
+| Support of begin / end parameters | ○ | ○ | × |
- The number of loops is evaluated at startup and will not change during the processing. Adding or removing items during the loop is usually not recommended since it may result in missing or redundant iterations.
- By default, the enclosed *statement(s)* are executed for each value in *Expression*. It is, however, possible to exit the loop by testing a condition either at the begining of the loop (`While`) or at the end of the loop (`Until`).
@@ -319,7 +319,7 @@ At each loop iteration, the *Current_Item* variable is automatically filled with
- The *Current_Item* variable must be of the same type as the collection elements. If any collection item is not of the same type as the variable, an error is generated and the loop stops.
- If the collection contains elements with a **Null** value, an error will be generated if the *Current_Item* variable type does not support **Null** values (such as longint variables).
-#### Example
+#### 例題
You want to compute some statistics for a collection of numbers:
@@ -354,7 +354,7 @@ The number of loops is based on the number of entities in the entity selection.
Keep in mind that any modifications applied on the current entity must be saved explicitly using `entity.save( )`.
-#### Example
+#### 例題
You want to raise the salary of all British employees in an entity selection:
@@ -372,7 +372,7 @@ When `For each...End for each` is used with an *Expression* of the Object type,
The properties of the object are processed according to their order of creation. During the loop, properties can be added to or removed from the object, without modifying the number of loops that will remain based on the original number of properties of the object.
-#### Example
+#### 例題
You want to switch the names to uppercase in the following object:
@@ -412,13 +412,13 @@ You can define bounds to the iteration using the optional begin and end paramete
If *end* is omitted or if *end* is greater than the number of elements in *Expression*, elements are iterated from *begin* until the last one (included). If the *begin* and *end* parameters are positive values, they represent actual positions of elements in *Expression*. If *begin* is a negative value, it is recalculed as `begin:=begin+Expression size` (it is considered as the offset from the end of *Expression*). If the calculated value is negative, *begin* is set to 0. **Note:** Even if begin is negative, the iteration is still performed in the standard order. If *end* is a negative value, it is recalculed as `end:=end+Expression size`
-For example:
+たとえば:
- a collection contains 10 elements (numbered from 0 to 9)
- begin=-4 -> begin=-4+10=6 -> iteration starts at the 6th element (#5)
- end=-2 -> end=-2+10=8 -> iteration stops before the 8th element (#7), i.e. at the 7th element.
-#### Example
+#### 例題
```code4d
C_COLLECTION($col;$col2)
@@ -444,7 +444,7 @@ You can pass either keyword depending on your needs:
- The `Until` condition is tested at the end of each iteration, so if the *Expression* is not empty or null, the loop will be executed at least once.
- The `While` condition is tested at the beginning of each iteration, so according to the condition result, the loop may not be executed at all.
-#### Example
+#### 例題
```code4d
$colNum:=New collection(1;2;3;4;5;6;7;8;9;10)
diff --git a/website/translated_docs/ja/Concepts/components.md b/website/translated_docs/ja/Concepts/components.md
index 524f94a0caa787..e2d050300643f6 100644
--- a/website/translated_docs/ja/Concepts/components.md
+++ b/website/translated_docs/ja/Concepts/components.md
@@ -172,7 +172,7 @@ An [error-handling method](Concepts/error-handling.md) installed by the `ON ERR
A component cannot use the tables and fields defined in the 4D structure of the matrix database. However, you can create and use external databases, and then use their tables and fields according to your needs. You can create and manage external databases using SQL. An external database is a 4D database that is independent from the main 4D database, but that you can work with from the main 4D database. Using an external database means temporarily designating this database as the current database, in other words, as the target database for the SQL queries executed by 4D. You create external databases using the SQL `CREATE DATABASE` command.
-### Example
+### 例題
The following code is included in a component and performs three basic actions with an external database:
diff --git a/website/translated_docs/ja/Concepts/data-types.md b/website/translated_docs/ja/Concepts/data-types.md
index b1228012ccda8a..24290d6768d21b 100644
--- a/website/translated_docs/ja/Concepts/data-types.md
+++ b/website/translated_docs/ja/Concepts/data-types.md
@@ -1,33 +1,33 @@
---
id: data-types
-title: Data types overview
+title: データタイプの概要
---
-In 4D, data are handled according to their type in two places: database fields and the 4D language.
-
-Although they are usually equivalent, some data types available at the database level are not directly available in the language and are automatically converted. Conversely, some data types can only be handled through the language. The following table lists all available data types and how they are supported/declared:
-
-| Data Types | Database support(1) | Language support | Variable declaration |
-| ------------------------------------------ | ------------------- | -------------------- | ---------------------------- |
-| [Alphanumeric](dt_string.md) | Yes | Converted to text | - |
-| [Text](Concepts/dt_string.md) | Yes | Yes | `C_TEXT`, `ARRAY TEXT` |
-| [Date](Concepts/dt_date.md) | Yes | Yes | `C_DATE`, `ARRAY DATE` |
-| [Time](Concepts/dt_time.md) | Yes | Yes | `C_TIME`, `ARRAY TIME` |
-| [Boolean](Concepts/dt_boolean.md) | Yes | Yes | `C_BOOLEAN`, `ARRAY BOOLEAN` |
-| [Integer](Concepts/dt_number.md) | Yes | Converted to longint | `ARRAY INTEGER` |
-| [Longint](Concepts/dt_number.md) | Yes | Yes | `C_LONGINT`, `ARRAY LONGINT` |
-| [Longint 64 bits](Concepts/dt_number.md) | Yes (SQL) | Converted to real | - |
-| [Real](Concepts/dt_number.md) | Yes | Yes | `C_REAL`, `ARRAY REAL` |
-| [Undefined](Concepts/dt_null_undefined.md) | - | Yes | - |
-| [Null](Concepts/dt_null_undefined.md) | - | Yes | - |
-| [Pointer](Concepts/dt_pointer.md) | - | Yes | `C_POINTER`, `ARRAY POINTER` |
-| [Picture](Concepts/dt_picture.md) | Yes | Yes | `C_PICTURE`, `ARRAY PICTURE` |
-| [BLOB](Concepts/dt_blob.md) | Yes | Yes | `C_BLOB`, `ARRAY BLOB` |
-| [Object](Concepts/dt_object.md) | Yes | Yes | `C_OBJECT`, `ARRAY OBJECT` |
-| [Collection](Concepts/dt_collection.md) | - | Yes | `C_COLLECTION` |
-| [Variant](Concepts/dt_variant.md)(2) | - | Yes | `C_VARIANT` |
-
-(1) Note that ORDA handles database fields through objects (entities) and thus, only supports data types available to these objects. For more information, see the [Object](Concepts/dt_object.md) data type description.
+4D においてデータは、主にデータベースフィールドと 4D ランゲージという2つの場所で、そのタイプに応じて扱われます。
+
+この2つはおおよそ同じものですが、データベースレベルで提供されているいくつかのデータタイプはランゲージにおいては直接利用可能ではなく、自動的に適宜変換されます。 同様に、いくつかのデータタイプはランゲージでしか利用できません。 各場所で利用可能なデータタイプと、ランゲージでの宣言の仕方の一覧です:
+
+| データタイプ | データベース | ランゲージ | 変数宣言 |
+| ------------------------------------- | ------- | ------- | ---------------------------- |
+| [文字列](dt_string.md) | ○ | テキストに変換 | - |
+| [テキスト](Concepts/dt_string.md) | ○ | ○ | `C_TEXT`, `ARRAY TEXT` |
+| [日付](Concepts/dt_date.md) | ○ | ○ | `C_DATE`, `ARRAY DATE` |
+| [時間](Concepts/dt_time.md) | ○ | ○ | `C_TIME`, `ARRAY TIME` |
+| [ブール](Concepts/dt_boolean.md) | ○ | ○ | `C_BOOLEAN`, `ARRAY BOOLEAN` |
+| [整数](Concepts/dt_number.md) | ○ | 倍長整数に変換 | `ARRAY INTEGER` |
+| [倍長整数](Concepts/dt_number.md) | ○ | ○ | `C_LONGINT`, `ARRAY LONGINT` |
+| [64ビット整数](Concepts/dt_number.md) | ○ (SQL) | 実数に変換 | - |
+| [実数](Concepts/dt_number.md) | ○ | ○ | `C_REAL`, `ARRAY REAL` |
+| [未定義](Concepts/dt_null_undefined.md) | - | ○ | - |
+| [Null](Concepts/dt_null_undefined.md) | - | ○ | - |
+| [ポインター](Concepts/dt_pointer.md) | - | ○ | `C_POINTER`, `ARRAY POINTER` |
+| [ピクチャー](Concepts/dt_picture.md) | ○ | ○ | `C_PICTURE`, `ARRAY PICTURE` |
+| [BLOB](Concepts/dt_blob.md) | ○ | ○ | `C_BLOB`, `ARRAY BLOB` |
+| [オブジェクト](Concepts/dt_object.md) | ○ | ○ | `C_OBJECT`, `ARRAY OBJECT` |
+| [コレクション](Concepts/dt_collection.md) | - | ○ | `C_COLLECTION` |
+| バリアント | - | ○ | `C_VARIANT` |
+
+(1) ORDA では、オブジェクト (エンティティ) を介してデータベースフィールドを扱うため、オブジェクトにおいて利用可能なデータタイプのみがサポートされます。 詳細については [オブジェクト](Concepts/dt_object.md) のデータタイプの説明を参照ください。
(2) Variant is actually not a *data* type but a *variable* type that can contain a value of any other data type.
@@ -47,20 +47,20 @@ The default value depends on the variable type and category, its execution conte
The following table illustrates these default values:
-| Type | Interprocess/Process (interpreted/compiled), Local (interpreted/compiled "to zero") | Local compiled "random" | Local compiled "no" |
-| ---------- | ----------------------------------------------------------------------------------- | ----------------------- | ---------------------------- |
-| Booleen | False | True | True (varies) |
-| Date | 00-00-00 | 00-00-00 | 00-00-00 |
-| Longint | 0 | 1919382119 | 909540880 (varies) |
-| Time | 00:00:00 | 533161:41:59 | 249345:34:24 (varies) |
-| Picture | picture size=0 | picture size=0 | picture size=0 |
-| Real | 0 | 1.250753659382e+243 | 1.972748538022e-217 (varies) |
-| Pointer | Nil=true | Nil=true | Nil=true |
-| Text | "" | "" | "" |
-| Blob | Blob size=0 | Blob size=0 | Blob size=0 |
-| Object | null | null | null |
-| Collection | null | null | null |
-| Variant | undefined | undefined | undefined |
+| タイプ | Interprocess/Process (interpreted/compiled), Local (interpreted/compiled "to zero") | Local compiled "random" | Local compiled "no" |
+| ------ | ----------------------------------------------------------------------------------- | ----------------------- | ---------------------------- |
+| ブール | False | True | True (varies) |
+| 日付 | 00-00-00 | 00-00-00 | 00-00-00 |
+| 倍長整数 | 0 | 1919382119 | 909540880 (varies) |
+| 時間 | 00:00:00 | 533161:41:59 | 249345:34:24 (varies) |
+| ピクチャー | picture size=0 | picture size=0 | picture size=0 |
+| 実数 | 0 | 1.250753659382e+243 | 1.972748538022e-217 (varies) |
+| ポインター | Nil=true | Nil=true | Nil=true |
+| テキスト | "" | "" | "" |
+| BLOB | Blob size=0 | Blob size=0 | Blob size=0 |
+| オブジェクト | null | null | null |
+| コレクション | null | null | null |
+| バリアント | undefined | undefined | undefined |
## Converting data types
@@ -70,11 +70,11 @@ The following table lists the basic data types, the data types to which they can
| Data Type to Convert | to String | to Number | to Date | to Time | to Boolean |
| -------------------- | --------- | --------- | ------- | ------- | ---------- |
-| String (1) | | Num | Date | Time | Bool |
-| Number (2) | String | | | | Bool |
-| Date | String | | | | Bool |
-| Time | String | | | | Bool |
-| Boolean | | Num | | | |
+| String (1) | | Num | 日付 | 時間 | Bool |
+| Number (2) | 文字 | | | | Bool |
+| 日付 | 文字 | | | | Bool |
+| 時間 | 文字 | | | | Bool |
+| ブール | | Num | | | |
(1) Strings formatted in JSON can be converted into scalar data, objects, or collections, using the `JSON Parse` command.
diff --git a/website/translated_docs/ja/Concepts/dt_blob.md b/website/translated_docs/ja/Concepts/dt_blob.md
index 9782753c42f279..ccbfcee007fb93 100644
--- a/website/translated_docs/ja/Concepts/dt_blob.md
+++ b/website/translated_docs/ja/Concepts/dt_blob.md
@@ -35,7 +35,7 @@ To pass a BLOB to your own methods, you can also define a pointer to the BLOB an
You can assign BLOBs to each other.
-**Example:**
+**例: **
```code4d
` Declare two variables of type BLOB
@@ -50,7 +50,7 @@ However, no operator can be applied to BLOBs.
## Addressing BLOB contents
-You can address each byte of a BLOB individually using the curly brackets symbols {...}. Within a BLOB, bytes are numbered from 0 to N-1, where N is the size of the BLOB. Example:
+You can address each byte of a BLOB individually using the curly brackets symbols {...}. Within a BLOB, bytes are numbered from 0 to N-1, where N is the size of the BLOB. 例:
```code4d
` Declare a variable of type BLOB
diff --git a/website/translated_docs/ja/Concepts/dt_boolean.md b/website/translated_docs/ja/Concepts/dt_boolean.md
index 064b103ae08071..a8112fac6630b4 100644
--- a/website/translated_docs/ja/Concepts/dt_boolean.md
+++ b/website/translated_docs/ja/Concepts/dt_boolean.md
@@ -9,7 +9,7 @@ A boolean field, variable or expression can be either TRUE or FALSE.
4D provides the Boolean functions `True`, `False`, and `Not` in the dedicated **Boolean** theme. For more information, see the descriptions of these commands
-### Example
+### 例題
This example sets a Boolean variable based on the value of a button. It returns True in myBoolean if the myButton button was clicked and False if the button was not clicked. When a button is clicked, the button variable is set to 1.
@@ -31,14 +31,14 @@ myBoolean:=(myButton=1)
4D supports two logical operators that work on Boolean expressions: conjunction (AND) and inclusive disjunction (OR). A logical AND returns TRUE if both expressions are TRUE. A logical OR returns TRUE if at least one of the expressions is TRUE. The following table shows the logical operators:
-| Operation | Syntax | Returns | Expression | Value |
-| --------- | ---------------------- | ------- | --------------------------- | ----- |
-| AND | Boolean & Boolean | Boolean | ("A" = "A") & (15 # 3) | True |
-| | | | ("A" = "B") & (15 # 3) | False |
-| | | | ("A" = "B") & (15 = 3) | False |
-| OR | Boolean | Boolean | Boolean | ("A" = "A") | (15 # 3) | True |
-| | | | ("A" = "B") | (15 # 3) | True |
-| | | | ("A" = "B") | (15 = 3) | False |
+| オペレーション | Syntax | Returns | 式 | Value |
+| ------- | ---------------------- | ------- | --------------------------- | ----- |
+| AND | Boolean & Boolean | ブール | ("A" = "A") & (15 # 3) | True |
+| | | | ("A" = "B") & (15 # 3) | False |
+| | | | ("A" = "B") & (15 = 3) | False |
+| OR | Boolean | Boolean | ブール | ("A" = "A") | (15 # 3) | True |
+| | | | ("A" = "B") | (15 # 3) | True |
+| | | | ("A" = "B") | (15 = 3) | False |
The following is the truth table for the AND logical operator:
diff --git a/website/translated_docs/ja/Concepts/dt_collection.md b/website/translated_docs/ja/Concepts/dt_collection.md
index 9cdb377a061871..9eab354af753ce 100644
--- a/website/translated_docs/ja/Concepts/dt_collection.md
+++ b/website/translated_docs/ja/Concepts/dt_collection.md
@@ -44,7 +44,7 @@ If you assign an element's index that surpasses the last existing element of the
Collections must have been initialized, for example using the `New collection` command, otherwise trying to read or modify their elements will generate a syntax error.
-Example:
+例:
```code4d
C_COLLECTION($colVar) //creation of collection type 4D variable
@@ -66,7 +66,7 @@ You can create two types of collections:
Note that, even if it does not have parameters, a member function must be called with () parenthesis, otherwise a syntax error is generated.
-For example:
+たとえば:
```code4d
$newCol:=$col.copy() //deep copy of $col to $newCol
diff --git a/website/translated_docs/ja/Concepts/dt_date.md b/website/translated_docs/ja/Concepts/dt_date.md
index b7bfe08633a870..fa7664521684c3 100644
--- a/website/translated_docs/ja/Concepts/dt_date.md
+++ b/website/translated_docs/ja/Concepts/dt_date.md
@@ -29,20 +29,20 @@ A null date is specified by *!00-00-00!*.
## Date operators
-| Operation | Syntax | Returns | Expression | Value |
+| オペレーション | Syntax | Returns | 式 | Value |
| ------------------------ | ------------- | ------- | --------------------------- | ------------ |
-| Date difference | Date – Date | Number | !2017-01-20! - !2017-01-01! | 19 |
-| Day addition | Date + Number | Date | !2017-01-20! + 9 | !2017-01-29! |
-| Day subtraction | Date – Number | Date | !2017-01-20! - 9 | !2017-01-11! |
-| Equality | Date = Date | Boolean | !2017-01-01! =!2017-01-01! | True |
+| Date difference | Date – Date | 数値 | !2017-01-20! - !2017-01-01! | 19 |
+| Day addition | Date + Number | 日付 | !2017-01-20! + 9 | !2017-01-29! |
+| Day subtraction | Date – Number | 日付 | !2017-01-20! - 9 | !2017-01-11! |
+| Equality | Date = Date | ブール | !2017-01-01! =!2017-01-01! | True |
| | | | !2017-01-20! = !2017-01-01! | False |
-| Inequality | Date # Date | Boolean | !2017-01-20! # !2017-01-01! | True |
+| Inequality | Date # Date | ブール | !2017-01-20! # !2017-01-01! | True |
| | | | !2017-01-20! # !2017-01-20! | False |
-| Greater than | Date > Date | Boolean | !2017-01-20! > !2017-01-01! | True |
+| Greater than | Date > Date | ブール | !2017-01-20! > !2017-01-01! | True |
| | | | !2017-01-20! > !2017-01-20! | False |
-| Less than | Date < Date | Boolean | !2017-01-01! < !2017-01-20! | True |
+| Less than | Date < Date | ブール | !2017-01-01! < !2017-01-20! | True |
| | | | !2017-01-20! < !2017-01-20! | False |
-| Greater than or equal to | Date >= Date | Boolean | !2017-01-20! >=!2017-01-01! | True |
+| Greater than or equal to | Date >= Date | ブール | !2017-01-20! >=!2017-01-01! | True |
| | | | !2017-01-01!>=!2017-01-20! | False |
-| Less than or equal to | Date <= Date | Boolean | !2017-01-01!<=!2017-01-20! | True |
+| Less than or equal to | Date <= Date | ブール | !2017-01-01!<=!2017-01-20! | True |
| | | | !2017-01-20!<=!2017-01-01! | False |
\ No newline at end of file
diff --git a/website/translated_docs/ja/Concepts/dt_null_undefined.md b/website/translated_docs/ja/Concepts/dt_null_undefined.md
index 497fe6d94b119b..e6b62ad04ae777 100644
--- a/website/translated_docs/ja/Concepts/dt_null_undefined.md
+++ b/website/translated_docs/ja/Concepts/dt_null_undefined.md
@@ -13,7 +13,7 @@ In the 4D language and for object field attributes, null values are managed thro
- collection elements
- variables of the object, collection, pointer, picture, or variant type.
-## Undefined
+## 未定義
Undefined is not actually a data type. It denotes a variable that has not yet been defined. A function (a project method that returns a result) can return an undefined value if, within the method, the function result ($0) is assigned an undefined expression (an expression calculated with at least one undefined variable). A field cannot be undefined (the `Undefined` command always returns False for a field). A variant variable has **undefined** as default value.
diff --git a/website/translated_docs/ja/Concepts/dt_number.md b/website/translated_docs/ja/Concepts/dt_number.md
index 2c32aa6b7ce442..edd64a2c12a2c2 100644
--- a/website/translated_docs/ja/Concepts/dt_number.md
+++ b/website/translated_docs/ja/Concepts/dt_number.md
@@ -27,7 +27,7 @@ A numeric literal constant is written as a real number. Here are some examples o
**Note:** Since 4D v15, the default decimal separator is a period (.), regardless of the system language. If you have checked the "Use regional system settings" option (see Methods Page), you must use the separator defined in your system.
-Negative numbers are specified with the minus sign (-). For example:
+Negative numbers are specified with the minus sign (-). たとえば:
```code4d
-27
@@ -37,27 +37,27 @@ Negative numbers are specified with the minus sign (-). For example:
## Number operators
-| Operation | Syntax | Returns | Expression | Value |
-| ------------------------ | ---------------- | ------- | ---------- | ----- |
-| Addition | Number + Number | Number | 2 + 3 | 5 |
-| Subtraction | Number - Number | Number | 3 – 2 | 1 |
-| Multiplication | Number * Number | Number | 5 * 2 | 10 |
-| Division | Number /Number | Number | 5 / 2 | 2.5 |
-| Longint division | Number \ Number | Number | 5 \ 2 | 2 |
-| Modulo | Number % Number | Number | 5 % 2 | 1 |
-| Exponentiation | Number ^ Number | Number | 2 ^ 3 | 8 |
-| Equality | Number = Number | Boolean | 10 = 10 | True |
-| | | | 10 = 11 | False |
-| Inequality | Number # Number | Boolean | 10 #11 | True |
-| | | | 10 # 10 | False |
-| Greater than | Number > Number | Boolean | 11 > 10 | True |
-| | | | 10 > 11 | False |
-| Less than | Number < Number | Boolean | 10 < 11 | True |
-| | | | 11 < 10 | False |
-| Greater than or equal to | Number >= Number | Boolean | 11 >= 10 | True |
-| | | | 10 >= 11 | False |
-| Less than or equal to | Number <= Number | Boolean | 10 <= 11 | True |
-| | | | 11 <= 10 | False |
+| オペレーション | Syntax | Returns | 式 | Value |
+| ------------------------ | ---------------- | ------- | -------- | ----- |
+| 加算 (足し算) | Number + Number | 数値 | 2 + 3 | 5 |
+| 減算 (引き算) | Number - Number | 数値 | 3 – 2 | 1 |
+| 乗算 (かけ算) | Number * Number | 数値 | 5 * 2 | 10 |
+| 除算 (割り算) | Number /Number | 数値 | 5 / 2 | 2.5 |
+| Longint division | Number \ Number | 数値 | 5 \ 2 | 2 |
+| Modulo | Number % Number | 数値 | 5 % 2 | 1 |
+| Exponentiation | Number ^ Number | 数値 | 2 ^ 3 | 8 |
+| Equality | Number = Number | ブール | 10 = 10 | True |
+| | | | 10 = 11 | False |
+| Inequality | Number # Number | ブール | 10 #11 | True |
+| | | | 10 # 10 | False |
+| Greater than | Number > Number | ブール | 11 > 10 | True |
+| | | | 10 > 11 | False |
+| Less than | Number < Number | ブール | 10 < 11 | True |
+| | | | 11 < 10 | False |
+| Greater than or equal to | Number >= Number | ブール | 11 >= 10 | True |
+| | | | 10 >= 11 | False |
+| Less than or equal to | Number <= Number | ブール | 10 <= 11 | True |
+| | | | 11 <= 10 | False |
The modulo operator % divides the first number by the second number and returns a whole number remainder. Here are some examples:
@@ -72,7 +72,7 @@ The modulo operator % divides the first number by the second number and returns
### Precedence
-The order in which an expression is evaluated is called precedence. 4D has a strict left-to-right precedence, in which algebraic order is not observed. For example:
+The order in which an expression is evaluated is called precedence. 4D has a strict left-to-right precedence, in which algebraic order is not observed. たとえば:
```code4d
3+4*5
@@ -80,7 +80,7 @@ The order in which an expression is evaluated is called precedence. 4D has a str
returns 35, because the expression is evaluated as 3 + 4, yielding 7, which is then multiplied by 5, with the final result of 35.
-To override the left-to-right precedence, you MUST use parentheses. For example:
+To override the left-to-right precedence, you MUST use parentheses. たとえば:
```code4d
3+(4*5)
diff --git a/website/translated_docs/ja/Concepts/dt_object.md b/website/translated_docs/ja/Concepts/dt_object.md
index 3fcdf3415df643..7ae070eab5cf62 100644
--- a/website/translated_docs/ja/Concepts/dt_object.md
+++ b/website/translated_docs/ja/Concepts/dt_object.md
@@ -10,9 +10,9 @@ Variables, fields or expressions of the Object type can contain various types of
- A property value can be of the following type:
- number (Real, Integer, etc.)
- - text
+ - テキスト
- null
- - Boolean
+ - ブール
- pointer (stored as such, evaluated using the `JSON Stringify` command or when copying),
- date (date type or ISO date format string)
- object (objects can be nested on several levels)
@@ -35,7 +35,7 @@ Each property value accessed through the object notation is considered an expres
Objects must have been initialized, for example using the `New object` command, otherwise trying to read or modify their properties will generate a syntax error.
-Example:
+例:
```code4d
C_OBJECT($obVar) //creation of an object type 4D variable
@@ -59,7 +59,7 @@ With object notation, object properties can be accessed in two ways:
- using a "dot" symbol: > object.propertyName
-Example:
+例:
```code4d
employee.name:="Smith"
@@ -77,7 +77,7 @@ Examples:
```
-Since an object property value can be an object or a collection, object notation accepts a sequence of symbols to access sub-properties, for example:
+オブジェクトプロパティ値には、オブジェクトあるいはコレクションも設定することが可能です。これらのサブプロパティにアクセスするため、オブジェクト記法では連続した記号を受け入れることができます:
```code4d
$vAge:=employee.children[2].age
@@ -95,13 +95,13 @@ Object notation is available on any language element that can contains or return
$val:=$myCollection[3].subvalue //collection element
```
-- **4D commands** that return objects. Example:
+- **4D commands** that return objects. 例:
```code4d
$measures:=Get database measures.DB.tables
```
-- **Project methods** that return objects. Example:
+- **Project methods** that return objects. 例:
```code4d
// MyMethod1
@@ -132,7 +132,7 @@ Using object notation with pointers is very similar to using object notation dir
> pointerOnObject->["propertyName"]
-Example:
+例:
```code4d
C_OBJECT(vObj)
@@ -215,7 +215,7 @@ Evaluating an object property can sometimes produce an undefined value. Typicall
- Assigning an undefined value to a non existing object property does nothing.
-When expressions of a given type are expected in your 4D code, you can make sure they have the correct type even when evaluated to undefined by surrounding them with the appropriate 4D cast command: `String`, `Num`, `Date`, `Time`, `Bool`. These commands return an empty value of the specified type when the expression evaluates to undefined. For example:
+When expressions of a given type are expected in your 4D code, you can make sure they have the correct type even when evaluated to undefined by surrounding them with the appropriate 4D cast command: `String`, `Num`, `Date`, `Time`, `Bool`. These commands return an empty value of the specified type when the expression evaluates to undefined. たとえば:
```code4d
$myString:=Lowercase(String($o.a.b)) //make sure you get a string value even if undefined
diff --git a/website/translated_docs/ja/Concepts/dt_picture.md b/website/translated_docs/ja/Concepts/dt_picture.md
index efa63a2802d311..9a9b427d30f614 100644
--- a/website/translated_docs/ja/Concepts/dt_picture.md
+++ b/website/translated_docs/ja/Concepts/dt_picture.md
@@ -39,17 +39,17 @@ This icon indicates that the picture cannot be displayed or manipulated locally
## Picture operators
-| Operation | Syntax | Returns | Action |
+| オペレーション | Syntax | Returns | Action |
| ------------------------- | ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| Horizontal concatenation | Pict1 + Pict2 | Picture | Add Pict2 to the right of Pict1 |
-| Vertical concatenation | Pict1 / Pict2 | Picture | Add Pict2 to the bottom of Pict1 |
-| Exclusive superimposition | Pict1 & Pict2 | Picture | Superimposes Pict2 on top of Pict1 (Pict2 in foreground). Produces the same result as `COMBINE PICTURES(pict3;pict1;Superimposition;pict2)` |
-| Inclusive superimposition | Pict1 | Pict2 | Picture | Superimposes Pict2 on Pict1 and returns resulting mask if both pictures are the same size. Produces the same result as `$equal:=Equal pictures(Pict1;Pict2;Pict3)` |
-| Horizontal move | Picture + Number | Picture | Move Picture horizontally Number pixels |
-| Vertical move | Picture / Number | Picture | Move Picture vertically Number pixels |
-| Resizing | Picture * Number | Picture | Resize Picture by Number ratio |
-| Horizontal scaling | Picture *+ Number | Picture | Resize Picture horizontally by Number ratio |
-| Vertical scaling | Picture *| Number | Picture | Resize Picture vertically by Number ratio |
+| Horizontal concatenation | Pict1 + Pict2 | ピクチャー | Add Pict2 to the right of Pict1 |
+| Vertical concatenation | Pict1 / Pict2 | ピクチャー | Add Pict2 to the bottom of Pict1 |
+| Exclusive superimposition | Pict1 & Pict2 | ピクチャー | Superimposes Pict2 on top of Pict1 (Pict2 in foreground). Produces the same result as `COMBINE PICTURES(pict3;pict1;Superimposition;pict2)` |
+| Inclusive superimposition | Pict1 | Pict2 | ピクチャー | Superimposes Pict2 on Pict1 and returns resulting mask if both pictures are the same size. Produces the same result as `$equal:=Equal pictures(Pict1;Pict2;Pict3)` |
+| Horizontal move | Picture + Number | ピクチャー | Move Picture horizontally Number pixels |
+| Vertical move | Picture / Number | ピクチャー | Move Picture vertically Number pixels |
+| Resizing | Picture * Number | ピクチャー | Resize Picture by Number ratio |
+| Horizontal scaling | Picture *+ Number | ピクチャー | Resize Picture horizontally by Number ratio |
+| Vertical scaling | Picture *| Number | ピクチャー | Resize Picture vertically by Number ratio |
**Notes :**
diff --git a/website/translated_docs/ja/Concepts/dt_pointer.md b/website/translated_docs/ja/Concepts/dt_pointer.md
index dd31c62c846551..e807cea68823d0 100644
--- a/website/translated_docs/ja/Concepts/dt_pointer.md
+++ b/website/translated_docs/ja/Concepts/dt_pointer.md
@@ -13,14 +13,14 @@ Being able to refer to something without knowing its exact identity is very usef
You can use pointers to reference tables, fields, variables, arrays, array elements, and objects. The following table gives an example of each data type:
-| Type | To Reference | To Use | To Assign |
+| タイプ | To Reference | To Use | To Assign |
| ------------- | ----------------------- | ------------------------ | ------------------------ |
| Table | vpTable:=->[Table] | DEFAULT TABLE(vpTable->) | n/a |
| Field | vpField:=->[Table]Field | ALERT(vpField->) | vpField->:="John" |
| Variable | vpVar:=->Variable | ALERT(vpVar->) | vpVar->:="John" |
| Array | vpArr:=->Array | SORT ARRAY(vpArr->;>) | COPY ARRAY (Arr;vpArr->) |
| Array element | vpElem:=->Array{1} | ALERT (vpElem->) | vpElem->:="John" |
-| Object | vpObj:=->myObject | ALERT (vpObj->myProp) | vpObj->myProp:="John" |
+| オブジェクト | vpObj:=->myObject | ALERT (vpObj->myProp) | vpObj->myProp:="John" |
## Using a pointer: Basic example
@@ -85,11 +85,11 @@ With:
vPtrC:=->anotherObject
```
-| Operation | Syntax | Returns | Expression | Value |
+| オペレーション | Syntax | Returns | 式 | Value |
| ---------- | ----------------- | ------- | ------------- | ----- |
-| Equality | Pointer = Pointer | Boolean | vPtrA = vPtrB | True |
+| Equality | Pointer = Pointer | ブール | vPtrA = vPtrB | True |
| | | | vPtrA = vPtrC | False |
-| Inequality | Pointer # Pointer | Boolean | vPtrA # vPtrC | True |
+| Inequality | Pointer # Pointer | ブール | vPtrA # vPtrC | True |
| | | | vPtrA # vPtrB | False |
## Main usages
diff --git a/website/translated_docs/ja/Concepts/dt_string.md b/website/translated_docs/ja/Concepts/dt_string.md
index 167f07ab3d27f2..e473d703709374 100644
--- a/website/translated_docs/ja/Concepts/dt_string.md
+++ b/website/translated_docs/ja/Concepts/dt_string.md
@@ -36,25 +36,25 @@ The following escape sequences can be used within strings:
## String operators
-| Operation | Syntax | Returns | Expression | Value |
+| オペレーション | Syntax | Returns | 式 | Value |
| ------------------------ | ---------------- | ------- | ----------------------- | -------- |
-| Concatenation | String + String | String | "abc" + "def" | "abcdef" |
-| Repetition | String * Number | String | "ab" * 3 | "ababab" |
-| Equality | String = String | Boolean | "abc" = "abc" | True |
+| 連結 (結合) | String + String | 文字 | "abc" + "def" | "abcdef" |
+| Repetition | String * Number | 文字 | "ab" * 3 | "ababab" |
+| Equality | String = String | ブール | "abc" = "abc" | True |
| | | | "abc" = "abd" | False |
-| Inequality | String # String | Boolean | "abc" # "abd" | True |
+| Inequality | String # String | ブール | "abc" # "abd" | True |
| | | | "abc" # "abc" | False |
-| Greater than | String > String | Boolean | "abd" > "abc" | True |
+| Greater than | String > String | ブール | "abd" > "abc" | True |
| | | | "abc" > "abc" | False |
-| Less than | String < String | Boolean | "abc" < "abd" | True |
+| Less than | String < String | ブール | "abc" < "abd" | True |
| | | | "abc" < "abc" | False |
-| Greater than or equal to | String >= String | Boolean | "abd" >= "abc" | True |
+| Greater than or equal to | String >= String | ブール | "abd" >= "abc" | True |
| | | | "abc" >= "abd" | False |
-| Less than or equal to | String <= String | Boolean | "abc" <= "abd" | True |
+| Less than or equal to | String <= String | ブール | "abc" <= "abd" | True |
| | | | "abd" <= "abc" | False |
-| Contains keyword | String % String | Boolean | "Alpha Bravo" % "Bravo" | True |
+| Contains keyword | String % String | ブール | "Alpha Bravo" % "Bravo" | True |
| | | | "Alpha Bravo" % "ravo" | False |
-| | Picture % String | Boolean | Picture_expr % "Mer" | True (*) |
+| | Picture % String | ブール | Picture_expr % "Mer" | True (*) |
(*) If the keyword "Mer" is associated with the picture stored in the picture expression (field or variable).
@@ -157,7 +157,7 @@ If(vsName#"")
End if
```
-Otherwise, if the character reference symbols appear within an expression, they return the character (to which they refer) as a 1-character string. For example:
+Otherwise, if the character reference symbols appear within an expression, they return the character (to which they refer) as a 1-character string. たとえば:
```code4d
//The following example tests if the last character of vtText is an At sign "@"
@@ -192,7 +192,7 @@ will trigger the Runtime Error shown here:

-### Example
+### 例題
The following project method capitalizes the first character of each word of the text received as parameter and returns the resulting capitalized text:
diff --git a/website/translated_docs/ja/Concepts/dt_time.md b/website/translated_docs/ja/Concepts/dt_time.md
index 775c67e627ce38..f64e983638a601 100644
--- a/website/translated_docs/ja/Concepts/dt_time.md
+++ b/website/translated_docs/ja/Concepts/dt_time.md
@@ -29,28 +29,28 @@ A null time is specified by ?00:00:00?
## Time operators
-| Operation | Syntax | Returns | Expression | Value |
+| オペレーション | Syntax | Returns | 式 | Value |
| ------------------------ | -------------- | ------- | ----------------------- | ---------- |
-| Addition | Time + Time | Time | ?02:03:04? + ?01:02:03? | ?03:05:07? |
-| Subtraction | Time – Time | Time | ?02:03:04? – ?01:02:03? | ?01:01:01? |
-| Addition | Time + Number | Number | ?02:03:04? + 65 | 7449 |
-| Subtraction | Time – Number | Number | ?02:03:04? – 65 | 7319 |
-| Multiplication | Time * Number | Number | ?02:03:04? * 2 | 14768 |
-| Division | Time / Number | Number | ?02:03:04? / 2 | 3692 |
-| Longint division | Time \ Number | Number | ?02:03:04? \ 2 | 3692 |
-| Modulo | Time % Time | Time | ?20:10:00? % ?04:20:00? | ?02:50:00? |
-| Modulo | Time % Number | Number | ?02:03:04? % 2 | 0 |
-| Equality | Time = Time | Boolean | ?01:02:03? = ?01:02:03? | True |
+| 加算 (足し算) | Time + Time | 時間 | ?02:03:04? + ?01:02:03? | ?03:05:07? |
+| 減算 (引き算) | Time – Time | 時間 | ?02:03:04? – ?01:02:03? | ?01:01:01? |
+| 加算 (足し算) | Time + Number | 数値 | ?02:03:04? + 65 | 7449 |
+| 減算 (引き算) | Time – Number | 数値 | ?02:03:04? – 65 | 7319 |
+| 乗算 (かけ算) | Time * Number | 数値 | ?02:03:04? * 2 | 14768 |
+| 除算 (割り算) | Time / Number | 数値 | ?02:03:04? / 2 | 3692 |
+| Longint division | Time \ Number | 数値 | ?02:03:04? \ 2 | 3692 |
+| Modulo | Time % Time | 時間 | ?20:10:00? % ?04:20:00? | ?02:50:00? |
+| Modulo | Time % Number | 数値 | ?02:03:04? % 2 | 0 |
+| Equality | Time = Time | ブール | ?01:02:03? = ?01:02:03? | True |
| | | | ?01:02:03? = ?01:02:04? | False |
-| Inequality | Time # Time | Boolean | ?01:02:03? # ?01:02:04? | True |
+| Inequality | Time # Time | ブール | ?01:02:03? # ?01:02:04? | True |
| | | | ?01:02:03? # ?01:02:03? | False |
-| Greater than | Time > Time | Boolean | ?01:02:04? > ?01:02:03? | True |
+| Greater than | Time > Time | ブール | ?01:02:04? > ?01:02:03? | True |
| | | | ?01:02:03? > ?01:02:03? | False |
-| Less than | Time < Time | Boolean | ?01:02:03? < ?01:02:04? | True |
+| Less than | Time < Time | ブール | ?01:02:03? < ?01:02:04? | True |
| | | | ?01:02:03? < ?01:02:03? | False |
-| Greater than or equal to | Time >= Time | Boolean | ?01:02:03? >=?01:02:03? | True |
+| Greater than or equal to | Time >= Time | ブール | ?01:02:03? >=?01:02:03? | True |
| | | | ?01:02:03? >=?01:02:04? | False |
-| Less than or equal to | Time <= Time | Boolean | ?01:02:03? <=?01:02:03? | True |
+| Less than or equal to | Time <= Time | ブール | ?01:02:03? <=?01:02:03? | True |
| | | | ?01:02:04? <=?01:02:03? | False |
### Example 1
diff --git a/website/translated_docs/ja/Concepts/dt_variant.md b/website/translated_docs/ja/Concepts/dt_variant.md
index 6f71bdea51f23a..505cf0227e31c9 100644
--- a/website/translated_docs/ja/Concepts/dt_variant.md
+++ b/website/translated_docs/ja/Concepts/dt_variant.md
@@ -16,14 +16,14 @@ A variant type variable can contain a value of the following data types:
- picture
- pointer
- real
-- text
+- テキスト
- time
- null
- undefined
> Arrays cannot be stored in variant variables.
-In both interpreted and in compiled modes, a same variant variable can be assigned contents of different types. Unlike regular variable types, the variant variable content type is different from the variant variable type itself. For example:
+In both interpreted and in compiled modes, a same variant variable can be assigned contents of different types. Unlike regular variable types, the variant variable content type is different from the variant variable type itself. たとえば:
```code4d
C_VARIANT($variant)
@@ -37,7 +37,7 @@ $vtype:=Type($variant) // 12 (Is variant)
$vtypeVal:=Value type($variant) // 1 (Is real)
```
-You can use variant variables wherever variables are expected, you only need to make sure than the variable content data type is of the expected type. When accessing variant variables, only their current value is taken into account. For example:
+You can use variant variables wherever variables are expected, you only need to make sure than the variable content data type is of the expected type. When accessing variant variables, only their current value is taken into account. たとえば:
```code4d
C_VARIANT($v)
diff --git a/website/translated_docs/ja/Concepts/error-handling.md b/website/translated_docs/ja/Concepts/error-handling.md
index 2737e2c21c8070..d27dc194a91d56 100644
--- a/website/translated_docs/ja/Concepts/error-handling.md
+++ b/website/translated_docs/ja/Concepts/error-handling.md
@@ -16,7 +16,7 @@ Error handling meets two main needs:
In 4D, all errors can be catched and handled in a specific project method, the **error-handling** (or **error-catching**) method.
-This project method is installed for the current process and will be automatically called for any error that occurs in the process, in interpreted or compiled mode. To *install* this project method, you just need to call the `ON ERR CALL` command with the project method name as parameter. For example:
+This project method is installed for the current process and will be automatically called for any error that occurs in the process, in interpreted or compiled mode. To *install* this project method, you just need to call the `ON ERR CALL` command with the project method name as parameter. たとえば:
```code4d
ON ERR CALL("IO_ERRORS") //Installs the error-handling method
@@ -61,7 +61,7 @@ Within the custom error method, you have access to several information that will
- the `GET LAST ERROR STACK` command that returns information about the current stack of errors of the 4D application.
-#### Example
+#### 例題
Here is a simple error-handling system:
diff --git a/website/translated_docs/ja/Concepts/identifiers.md b/website/translated_docs/ja/Concepts/identifiers.md
index f203e323c15944..c69f1d3abaf040 100644
--- a/website/translated_docs/ja/Concepts/identifiers.md
+++ b/website/translated_docs/ja/Concepts/identifiers.md
@@ -213,7 +213,7 @@ DIALOG([Storage];"Note box"+String($vlStage))
You designate a form object by passing its name as a string, preceded by the * parameter. A form object name can contain up to 255 characters.
-Example:
+例:
```code4d
OBJECT SET FONT(*;"Binfo";"Times")
@@ -237,7 +237,7 @@ APPLY TO SELECTION([Employees];INCREASE SALARIES)
**Tip:** It is a good programming technique to adopt the same naming convention as the one used by 4D for built-in methods. Use uppercase characters for naming your methods; however if a method is a function, capitalize the first character of its name. By doing so, when you reopen a database for maintenance after a few months, you will already know if a method returns a result by simply looking at its name in the Explorer window.
-**Note:** When you call a method, you just type its name. However, some 4D built-in commands, such as `ON EVENT CALL`, as well as all the Plug-In commands, expect the name of a method as a string when a method parameter is passed. Example:
+**Note:** When you call a method, you just type its name. However, some 4D built-in commands, such as `ON EVENT CALL`, as well as all the Plug-In commands, expect the name of a method as a string when a method parameter is passed. 例:
Examples:
@@ -250,7 +250,7 @@ APPLY TO SELECTION([Employees];INCREASE SALARIES)
ON EVENT CALL("HANDLE EVENTS")
```
-Project methods can accept parameters (arguments). The parameters are passed to the method in parentheses, following the name of the method. Each parameter is separated from the next by a semicolon (;). The parameters are available within the called method as consecutively numbered local variables: $1, $2,…, $n. In addition, multiple consecutive (and last) parameters can be addressed with the syntax ${n}where n, numeric expression, is the number of the parameter.
+Project methods can accept parameters (arguments). メソッドに引数を渡す場合は、メソッド名の後の括弧 () に引数を入れ、 セミコロン (;) で区切ります。 引数は受け取り側のメソッドにて、受け取り順に番号が付けられたローカル変数 ($1, $2, ...$n) に格納されます。 In addition, multiple consecutive (and last) parameters can be addressed with the syntax ${n}where n, numeric expression, is the number of the parameter.
Inside a function, the $0 local variable contains the value to be returned.
@@ -383,7 +383,7 @@ $vlProcessID:=New process("P_MOUSE_SNIFFER";16*1024;"$Follow Mouse Moves")
The following table summarizes 4D naming conventions.
-| Identifier | Max. Length | Example |
+| Identifier | Max. Length | 例題 |
| ---------------------------- | ----------- | -------------------------- |
| Table | 31 | [Invoices] |
| Field | 31 | [Employees]Last Name |
diff --git a/website/translated_docs/ja/Concepts/methods.md b/website/translated_docs/ja/Concepts/methods.md
index 3c4a6f1050e2e8..1e3f073058016b 100644
--- a/website/translated_docs/ja/Concepts/methods.md
+++ b/website/translated_docs/ja/Concepts/methods.md
@@ -14,7 +14,7 @@ A method is basically a piece of code that executes one or several actions. In t
Built-in methods are detailed in the *4D Language reference* manual or dedicated manuals for plug-ins or components.
-- **project methods**, where you can write your own code to execute any custom actions. Once a project method is created, it becomes part of the language of the database in which you create it. A project method is composed of statements; each statement consists of one line in the method. A statement performs an action, and may be simple or complex. Although a statement is always one line, that one line can be as long as needed (up to 32,000 characters, which is probably enough for most tasks). The maximum size of a project method is limited to 2 GB of text or 32,000 lines of command.
+- **project methods**, where you can write your own code to execute any custom actions. Once a project method is created, it becomes part of the language of the database in which you create it. A project method is composed of statements; each statement consists of one line in the method. ステートメントは単純な場合もあれば、複雑な場合もあります。 Although a statement is always one line, that one line can be as long as needed (up to 32,000 characters, which is probably enough for most tasks). The maximum size of a project method is limited to 2 GB of text or 32,000 lines of command.
**Note:** 4D also provides specific methods that are automatically executed depending on database or form events. See [Specialized methods](#specialized-methods).
@@ -81,7 +81,7 @@ You can encapsulate your project methods in **formula** objects and call them fr
The `New formula` or `New formula from string` commands allow you to create native formula objects that you can encapsulate in object properties. It allows you to implement custom object methods.
-To execute a method stored in an object property, use the **( )** operator after the property name. For example:
+To execute a method stored in an object property, use the **( )** operator after the property name. たとえば:
```code4d
//myAlert
@@ -120,7 +120,7 @@ $result:=$o.full_name("John";"Smith")
// equivalent to $result:=fullName("param1";"param2")
```
-Combined with the `This`function, such object methods allow writing powerful generic code. For example:
+Combined with the `This`function, such object methods allow writing powerful generic code. たとえば:
```code4d
//fullName2 method
@@ -165,7 +165,7 @@ An **error catching method** is an interrupt-based project method. Each time an
## Recursive Project Methods
-Project methods can call themselves. For example:
+Project methods can call themselves. たとえば:
- The method A may call the method B which may call A, so A will call B again and so on.
- A method can call itself.
@@ -244,7 +244,7 @@ Some typical uses of recursion in 4D are:
In addition to generic **project methods**, 4D supports several specific method types, that are automatically called depending on events:
-| Type | Calling context | Accepts parameters | Description |
+| タイプ | Calling context | Accepts parameters | 説明 |
| -------------------------------- | ---------------------------------------------------------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Object (widget) method** | Automatic, when an event involves the object to which the method is attached | No | Property of a form object (also called widget) |
| **Form method** | Automatic, when an event involves the form to which the method is attached | No | Property of a form. You can use a form method to manage data and objects, but it is generally simpler and more efficient to use an object method for these purposes. |
diff --git a/website/translated_docs/ja/Concepts/parameters.md b/website/translated_docs/ja/Concepts/parameters.md
index 6fb98b53754d61..07f7cd93ea2540 100644
--- a/website/translated_docs/ja/Concepts/parameters.md
+++ b/website/translated_docs/ja/Concepts/parameters.md
@@ -112,7 +112,7 @@ In the following example, the `Capitalize` project method accepts a text paramet
$0:=Uppercase(Substring($1;1;1))+Lowercase(Substring($1;2))
```
-Using commands such as `New process` with process methods that accept parameters also require that parameters are explicitely declared in the called method. For example:
+Using commands such as `New process` with process methods that accept parameters also require that parameters are explicitely declared in the called method. たとえば:
```code4d
C_TEXT($string)
@@ -151,7 +151,7 @@ C_TEXT($1;$2;$3;$4;$5;$6)
- Triggers The $0 parameter (Longint), which is the result of a trigger, will be typed by the compiler if the parameter has not been explicitly declared. Nevertheless, if you want to declare it, you must do so in the trigger itself.
-- Form objects that accept the `On Drag Over` form event The $0 parameter (Longint), which is the result of the `On Drag Over` form event, is typed by the compiler if the parameter has not been explicitly declared. Nevertheless, if you want to decalre it, you must do so in the object method. **Note:** The compiler does not initialize the $0 parameter. So, as soon as you use the `On Drag Over` form event, you must initialize $0. For example:
+- Form objects that accept the `On Drag Over` form event The $0 parameter (Longint), which is the result of the `On Drag Over` form event, is typed by the compiler if the parameter has not been explicitly declared. Nevertheless, if you want to decalre it, you must do so in the object method. **Note:** The compiler does not initialize the $0 parameter. So, as soon as you use the `On Drag Over` form event, you must initialize $0. たとえば:
```code4d
C_LONGINT($0)
@@ -167,7 +167,7 @@ C_TEXT($1;$2;$3;$4;$5;$6)
## Values or references
-When you pass a parameter, 4D always evaluates the parameter expression in the context of the calling method and sets the **resulting value** to the $1, $2... local variables in the subroutine (see [Using parameters](#using-parameters)). The local variables/parameters are not the actual fields, variables, or expressions passed by the calling method; they only contain the values that have been passed. Since its scope is local, if the value of a parameter is modified in the subroutine, it does not change the value in the calling method. For example:
+When you pass a parameter, 4D always evaluates the parameter expression in the context of the calling method and sets the **resulting value** to the $1, $2... local variables in the subroutine (see [Using parameters](#using-parameters)). The local variables/parameters are not the actual fields, variables, or expressions passed by the calling method; they only contain the values that have been passed. Since its scope is local, if the value of a parameter is modified in the subroutine, it does not change the value in the calling method. たとえば:
```code4d
//Here is some code from the method MY_METHOD
diff --git a/website/translated_docs/ja/Concepts/quick-tour.md b/website/translated_docs/ja/Concepts/quick-tour.md
index 05b85e1ae82146..c7259034138ffa 100644
--- a/website/translated_docs/ja/Concepts/quick-tour.md
+++ b/website/translated_docs/ja/Concepts/quick-tour.md
@@ -1,63 +1,63 @@
---
id: quick-tour
-title: A Quick Tour
-sidebar_label: A Quick Tour
+title: 概要
+sidebar_label: 概要
---
-Using the 4D language, printing the traditional "Hello, world!" message on screen can be done in several ways. The most simple is probably to write the following single line in a project method:
+4D ランゲージを使用して "Hello, world!" メッセージを表示するには複数の方法があります。 一番簡単な方法はおそらく、プロジェクトメソッドにコードを1行、次のように書くやり方です:
```code4d
ALERT("Hello, World!")
```
-This code will display a platform-standard alert dialog box with the "Hello, World!" message, containing an OK button. To execute the code, you just need to click on the execution button in the Method editor:
+このコードは、 "Hello, World!" メッセージが表示された、OK ボタンの付いたプラットフォームの標準的なアラートダイアログボックスを開きます。 コードを実行するには、メソッドエディターの左上にある実行ボタンをクリックします:

-Or, you could attach this code to a button in a form and execute the form, in which case clicking on the button would display the alert dialog box. In any cases, you have just executed your first line of 4D code!
+あるいは、フォーム内のボタンにこのコードを付けた場合、フォームを実行した状態でボタンをクリックすると、その都度アラートメッセージが表示されます。 いずれの方法でも、前述の1行のコードを実行するだけで目的達成です!
-## Assigning Values
+## 値の代入
-Data can be put into and copied out of variables, fields, array elements... Putting data into a variable is called assigning the data to the variable and is done with the assignment operator (:=). The assignment operator is also used to assign data to fields or array elements.
+変数、フィールド、配列要素などを対象に、データを格納したり、格納したデータを別の対象にコピーしたりすることができます。 変数にデータを格納することを、変数にデータを代入すると言い、代入演算子 (:=) を使っておこないます。 代入演算子はフィールドや配列要素に対してデータを代入する場合にも使います。
```code4d
-$MyNumber:=3 //assigns 3 to MyNumber variable
-[Products]Size:=$MyNumber //assigns MyNumber variable to [Products]Size field
-arrDays{2}:="Tuesday" //assigns "Tuesday" string to the 2nd arrDays element
-MyVar:=Length("Acme") //assigns the result of the function (4) to MyVar
-$myDate:=!2018/01/21! //assigns a date literal
-$myHour:=?08:12:55? //assigns a time literal
+$MyNumber:=3 // MyNumber 変数に数値の3を代入します
+[Products]Size:=$MyNumber // [Products]Size フィールドに MyNumber 変数の値を代入します
+arrDays{2}:="Tuesday" // arrDays 配列の第二要素に文字列 "Tuesday" を代入します
+MyVar:=Length("Acme") // MyVar 変数に関数の結果 (数値の4) を代入します
+$myDate:=!2018/01/21! // 日付リテラルを代入します
+$myHour:=?08:12:55? // 時間リテラルを代入します
```
-You MUST distinguish the assignment operator := from the other operators. Rather than combining expressions into a new one, the assignment operator copies the value of the expression to the right of the assignment operator into the variable or field to the left of the operator.
+代入演算 (:=) は必ず他の演算と区別しなければなりません。 代入演算子は、被演算子を組み合わせて新しい一つのものにするのではなく、演算子の右側の式の値を左側の変数やフィールドにコピーします。
-**Important:** Do NOT confuse the assignment operator := with the equality comparison operator =. A different assignment operator (and not =) was deliberately chosen to avoid issues and confusion which often occur with == or === in other programming languages. Such errors are often difficult to recognize by the compiler and lead to time-consuming troubleshooting.
+**重要:** 代入演算子 (:=) と比較演算子 (=) とを混同しないように注意してください。 (=) とは異なる代入演算子が採用されたのは意図的なことで、他のプログラミング言語で (==) や (===) の使用によって度々起こる間違いを避けるためです。 このような間違いはコンパイラーにとっても発見しにくく、時間を消耗するトラブルシューティングのもとです。
-## Variables
+## 変数
-The 4D language is strongly typed, although some flexibility is allowed in many cases. You create a typed variable using a `C_XXX` command. For example, to create a variable of the date type, you can write:
+4D ランゲージは強い型付けの言語ですが、多くの場合に柔軟性も発揮します。 型付けのされた変数は `C_XXX` コマンドを使って作成します。 たとえば、日付型の変数を作成するには、次のように書くことができます:
```code4d
-C_DATE(MyDate) //Date type for MyDate variable
+C_DATE(MyDate) // MyDate 変数を日付型として宣言
```
-Even if it is usually not recommended, you can create variables simply by using them; you do not necessarily need to formally define them as you do with fields. For example, if you want a variable that will hold the current date plus 30 days, you can write:
+推奨はされませんが、変数を使用することで作成することもできます。フィールドとは異なり、変数は必ずしも正式に宣言する必要はありません。 たとえば、今日の日付に30日足した値を格納した変数が欲しい場合、次のように書くことができます:
```code4d
MyOtherDate:=Current date+30
```
-The line of code reads “MyOtherDate gets the current date plus 30 days.” This line creates the variable, assigns it with both the (temporary) date type and a content. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and then changes the type dynamically. A variable typed with `C_XXX` cannot change the type. In compiled mode, the type can never be changed, regardless of how the variable was created.
+上のコードは "MyOtherDate に、現在の日付に30日を加算した値を代入します" という意味です。この1行で変数が作成され、変数に (仮の) データ型とデータが割り当てられます。 このように代入によって作成された変数はデータ型が規定されていないと解釈され、コードの違う行では別のデータ型の値を代入することもでき、その際にはデータ型を動的に変化させます。 `C_XXX` によって宣言された変数はデータ型を変化させることはできません。 コンパイルモードにおいては、その作成方法にかかわらず、変数のデータ型は変更できません。
-## Commands
+## コマンド
-4D commands are built-in methods to perform an action. All 4D commands, such as `CREATE RECORD`, or `ALERT`, are described in the *4D Language Reference* manual, grouped by theme. Commands are often used with parameters, which are passed in brackets () and separated by semicolons (;). Example:
+4D コマンドとは、処理を実行するために 4D に組み込まれている命令文のことです。 すべての 4D コマンド、たとえば `CREATE RECORD` や `ALERT` などのコマンドはテーマ別に *4D ランゲージリファレンス* に記載されています。 コマンドに引数を渡す場合は、コマンド名の後の括弧 () に引数を入れ、セミコロン (;) で区切ります。 例:
```code4d
COPY DOCUMENT("folder1\\name1";"folder2\\" ; "new")
```
-Some commands are attached to collections or objects, in which case they are named methods and are used using the dot notation. For example:
+コレクションやオブジェクトにコマンドが属している場合、それらは名前付きメソッドであり、ドット記法を用いて使用します。 たとえば:
```code4d
$c:=New collection(1;2;3;4;5)
@@ -66,207 +66,207 @@ $nc:=$c.slice(0;3) //$nc=[1,2,3]
$lastEmployee:=$employee.last()
```
-You can use 4D plug-ins or 4D components that add new commands to your 4D development environment.
+4D プラグインや 4D コンポーネントを利用して、4D 開発環境に新しくコマンドを追加することもできます。
-There are many plug-ins proposed by the 4D user community or 3rd-party developers on the market. For example, using the [4d-plugin-pdf-pages](https://github.com/miyako/4d-plugin-pdf-pages) on macOS:
+4D のユーザーコミュニティーや、サードパーティーデベロッパーによるプラグインが多数存在します。 たとえば, [4d-plugin-pdf-pages](https://github.com/miyako/4d-plugin-pdf-pages) プラグインを macOS で使用した場合は次のコードが書けます:
```code4d
PDF REMOVE PAGE(path;page)
```
-4D SVG is an example of a utility component extending the capabilities of your application:
+4D SVG はアプリケーションの機能を拡張するユーティリティコンポーネントの一例です:
```code4d
-//drawing a picture
+// 図の描画
svgRef:=SVG_New
objectRef:=SVG_New_arc(svgRef;100;100;90;90;180)
```
-4D SVG is included in 4D.
+4D SVG は 4D に含まれています。
-## Constants
+## 定数
-4D proposes an extensed set of predefined constants, whose values are accessible by name. For example, `Read Mode` is a constant (value 2). Predefined constants appear underlined by default in the 4D Method editor. They allow writing more readable code.
+4D では多くの定義済定数が用意されており、それらの値は名前によってアクセスすることができます。 たとえば、`Read Mode` は定数で、その値は 2 です。 メソッドエディターにおいて、定義済定数はデフォルトで下線付きで表示されます。 定義済みの定数によって、より可読性の高いコードを書くことができます。
```code4d
-vRef:=Open document("PassFile";"TEXT";Read Mode) // open doc in read only mode
+vRef:=Open document("PassFile";"TEXT";Read Mode) // ドキュメントを読み取り専用モードで開きます
```
-## Methods
+## メソッド
-4D provides a large number of built-in methods (or commands) but also lets you can create your own **project methods**. Project methods are user-defined methods that contain commands, operators, and other parts of the language. Project methods are generic methods, but there are other kinds of methods: Object methods, Form methods, Table methods (Triggers), and Database methods.
+4D が提供するたくさんのビルトインコマンドを使って、独自の **プロジェクトメソッド** を組み立てることができます。 プロジェクトメソッドとはユーザー定義のメソッドで、コマンドや演算子などの要素から成り立ちます。 プロジェクトメソッドは汎用性のあるメソッドですが、そうではない他の種類のメソッドも存在します: オブジェクトメソッド、フォームメソッド、テーブルメソッド (トリガー)、データベースメソッド。
-A method is composed of statements; each statement consists of one line in the method. A statement performs an action, and may be simple or complex.
+メソッドは、一つ以上のステートメントで構成されます。ステートメントとは、メソッドの1行のことで1つの命令を実行します。 ステートメントは単純な場合もあれば、複雑な場合もあります。
-For example, the following line is a statement that will display a confirmation dialog box:
+たとえば、次のステートメントは確認ダイアログボックスを表示します:
```code4d
-CONFIRM("Do you really want to close this account?";"Yes";"No")
+CONFIRM("このアカウントを本当に閉じますか?";"はい";"いいえ")
```
-A method also contains tests and loops that control the flow of the execution. 4D methods support `If...Else...End if` and `Case of...Else...End case` branching structures as well as looping structures: `While...End while`, `Repeat...Until`, `For...End for`, and `For each...End for each`:
+メソッドは、テストとループの制御フローの実行を含みます。 `If...Else...End if` および `Case of...Else...End case` の分岐構造が使用できるほか、ループ構造としては `While...End while`、`Repeat...Until`、`For...End for`、そして `For each...End for each` が使用可能です:
-The following example goes through all the characters of the text vtSomeText:
+テキスト変数 vtSomeText の文字を一つ一つループ処理します:
```code4d
For($vlChar;1;Length(vtSomeText))
- //Do something with the character if it is a TAB
+ // 文字がタブであれば
If(Character code(vtSomeText[[$vlChar]])=Tab)
- //...
+ // なんらかの処理をします
End if
End for
```
-A project method can call another project method with or without parameters (arguments). The parameters are passed to the method in parentheses, following the name of the method. Each parameter is separated from the next by a semicolon (;). The parameters are available within the called method as consecutively numbered local variables: $1, $2,…, $n. A method can return a single value in the $0 parameter. When you call a method, you just type its name:
+プロジェクトメソッドは他のプロジェクトメソッドを呼び出すことができ、その際に引数を渡すことも可能です。 メソッドに引数を渡す場合は、メソッド名の後の括弧 () に引数を入れ、 セミコロン (;) で区切ります。 引数は受け取り側のメソッドにて、受け取り順に番号が付けられたローカル変数 ($1, $2, ...$n) に格納されます。 メソッドの一つの値を戻り値とすることができ、$0 パラメーターを使います。 メソッドを呼び出すには、メソッド名を書きます:
```code4d
$myText:="hello"
-$myText:=Do_Something($myText) //Call the Do_Something method
+$myText:=Do_Something($myText) // Do_Something メソッドを呼び出します
ALERT($myText) //"HELLO"
- //Here the code of the method Do_Something
+ // Do_Something メソッドのコードです
$0:=Uppercase($1)
```
-## Data Types
+## データタイプ
-In the language, the various types of data that can be handled are referred to as data types. There are basic data types (string, numeric, date, time, Boolean, picture, pointers, arrays), and also composite data types (BLOBs, objects, collections).
+4D ランゲージで扱うデータにはいくつかの種別があり、これらのデータ種別を "データタイプ" と呼びます。 基本的なデータタイプ (文字、数値、日付、時間、ブール、ピクチャー、ポインター、配列) と混合型のデータタイプ (BLOB、オブジェクト、コレクション) があります。
-Note that string and numeric data types can be associated with more than one type of field. When data is put into a field, the language automatically converts the data to the correct type for the field. For example, if an integer field is used, its data is automatically treated as numeric. In other words, you need not worry about mixing similar field types when using the language; it will manage them for you.
+データタイプのうち、文字タイプと数値タイプは、複数の類似するフィールドタイプに対応する点に注意してください。 これらのフィールドにデータが格納されるとき、4D ランゲージはフィールドタイプに合致するデータタイプへとデータを自動的に変換します。 反対に、たとえば整数フィールドのデータを呼び出すと、そのデータは自動的に数値タイプとして扱われます。 つまり、4D ランゲージを使用する際に、類似するフィールドタイプを厳密に区別する必要はありません。
-However, when using the language it is important that you do not mix different data types. In the same way that it makes no sense to store “ABC” in a Date field, it makes no sense to put “ABC” in a variable used for dates. In most cases, 4D is very tolerant and will try to make sense of what you are doing. For example, if you add a number to a date, 4D will assume that you want to add that number of days to the date, but if you try to add a string to a date, 4D will tell you that the operation cannot work.
+しかし、プログラミングにおいて異なるデータタイプを混同しないようにすることは重要です。 "ABC" を日付フィールドに格納しても意味がないように、日付型の変数に "ABC" を格納することも意味がありません。 4D は、コードに書かれたことをできるだけ有効にしようとします。 たとえば、日付に数値を加算した場合は、日付に日数を加算したいものと認識します。しかし、日付に文字列を加算した場合には、4D はその操作が意味を持たないことを警告します。
-There are cases in which you need to store data as one type and use it as another type. The language contains a full complement of commands that let you convert from one data type to another. For example, you may need to create a part number that starts with a number and ends with characters such as “abc”. In this case, you might write:
+あるタイプとして格納したデータを、別のタイプとして使用する場合があります。 4D ランゲージには、データタイプを変換するためのコマンドが用意されています。 たとえば、数値で始まり、"abc" 等の文字で終了する部品番号を作成する場合、 以下のように記述することができます:
```code4d
-[Products]Part Number:=String(Number)+"abc"
+[Products]Part_Number:=String(Number)+"abc"
```
-If *Number* is 17, then *[Products]Part Number* will get the string “17abc”.
+数値変数 *Number* の値が17であれば、*[Products]Part_Number* に "17abc" という文字列が代入されます。
-The data types are fully defined in the section [Data Types](Concepts/data-types.md).
+データタイプについては [データタイプ](Concepts/data-types.md) の節で詳しく説明しています。
-## Objects and collections
+## オブジェクトとコレクション
-You can handle 4D language objects and collections using the object notation to get or to set their values. For example:
+4D ランゲージのオブジェクトとコレクションは、オブジェクト記法を使用して値を代入・取得することができます。 たとえば:
```code4d
employee.name:="Smith"
```
-You can also use a string within square brackets, for example:
+大カッコ内と文字列の組み合わせを用いることもできます:
```code4d
$vName:=employee["name"]
```
-Since an object property value can be an object or a collection, object notation accepts a sequence of symbols to access sub-properties, for example:
+オブジェクトプロパティ値には、オブジェクトあるいはコレクションも設定することが可能です。これらのサブプロパティにアクセスするため、オブジェクト記法では連続した記号を受け入れることができます:
```code4d
$vAge:=employee.children[2].age
```
-Note that if the object property value is an object that encapsulates a method (a formula), you need to add parenthesis () to the property name to execute the method:
+オブジェクトのプロパティ値が、メソッド (フォーミュラ) をカプセル化したオブジェクトである場合には、プロパティ名の後に括弧 ( ) をつけることで実行できます:
$f:=New object
$f.message:=New formula(ALERT("Hello world!"))
- $f.message() //displays "Hello world!"
+ $f.message() // "Hello world!" を表示します
-To access a collection element, you have to pass the element number embedded in square brackets:
+コレクションの要素にアクセスするためには、大カッコでくくった要素番号を渡します:
```code4d
C_COLLECTION(myColl)
myColl:=New collection("A";"B";1;2;Current time)
-myColl[3] //access to 4th element of the collection
+myColl[3] // コレクションの4番目の要素にアクセスします (0起点)
```
-## Operators
+## 演算子
-When you use the language, it is rare that you will simply want a piece of data. It is more likely that you will want to do something to or with that data. You perform such calculations with operators. Operators, in general, take two pieces of data and perform an operation on them that results in a new piece of data. You are already familiar with many operators. For example, 1 + 2 uses the addition (or plus sign) operator to add two numbers together, and the result is 3. This table shows some familiar numeric operators:
+プログラミング言語を使用する際に、データのみを必要とする場合は非常に稀です。 データを加工、または何らかの目的のために使用することがほとんどです。 そういった計算は演算子を使っておこないます。 一般的に演算子とは、2つのデータをもとに処理をおこない、1つの新しいデータを生成します。 日常的に使用されている演算子も多くあります。 例えば、1 + 2 という式は加算演算子(プラス記号)を使用し、2つの数値を足し合わせて、3という結果を返します。 以下に、よく知られている 4つの演算子を示します。
-| Operator | Operation | Example |
-| -------- | -------------- | ------------------ |
-| + | Addition | 1 + 2 results in 3 |
-| – | Subtraction | 3 – 2 results in 1 |
-| * | Multiplication | 2 * 3 results in 6 |
-| / | Division | 6 / 2 results in 3 |
+| 演算子 | オペレーション | 例題 |
+| --- | -------- | ------------ |
+| + | 加算 (足し算) | 1 + 2 の結果は 3 |
+| – | 減算 (引き算) | 3 - 2 の結果は 1 |
+| * | 乗算 (かけ算) | 2 * 3 の結果は 6 |
+| / | 除算 (割り算) | 6 / 2 の結果は 3 |
-Numeric operators are just one type of operator available to you. 4D supports many different types of data, such as numbers, text, dates, and pictures, so there are operators that perform operations on these different data types.
+数値演算子は、使用可能な演算子のうちの 1種にすぎません。 4Dは、数値・テキスト・日付・ピクチャー等、異なるタイプのデータを扱うために、各データタイプで演算を実行するための演算子を備えています。
-The same symbols are often used for different operations, depending on the data type. For example, the plus sign (+) performs different operations with different data:
+対象のデータタイプによって、同じ記号が異なる処理に使用される場合があります。 例えば、データタイプによってプラス記号 (+) は下記のように異なる演算を実行します:
-| Data Type | Operation | Example |
-| --------------- | ------------- | ---------------------------------------------------------------------------------------------------- |
-| Number | Addition | 1 + 2 adds the numbers and results in 3 |
-| String | Concatenation | “Hello ” + “there” concatenates (joins together) the strings and results in “Hello there” |
-| Date and Number | Date addition | !1989-01-01! + 20 adds 20 days to the date January 1, 1989, and results in the date January 21, 1989 |
+| データタイプ | オペレーション | 例題 |
+| ------ | -------- | --------------------------------------------------------- |
+| 数値 | 加算 (足し算) | 1 + 2 は数値を加算し、結果は 3 です。 |
+| 文字 | 連結 (結合) | "みなさん" + "こんにちは" は文字を連結 (結合) し、結果は "みなさんこんにちは" です。 |
+| 日付と数値 | 日付の加算 | !2006/12/4! + 20 は、2006年12月4日に 20日を加算し、結果は 2006年12月24日です。 |
-The operators are fully defined in the chapter Operators and its subsections.
+演算子についての詳細は演算子の章を参照してください。
-## Expressions
+## 式
-Simply put, expressions return a value. In fact, when using the 4D language, you use expressions all the time and tend to think of them only in terms of the value they represent. Expressions are also sometimes referred to as formulas.
+式は、値を返します。 4D ランゲージでコードを書く際には、意識していなくても常に式を使用しています。 式は、"フォーミュラ" と呼ぶこともあります。
-Expressions are made up of almost all the other parts of the language: commands, operators, variables, fields, object properties, and collection elements. You use expressions to build statements (lines of code), which in turn are used to build methods. The language uses expressions wherever it needs a piece of data.
+コマンド・演算子・変数・フィールド・オブジェクトプロパティ・コレクション要素等、複数のランゲージの要素を組み合わせて式は構成されます。 式により、ステートメント (メソッドの 1文や 1行) を構成します。 データが必要なとき、式が必要になります。
-Expressions rarely “stand alone.” There are several places in 4D where an expression can be used by itself. It includes:
+式が単独で使われることはほとんどありませんが、単独で使用できる場合がいくつかあります :
-- Formula editor (apply formula, query with formula, order by formula)
-- The `EXECUTE FORMULA` command
-- The Property list, where an expression can be used as a data source for most of widgets
-- Debugger where the value of expressions can be checked
-- Quick Report editor as a formula for a column
+- フォーミュラエディター (フォーミュラによるクエリや並べ替えなど)
+- `EXECUTE FORMULA` コマンド
+- フォームオブジェクトやウィジェットのデータソースとして
+- デバッガー内で式の値を確認することができます
+- クイックレポートエディターでカラムにフォーミュラを使用することができます
-### Expression types
+### 式のタイプ
-You refer to an expression by the data type it returns. There are several expression types. The following table gives examples of each type of expression.
+生成する値のタイプによって、式のタイプを定義することができます。 式のタイプは複数あります。 様々なタイプの式の例を以下に示します。
-| Expression | Type | Description |
-| ------------------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| “Hello” | String | The word Hello is a string constant, indicated by the double quotation marks. |
-| “Hello ” + “there” | String | Two strings, “Hello ” and “there”, are added together (concatenated) with the string concatenation operator (+). The string “Hello there” is returned. |
-| “Mr. ” + [People]Name | String | Two strings are concatenated: the string “Mr. ” and the current value of the Name field in the People table. If the field contains “Smith”, the expression returns “Mr. Smith”. |
-| Uppercase("smith") | String | This expression uses `Uppercase`, a command from the language, to convert the string “smith” to uppercase. It returns “SMITH”. |
-| 4 | Number | This is a number constant, 4. |
-| 4 * 2 | Number | Two numbers, 4 and 2, are multiplied using the multiplication operator (*). The result is the number 8. |
-| myButton | Number | This is a variable associated to a button. It returns the current value of the button: 1 if it was clicked, 0 if not. |
-| !1997-01-25! | Date | This is a date constant for the date 1/25/97 (January 25, 1997). |
-| Current date+ 30 | Date | This is a date expression that uses the `Current date` command to get today’s date. It adds 30 days to today’s date and returns the new date. |
-| ?8:05:30? | Time | This is a time constant that represents 8 hours, 5 minutes, and 30 seconds. |
-| ?2:03:04? + ?1:02:03? | Time | This expression adds two times together and returns the time 3:05:07. |
-| True | Boolean | This command returns the Boolean value TRUE. |
-| 10 # 20 | Boolean | This is a logical comparison between two numbers. The number sign (#) means “is not equal to”. Since 10 “is not equal to” 20, the expression returns TRUE. |
-| “ABC” = “XYZ” | Boolean | This is a logical comparison between two strings. They are not equal, so the expression returns FALSE. |
-| My Picture + 50 | Picture | This expression takes the picture in My Picture, moves it 50 pixels to the right, and returns the resulting picture. |
-| ->[People]Name | Pointer | This expression returns a pointer to the field called [People]Name. |
-| Table (1) | Pointer | This is a command that returns a pointer to the first table. |
-| JSON Parse (MyString) | Object | This is a command that returns MyString as an object (if proper format) |
-| JSON Parse (MyJSONArray) | Collection | This is a command that returns MyJSONArray as a collection (if proper format) |
-| Form.pageNumber | Object property | An object property is an expression that can be of any supported type |
-| Col[5] | Collection element | A collection element is an expression that can be of any supported type |
-| $entitySel[0] | Entity | A element of an ORDA entity selection is an expression of the entity type. This kind of expression is **non-assignable** |
+| 式 | タイプ | 説明 |
+| --------------------------- | ----------- | ------------------------------------------------------------------------------- |
+| "こんにちは" | 文字 | これは文字列定数 "こんにちは" です。 文字列定数であることを表すために二重引用符が必要です。 |
+| "みなさん" + "こんにちは" | 文字 | 2つの文字列 "みなさん" と "こんにちは" が + 演算子により結合され、 "みなさんこんにちは" を返します。 |
+| [People]Name + "様" | 文字 | 2つの文字列の結合です。 [People]Name フィールドと文字列 "様" が結合されます。 フィールドの値が "小林" の場合、"小林様" を返します。 |
+| Uppercase ("smith") | 文字 | この式は `Uppercase` コマンドを使用して、文字列 "smith" を英大文字に変換します。 そして "SMITH" を返します。 |
+| 4 | 数値 | これは数値定数 4です。 |
+| 4 * 2 | 数値 | 2つの数値、4 と 2 の乗算です。乗算演算子の (*) を使用しています。 数値の 8を返します。 |
+| myButton | 数値 | これはボタンに紐づけられた変数です。 ボタンの現在の値を返します: クリックされた場合に 1、それ以外は 0 を返します。 |
+| !06/12/24! または !2006/12/24! | 日付 | この式は日付定数で 2006年12月24日を表します。 |
+| Current date + 30 | 日付 | これは日付の計算です。`Current date` コマンドは現在の日付を返します。 現在の日付に 30日を加えた日付を返します。 |
+| ?8:05:30? | 時間 | これは時間定数で、8時5分30秒を表します。 |
+| ?2:03:04? + ?1:02:03? | 時間 | 2つの時間の足し算をおこない、3時5分7秒を返します。 |
+| True | ブール | このコマンドはブール値のTRUE (真) を返します。 |
+| 10 # 20 | ブール | これは 2つの数値の論理比較です。 #記号は、"等しくない" を表します。 10と20は "等しくない" ため、この式は TRUE (真) を返します。 |
+| "ABC" = "XYZ" | ブール | これは文字列の論理比較です。 文字列は等しくないため、式は FALSE (偽) を返します。 |
+| My Picture + 50 | ピクチャー | この式は My Picture 変数に入っているピクチャーを右に 50ピクセル移動したピクチャーを返します。 |
+| ->[People]Name | ポインター | この式は [People]Name フィールドへのポインターを返します。 |
+| Table (1) | ポインター | このコマンドは一番目に定義されたテーブルへのポインターを返します。 |
+| JSON Parse (MyString) | オブジェクト | このコマンドは MyString が適切なフォーマットであれば、オブジェクトとして返します。 |
+| JSON Parse (MyJSONArray) | コレクション | このコマンドは MyJSONArray が適切なフォーマットであれば、コレクションとして返します。 |
+| Form.pageNumber | オブジェクトプロパティ | オブジェクトプロパティは式として、サポートされているいずれのタイプでもありえます。 |
+| Col[5] | コレクション要素 | コレクション要素は式として、サポートされているいずれのタイプでもありえます。 |
+| $entitySel[0] | エンティティ | ORDA のエンティティセレクションの要素である、エンティティを返します。 これは **代入不可の式** です。 |
-### Assignable vs non-assignable expressions
+### 代入可 vs 代入不可の式
-An expression can simply be a literal constant, such as the number 4 or the string "Hello", or a variable like `$myButton`. It can also use operators. For example, 4 + 2 is an expression that uses the addition operator to add two numbers together and return the result 6. In any cases, these expressions are **non-assignable**, which means that you cannot assign a value to them. In 4D, expressions can be **assignable**. An expression is assignable when it can be used on the right side of an assignation. For example:
+式は、数値の4や"Hello" の文字列のようなリテラル定数であったり、`$myButton` のような変数であったりします。 式には演算子も含められます。 たとえば、4 + 2 という式は加算演算子を使って二つの数値を加算し、結果の 6 を返します。 リテラル定数や演算子を使った式は **代入不可の式**で、式に値を代入することはできません。 **代入可能な式** も存在します。 代入演算子の左側に使えるものが、代入可能な式です。 たとえば:
```code4d
-//$myVar variable is assignable, you can write:
-$myVar:="Hello" //assign "Hello" to myVar
-//Form.pageNumber is assignable, you can write:
-Form.pageNumber:=10 //assign 10 to Form.pageNumber
-//Form.pageTotal-Form.pageNumber is not assignable:
-Form.pageTotal- Form.pageNumber:=10 //error, non-assignable
+// 変数 $myVar は代入可能です:
+$myVar:="Hello" // $myVar に "Hello" を代入します
+//Form.pageNumber は代入可能です:
+Form.pageNumber:=10 // Form.pageNumber に 10 を代入します
+//Form.pageTotal-Form.pageNumber は代入不可です:
+Form.pageTotal- Form.pageNumber:=10 // 代入不可のため、エラー
```
-In general, expressions that use an operator are non-assignable. For example, `[Person]FirstName+" "+[Person]LastName` is not assignable.
+このように、リテラル定数ではなくても、演算子を使っている式は代入不可です。 たとえば、`[Person]FirstName+" "+[Person]LastName` は代入不可です。
-## Pointers
+## ポインター
-The 4D language provides an advanced implementation of pointers, that allow writing powerful and modular code. You can use pointers to reference tables, fields, variables, arrays, and array elements.
+ポインターは、プログラミングにおいてデータを参照するための高度な方法です。 4D ではテーブル、フィールド、変数、配列、配列要素を参照するためにポインターを使用することができます。
-A pointer to an element is created by adding a "->" symbol before the element name, and can be dereferenced by adding the "->" symbol after the pointer name.
+対象へのポインターは、その対象の前にポインター記号 (->) を付けることで取得することができます。反対にポインターから対象を取得するには、ポインター名の後にポインター記号をつけます:
```code4d
MyVar:="Hello"
@@ -274,50 +274,50 @@ MyPointer:=->MyVar
ALERT(MyPointer->)
```
-## Comments
+## コメント
-Comments are inactive lines of code. These lines are not interpreted by the 4D language and are not executed when the code is called.
+コメントとは、コード内の実行されないテキストのことです。 これらのテキストは、コード実行時にインタープリターによって無視されます。
-There are two ways to create comments:
+コメントの書き方は2通りあります:
-- `//` for single line comments
-- `/*...*/` for inline or multiline commnents.
+- `//` 記号の後はすべてコメントとして扱われるため、これを使って1行のコメントが書けます
+- `/*コメント*/` の表記方法でインラインコメント、または複数行にまたがるコメントが書けます
-Both styles of comments can be used simultaneously.
+これらの書き方は同時に使用できます。
-#### Single line comments (//)
+#### シングルラインコメント (//)
-Insert `//` at the beginning of a line or after a statement to add a single line comment. Example:
+コードの後や行の最初に `//` を使うと、その後のテキストはすべてコメントとなります。 例:
```code4d
-//This is a comment
-For($vCounter;1;100) //Starting loop
- //comment
- //comment
- //comment
+// これはコメントです
+For($vCounter;1;100) // ループを開始します
+ // コメント
+ // コメント
+ // コメント
End for
```
-#### Inline or multiline comments (/* */)
+#### インライン、およびマルチラインコメント (/* */)
-Surround contents with `/*` ... `*/` characters to create inline comments or multiline comment blocks. Both inline and multiline comment blocks begin with `/*` and end with `*/`.
+コメントを `/*` と `*/` で囲むと、そのあいだのテキストはコメントとなります。 この方法でインラインおよびマルチラインコメントが書けます:
-- **Inline comments** can be inserted anywhere in the code. Example:
+- **インラインコメント** の 例:
```code4d
-For /* inline comment */ ($vCounter;1;100)
+For /* インラインコメント */ ($vCounter;1;100)
...
End for
```
-- **Multiline comment blocks** allows commenting an unlimited number of lines. Comment blocks can be nested (useful since the 4D code editor supports block collapsing). Example:
+- **マルチラインコメント** は複数行にわたるコメントのことです。 この形式のコメントは入れ子にすることができ、4D コードエディターではこれを展開したり折り畳んだりすることができます。 例:
```code4d
For ($vCounter;1;100)
/*
-comments
+コメント
/*
- other comments
+ 詳細なコメント
*/
*/
...
diff --git a/website/translated_docs/ja/Concepts/variables.md b/website/translated_docs/ja/Concepts/variables.md
index 5b29c98931a5ba..35dc5500abf8e1 100644
--- a/website/translated_docs/ja/Concepts/variables.md
+++ b/website/translated_docs/ja/Concepts/variables.md
@@ -48,7 +48,7 @@ The following are some basic variable declarations:
Data can be put into and copied out of variables and arrays. Putting data into a variable is called **assigning the data to the variable** and is done with the assignment operator (:=). The assignment operator is also used to assign data to fields.
-The assignment operator is the primary way to create a variable and to put data into it. You write the name of the variable that you want to create on the left side of the assignment operator. For example:
+The assignment operator is the primary way to create a variable and to put data into it. You write the name of the variable that you want to create on the left side of the assignment operator. たとえば:
```code4d
MyNumber:=3
diff --git a/website/translated_docs/ja/FormEditor/createStylesheet.md b/website/translated_docs/ja/FormEditor/createStylesheet.md
index 6d257122e4b2d4..08d940deb210c3 100644
--- a/website/translated_docs/ja/FormEditor/createStylesheet.md
+++ b/website/translated_docs/ja/FormEditor/createStylesheet.md
@@ -220,7 +220,7 @@ icon: url("edit.png"); /* relative path to the form file */
- hexa value: `fill: #FF0000;`
- 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:
+- If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. たとえば:
- a xliff reference: `tooltip: ":xliff:CommonMenuFile";`
- a datasource with a field expression: `dataSource: "[Table_1:1]ID:1";`
diff --git a/website/translated_docs/ja/FormObjects/checkbox_overview.md b/website/translated_docs/ja/FormObjects/checkbox_overview.md
index 31a8503925e06d..c2481124dddb30 100644
--- a/website/translated_docs/ja/FormObjects/checkbox_overview.md
+++ b/website/translated_docs/ja/FormObjects/checkbox_overview.md
@@ -1,6 +1,6 @@
---
id: checkboxOverview
-title: チェックボックス
+title: Check Box
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/comboBox_overview.md b/website/translated_docs/ja/FormObjects/comboBox_overview.md
index dac1ac1a743d7d..991774f7657639 100644
--- a/website/translated_docs/ja/FormObjects/comboBox_overview.md
+++ b/website/translated_docs/ja/FormObjects/comboBox_overview.md
@@ -1,6 +1,6 @@
---
id: comboBoxOverview
-title: コンボボックス
+title: Combo Box
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/dropdownList_Overview.md b/website/translated_docs/ja/FormObjects/dropdownList_Overview.md
index 006e8a000421e5..5131e1bdff1c38 100644
--- a/website/translated_docs/ja/FormObjects/dropdownList_Overview.md
+++ b/website/translated_docs/ja/FormObjects/dropdownList_Overview.md
@@ -1,6 +1,6 @@
---
id: dropdownListOverview
-title: ドロップダウンリスト
+title: Drop-down List
---
## Overview
@@ -20,7 +20,7 @@ Drop-down list objects are initialized by loading a list of values into an array
* Enter a list of default values in the object properties by selecting "\" in the [Data Source](properties_DataSource.md) theme of the Property List. The default values are loaded into an array automatically. You can refer to the array using the name of the variable associated with the object.
-* Before the object is displayed, execute code that assigns values to the array elements. For example:
+* Before the object is displayed, execute code that assigns values to the array elements. たとえば:
```code4d
ARRAY TEXT($aCities;6)
@@ -33,7 +33,7 @@ Drop-down list objects are initialized by loading a list of values into an array
```
In this case, the name of the variable associated with the object in the form must be *$aCities*. This code could be placed in the form method and be executed when the `On Load` form event runs.
-* Before the object is displayed, load the values of a list into the array using the [LIST TO ARRAY](https://doc.4d.com/4Dv17R5/4D/17-R5/LIST-TO-ARRAY.301-4127385.en.html) command. For example:
+* Before the object is displayed, load the values of a list into the array using the [LIST TO ARRAY](https://doc.4d.com/4Dv17R5/4D/17-R5/LIST-TO-ARRAY.301-4127385.en.html) command. たとえば:
```code4d
LIST TO ARRAY("Cities";$aCities)
diff --git a/website/translated_docs/ja/FormObjects/formObjects_overview.md b/website/translated_docs/ja/FormObjects/formObjects_overview.md
new file mode 100644
index 00000000000000..1c39c834e396ea
--- /dev/null
+++ b/website/translated_docs/ja/FormObjects/formObjects_overview.md
@@ -0,0 +1,25 @@
+---
+id: formObjectsOverview
+title: About 4D Form Objects
+---
+
+You build and customize your application forms by manipulating the objects on them. You can add objects, reposition objects, set object properties, enforce business rules by specifying data entry constraints, or write object methods that run automatically when the object is used.
+
+## Active and static objects
+
+4D forms support a large number of built-in **active** and **static** objects:
+
+- **active objects** perform a database task or an interface function. Fields are active objects. Other active objects — enterable objects (variables), combo boxes, drop-down lists, picture buttons, and so on — store data temporarily in memory or perform some action such as opening a dialog box, printing a report, or starting a background process.
+- **static objects** are generally used for setting the appearance of the form and its labels as well as for the graphic interface. Static objects do not have associated variables like active objects. However, you can insert dynamic objects into static objects.
+
+
+## Handling form objects
+
+You can add or modify 4D form objects in the following ways:
+
+* **Form editor:** Drag an object from the Form editor toolbar onto the form. Then use the Property List to specify the object's properties. See the [Building Forms](https://doc.4d.com/4Dv17R6/4D/17-R6/Building-forms.200-4354618.en.html) chapter for more information.
+
+* **4D language**: Commands from the [Objects (Forms)](https://doc.4d.com/4Dv17R5/4D/17-R5/Objects-Forms.201-4127128.en.html) theme such as `OBJECT DUPLICATE` or `OBJECT SET FONT STYLE` allow to create and define form objects.
+
+* **JSON code in dynamic forms:** Define the properties using JSON. Use the [type](properties_Object.md#type) property to define the object type, then set its available properties. See the [Dynamic Forms](https://doc.4d.com/4Dv17R5/4D/17-R5/Dynamic-Forms.300-4163740.en.html#3692292) page for information. Example for a button object: ```
+ { "type": "button", "style": "bevel", "text": "OK", "action": "Cancel", "left": 60, "top": 160, "width": 100, "height": 20 }
diff --git a/website/translated_docs/ja/FormObjects/groupBox.md b/website/translated_docs/ja/FormObjects/groupBox.md
index 272980ce0607ac..bf2dbb9ab43680 100644
--- a/website/translated_docs/ja/FormObjects/groupBox.md
+++ b/website/translated_docs/ja/FormObjects/groupBox.md
@@ -1,6 +1,6 @@
---
id: groupBox
-title: グループボックス
+title: Group Box
---
A group box is a static object that allows you to visually assemble multiple form objects:
diff --git a/website/translated_docs/ja/FormObjects/listbox_overview.md b/website/translated_docs/ja/FormObjects/listbox_overview.md
index 828fb049e7c87b..e0feb5c24c196b 100644
--- a/website/translated_docs/ja/FormObjects/listbox_overview.md
+++ b/website/translated_docs/ja/FormObjects/listbox_overview.md
@@ -108,7 +108,7 @@ Each element of the collection or each entity is available as an object that can
When the data source is an entity selection, any modifications made on the list box side are automatically saved in the database. On the other hand, modifications made on the database side are visible in the list box after touched entities have been reloaded.
-When the data source is a collection, any modifications made in the list box values are reflected in the collection. On the other hand, if modifications are done on the collection using for example the various methods of the *Collections* theme, you will need to explicitely notify 4D by reassigning the collection variable to itself, so that the list box contents is refreshed. For example:
+When the data source is a collection, any modifications made in the list box values are reflected in the collection. On the other hand, if modifications are done on the collection using for example the various methods of the *Collections* theme, you will need to explicitely notify 4D by reassigning the collection variable to itself, so that the list box contents is refreshed. たとえば:
```code4d
myCol:=myCol.push("new value") //display new value in list box
@@ -184,7 +184,7 @@ Supported properties depend on the list box type.
| [Style Expression](properties_Text.md#style-expression) | | X | X |
| [Top](properties_CoordinatesAndSizing.md#top) | X | X | X |
| [Transparent](properties_BackgroundAndBorder.md#transparent) | X | X | X |
-| [Type](properties_Object.md#type) | X | X | X |
+| [タイプ](properties_Object.md#type) | X | X | X |
| [Underline](properties_Text.md#underline) | X | X | X |
| [Variable or Expression](properties_Object.md#variable-or-expression) | X | X | |
| [Vertical Alignment](properties_Text.md#vertical-alignment) | X | X | X |
@@ -377,7 +377,7 @@ Note that list box arrays used for defining the appearance of selected rows must
- `On Activate` (form property)
- `On Deactivate` (form property) ...depending on whether and how you want to visually represent changes of focus in selections.
-##### Example
+##### 例題
You have chosen to hide the system highlight and want to display list box selections with a green background color, as shown here:
@@ -770,11 +770,11 @@ When a list box column is associated with an object array, the way a cell is dis
| valueType | Default widget | Alternative widget(s) |
| --------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------- |
-| text | text input | drop-down menu (required list) or combo box (choice list) |
+| テキスト | text input | drop-down menu (required list) or combo box (choice list) |
| real | controlled text input (numbers and separators) | drop-down menu (required list) or combo box (choice list) |
| integer | controlled text input (numbers only) | drop-down menu (required list) or combo box (choice list) or three-states check box |
| boolean | check box | drop-down menu (required list) |
-| color | background color | text |
+| color | background color | テキスト |
| event | button with label | |
| | | All widgets can have an additional unit toggle button or ellipsis button attached to the cell. |
@@ -786,12 +786,12 @@ You cannot set display formats or entry filters for columns of object-type list
| Value type | Default format | Entry control |
| ---------- | ---------------------------------------------------------- | ----------------------- |
-| text | same as defined in object | any (no control) |
+| テキスト | same as defined in object | any (no control) |
| real | same as defined in object (using system decimal separator) | "0-9" and "." and "-" |
| | | "0-9" and "." if min>=0 |
| integer | same as defined in object | "0-9" and "-" |
| | | "0-9" if min>=0 |
-| Boolean | check box | N/A |
+| ブール | check box | N/A |
| color | N/A | N/A |
| event | N/A | N/A |
@@ -801,9 +801,9 @@ Each element of the object array is an object that can contain one or more attri
The only mandatory attribute is "valueType" and its supported values are "text", "real", "integer", "boolean", "color", and "event". The following table lists all the attributes supported in list box object arrays, depending on the "valueType" value (any other attributes are ignored). Display formats are detailed and examples are provided below.
-| | valueType | text | real | integer | boolean | color | event |
+| | valueType | テキスト | real | integer | boolean | color | event |
| --------------------- | --------------------------------------- | ---- | ---- | ------- | ------- | ----- | ----- |
-| *Attributes* | *Description* | | | | | | |
+| *Attributes* | *説明* | | | | | | |
| value | cell value (input or output) | x | x | x | | | |
| min | minimum value | | x | x | | | |
| max | maximum value | | x | x | | | |
@@ -867,7 +867,7 @@ These attributes can be used to control the range of input values. When a cell i
The behavior attribute provides variations to the regular representation of values. In 4D v15, a single variation is proposed:
-| Attribute | Available value(s) | valueType(s) | Description |
+| Attribute | Available value(s) | valueType(s) | 説明 |
| --------- | ------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| behavior | threeStates | integer | Represents a numeric value as a three-states check box.
2=semi-checked, 1=checked, 0=unchecked, -1=invisible, -2=unchecked disabled, -3=checked disabled, -4=semi-checked disabled |
@@ -973,7 +973,7 @@ Use "choiceListName" or "choiceListReference" depending on the origin of the lis
> * If you want to define these values through a simple array, you need to use the "choiceList" attribute.
> * If the list contains text items representing real values, the decimal separator must be a period ("."), regardless of the local settings, e.g.: "17.6" "1234.456".
-Example:
+例:
You want to display a combo box based on a "colors" list defined in the Tool box (containing the values "blue", "yellow", and "green") and display "green" by default:
@@ -1003,7 +1003,7 @@ Regardless of the way the unit list is defined, it can be associated with the fo
The current unit is displayed as a button that cycles through the "unitList", "unitsListReference" or "unitsListName" values each time it is clicked (e.g., "pixels" -> "rows" -> "cm" -> "pixels" -> etc.)
-Example:
+例:
We want to set up a numeric input followed by two possible units: "rows" or "pixels". The current value is "2" + "lines". We use values defined directly in the object ("unitsList" attribute):
@@ -1027,7 +1027,7 @@ If you want to add an ellipsis button [...] to a cell, you just need to pass the
When this button is clicked by a user, an `On Alternate Click` event will be generated, and you will be able to handle it however you want (see the "Event management" paragraph for more information).
> `On Alternate Click` is the new name of the `On Arrow Click` event, renamed in 4D v15 to highlight its extended scope.
-Example:
+例:
```code4d
C_OBJECT($ob1)
@@ -1044,7 +1044,7 @@ OB SET($ob;"value";$entry)
The "color" valueType allows you to display either a color or a text.
-* If the value is a number, a colored rectangle is drawn inside the cell. Example:
+* If the value is a number, a colored rectangle is drawn inside the cell. 例:
````code4d
C_OBJECT($ob4)
@@ -1063,7 +1063,7 @@ The "event" valueType displays a simple button that generates an `On Clicked` ev
Optionally, you can pass a "label" attribute.
-Example:
+例:
````code4d
C_OBJECT($ob)
diff --git a/website/translated_docs/ja/FormObjects/picturePopupMenu_overview.md b/website/translated_docs/ja/FormObjects/picturePopupMenu_overview.md
index c812c410fced89..b46738f3e8057a 100644
--- a/website/translated_docs/ja/FormObjects/picturePopupMenu_overview.md
+++ b/website/translated_docs/ja/FormObjects/picturePopupMenu_overview.md
@@ -1,6 +1,6 @@
---
id: picturePopupMenuOverview
-title: ピクチャーポップアップメニュー
+title: Picture Pop-up Menu
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/pluginArea_overview.md b/website/translated_docs/ja/FormObjects/pluginArea_overview.md
index 42d50645a65022..8ddb6ea9ae51d6 100644
--- a/website/translated_docs/ja/FormObjects/pluginArea_overview.md
+++ b/website/translated_docs/ja/FormObjects/pluginArea_overview.md
@@ -1,6 +1,6 @@
---
id: pluginAreaOverview
-title: プラグインエリア
+title: Plug-in Area
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/progressIndicator.md b/website/translated_docs/ja/FormObjects/progressIndicator.md
index 8e1bca3c167066..db5fbcdaf3d42e 100644
--- a/website/translated_docs/ja/FormObjects/progressIndicator.md
+++ b/website/translated_docs/ja/FormObjects/progressIndicator.md
@@ -1,6 +1,6 @@
---
id: progressIndicator
-title: 進捗インジケーター
+title: Progress Indicator
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/properties_Action.md b/website/translated_docs/ja/FormObjects/properties_Action.md
index 452714477f7a67..1d438f2376fdb2 100644
--- a/website/translated_docs/ja/FormObjects/properties_Action.md
+++ b/website/translated_docs/ja/FormObjects/properties_Action.md
@@ -18,9 +18,9 @@ For more information, refer to [Drag and Drop](https://doc.4d.com/4Dv18/4D/18/Dr
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | ------------------------------------------------------------ |
-| dragging | text | "none" (default), "custom", "automatic" (excluding list box) |
+| Name | データタイプ | Possible Values |
+| -------- | ------ | ------------------------------------------------------------ |
+| dragging | テキスト | "none" (default), "custom", "automatic" (excluding list box) |
#### Objects Supported
@@ -49,9 +49,9 @@ For more information, refer to [Drag and Drop](https://doc.4d.com/4Dv18/4D/18/Dr
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | ------------------------------------------------------------ |
-| dropping | text | "none" (default), "custom", "automatic" (excluding list box) |
+| Name | データタイプ | Possible Values |
+| -------- | ------ | ------------------------------------------------------------ |
+| dropping | テキスト | "none" (default), "custom", "automatic" (excluding list box) |
#### Objects Supported
@@ -68,9 +68,9 @@ When this option is enabled, the object method is executed with the `On Data Cha
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------- | --------- | --------------- |
-| continuousExecution | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------------- | ------- | --------------- |
+| continuousExecution | boolean | true, false |
#### Objects Supported
@@ -97,9 +97,9 @@ Several types of method references are supported:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | ------------------------------------------------------------------ |
-| method | text | Object method standard or custom file path, or project method name |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | ------------------------------------------------------------------ |
+| method | テキスト | Object method standard or custom file path, or project method name |
#### Objects Supported
@@ -117,9 +117,9 @@ Authorizes the movement of rows during execution. This option is selected by def
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | --------------- |
-| movableRows | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ----------- | ------- | --------------- |
+| movableRows | boolean | true, false |
#### Objects Supported
@@ -136,9 +136,9 @@ Allows the selection of multiple records/options in a [hierarchical list](list_o
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ---------------------------- |
-| selectionMode | text | "multiple", "single", "none" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ---------------------------- |
+| selectionMode | テキスト | "multiple", "single", "none" |
#### Objects Supported
@@ -160,9 +160,9 @@ In other cases (list boxes based on named selections, columns associated with ex
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | --------------- |
-| sortable | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| -------- | ------- | --------------- |
+| sortable | boolean | true, false |
#### Objects Supported
[List Box](listbox_overview.md)
@@ -180,9 +180,9 @@ You can assign both a standard action and a project method to an object. In this
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | ---------------------------------------------------------------------------------------------------------------- |
-| action | string | The name of a [valid standard action](https://doc.4d.com/4Dv17R5/4D/17-R5/Standard-actions.300-4163633.en.html). |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | ---------------------------------------------------------------------------------------------------------------- |
+| action | string | The name of a [valid standard action](https://doc.4d.com/4Dv17R5/4D/17-R5/Standard-actions.300-4163633.en.html). |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Animation.md b/website/translated_docs/ja/FormObjects/properties_Animation.md
index 70ced18edd36f0..25297ead14dc34 100644
--- a/website/translated_docs/ja/FormObjects/properties_Animation.md
+++ b/website/translated_docs/ja/FormObjects/properties_Animation.md
@@ -11,9 +11,9 @@ Pictures are displayed in a continuous loop. When the user reaches the last pict
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------------- | --------- | --------------- |
-| loopBackToFirstFrame | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| -------------------- | ------- | --------------- |
+| loopBackToFirstFrame | boolean | true, false |
#### Objects Supported
@@ -29,9 +29,9 @@ Displays the first picture all the time except when the user clicks the button.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------------------- | --------- | --------------- |
-| switchBackWhenReleased | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ---------------------- | ------- | --------------- |
+| switchBackWhenReleased | boolean | true, false |
#### Objects Supported
@@ -48,9 +48,9 @@ Allows the user to hold down the mouse button to display the pictures continuous
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------ | --------- | --------------- |
-| switchContinuously | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------------ | ------- | --------------- |
+| switchContinuously | boolean | true, false |
#### Objects Supported
@@ -66,9 +66,9 @@ Enables cycling through the contents of the picture button at the specified spee
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | --------------- |
-| frameDelay | integer | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ---------- | ------- | --------------- |
+| frameDelay | integer | minimum: 0 |
#### Objects Supported
@@ -85,9 +85,9 @@ Modifies the contents of the picture button when the mouse cursor passes over it
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------ | --------- | --------------- |
-| switchWhenRollover | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------------ | ------- | --------------- |
+| switchWhenRollover | boolean | true, false |
#### Objects Supported
@@ -106,9 +106,9 @@ Enables setting the last thumbnail as the one to display when the button is disa
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:---------------------- | --------- | --------------- |
-| useLastFrameAsDisabled | boolean | true, false |
+| Name | データタイプ | Possible Values |
+|:---------------------- | ------- | --------------- |
+| useLastFrameAsDisabled | boolean | true, false |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Appearance.md b/website/translated_docs/ja/FormObjects/properties_Appearance.md
index 183dd5e4b78c52..6575b1b049a994 100644
--- a/website/translated_docs/ja/FormObjects/properties_Appearance.md
+++ b/website/translated_docs/ja/FormObjects/properties_Appearance.md
@@ -15,9 +15,9 @@ The default button property modifies a button's appearance in order to indicate
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
defaultButton|boolean|true, false |
#### Objects Supported
@@ -34,9 +34,9 @@ During execution, a field or any enterable area is outlined by a selection recta
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | --------------- |
-| hideFocusRing | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------- | ------- | --------------- |
+| hideFocusRing | boolean | true, false |
#### Objects Supported
@@ -57,9 +57,9 @@ By default, this option is not enabled.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------- | --------- | --------------- |
-| hideSystemHighlight | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------------- | ------- | --------------- |
+| hideSystemHighlight | boolean | true, false |
#### Objects Supported
@@ -75,9 +75,9 @@ An interface tool allowing the user to move the viewing area to the left or righ
Available values:
-| Property List | JSON value | Description |
+| Property List | JSON value | 説明 |
| ------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Yes | "visible" | The scrollbar is always visible, even when it is not necessary (in other words, when the size of the object contents is smaller than that of the frame). |
+| ○ | "visible" | The scrollbar is always visible, even when it is not necessary (in other words, when the size of the object contents is smaller than that of the frame). |
| No | "hidden" | The scrollbar is never visible |
| Automatic | "automatic" | The scrollbar appears automatically whenever necessary and the user can enter text larger than the object width |
@@ -87,9 +87,9 @@ Available values:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------- | --------- | -------------------------------- |
-| scrollbarHorizontal | text | "visible", "hidden", "automatic" |
+| Name | データタイプ | Possible Values |
+| ------------------- | ------ | -------------------------------- |
+| scrollbarHorizontal | テキスト | "visible", "hidden", "automatic" |
#### Objects Supported
@@ -106,9 +106,9 @@ Sets the screen resolution for the 4D Write Pro area contents. By default, it is
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
dpi|number|0=automatic, 72, 96 |
#### Objects Supported
@@ -125,9 +125,9 @@ Displays/hides both background images and background color.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showBackground|boolean|true (default), false|
#### Objects Supported
@@ -142,9 +142,9 @@ Displays/hides the footers when [Page view mode](#view-mode) is set to "Page".
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showFooters|boolean|true (default), false|
#### Objects Supported
@@ -162,9 +162,9 @@ When enabled, the formula bar is visible below the Toolbar interface in the 4D V
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
withFormulaBar|boolean|true (default), false|
#### Objects Supported
@@ -179,9 +179,9 @@ Displays/hides the headers when [Page view mode](#view-mode) is set to "Page".
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showHeaders|boolean|true (default), false|
#### Objects Supported
@@ -198,9 +198,9 @@ Displays/hides invisible characters
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showHiddenChars|boolean|true (default), false|
#### Objects Supported
@@ -216,9 +216,9 @@ Displays/hides the horizontal ruler when the document view is in [Page mode](#vi
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showHorizontalRuler|boolean|true (default), false|
#### Objects Supported
@@ -237,9 +237,9 @@ Enables/disables the HTML WYSIWYG view, in which any 4D Write Pro advanced attri
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showHTMLWysiwyg|boolean|true, false (default)|
#### Objects Supported
@@ -254,9 +254,9 @@ Displays/hides the page frame when [Page view mode](#view-mode) is set to "Page"
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showPageFrames|boolean|true, false|
#### Objects Supported
@@ -283,9 +283,9 @@ With the Show references property on, the reference is displayed:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showReferences|boolean|true, false (default)|
#### Objects Supported
@@ -300,9 +300,9 @@ Displays/hides the vertical ruler when the document view is in [Page mode](#view
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
showVerticalRuler|boolean|true (default), false|
#### Objects Supported
@@ -319,9 +319,9 @@ When tab controls with a custom direction are displayed under Windows, they auto
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
labelsPlacement|boolean|"top", "bottom" |
#### Objects Supported
@@ -336,9 +336,9 @@ You can add an interface to 4D View Pro areas to allow end users to perform basi
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
userInterface|text|"none" (default), "ribbon", "toolbar" |
#### Objects Supported
@@ -357,9 +357,9 @@ An interface tool allowing the user to move the viewing area up and down.
Available values:
-| Property List | JSON value | Description |
+| Property List | JSON value | 説明 |
| ------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Yes | "visible" | The scrollbar is always visible, even when it is not necessary (in other words, when the size of the object contents is smaller than that of the frame). |
+| ○ | "visible" | The scrollbar is always visible, even when it is not necessary (in other words, when the size of the object contents is smaller than that of the frame). |
| No | "hidden" | The scrollbar is never visible |
| Automatic | "automatic" | The scrollbar appears automatically whenever necessary (in other words, when the size of the object contents is greater than that of the frame) |
@@ -371,9 +371,9 @@ Available values:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------------- | --------- | -------------------------------- |
-| scrollbarVertical | text | "visible", "hidden", "automatic" |
+| Name | データタイプ | Possible Values |
+| ----------------- | ------ | -------------------------------- |
+| scrollbarVertical | テキスト | "visible", "hidden", "automatic" |
#### Objects Supported
@@ -398,9 +398,9 @@ Sets the mode for displaying the 4D Write Pro document in the form area. Three v
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
layoutMode|text|"page", "draft", "embedded"|
#### Objects Supported
@@ -415,9 +415,9 @@ Sets the zoom percentage for displaying 4D Write Pro area contents.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| | | |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| | | |
zoom|number|minimum = 0 |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_BackgroundAndBorder.md b/website/translated_docs/ja/FormObjects/properties_BackgroundAndBorder.md
index 31fe7ecc6f23e8..3471e5406be8ea 100644
--- a/website/translated_docs/ja/FormObjects/properties_BackgroundAndBorder.md
+++ b/website/translated_docs/ja/FormObjects/properties_BackgroundAndBorder.md
@@ -10,9 +10,9 @@ Allows setting a different background color for odd-numbered rows/columns in a l
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ----------------------------------------- |
-| alternateFill | string | any css value; "transparent"; "automatic" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ----------------------------------------- |
+| alternateFill | string | any css value; "transparent"; "automatic" |
#### Objects Supported
[List Box](listbox_overview.md#overview) - [List Box Column](listbox_overview.md#list-box-columns)
@@ -29,9 +29,9 @@ In the case of a list box, by default *Automatic* is selected: the column uses t
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | ----------------------------------------- |
-| fill | string | any css value; "transparent"; "automatic" |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | ----------------------------------------- |
+| fill | string | any css value; "transparent"; "automatic" |
#### Objects Supported
@@ -51,9 +51,9 @@ An expression or a variable (array variables cannot be used) to apply a custom b
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ----------------------------------------- |
-| rowFillSource | string | An expression returning a RGB color value |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ----------------------------------------- |
+| rowFillSource | string | An expression returning a RGB color value |
#### Objects Supported
[List Box](listbox_overview.md#overview) - [List Box Column](listbox_overview.md#list-box-columns)
@@ -70,9 +70,9 @@ Allows setting a standard style for the object border.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | ----------------------------------------------------------------- |
-| borderStyle | text | "system", "none", "solid", "dotted", "raised", "sunken", "double" |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | ----------------------------------------------------------------- |
+| borderStyle | テキスト | "system", "none", "solid", "dotted", "raised", "sunken", "double" |
#### Objects Supported
@@ -87,7 +87,7 @@ Describes dotted line type as a sequence of black and white points.
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| --------------- | ---------------------- | ------------------------------------------------------------------------ |
| strokeDashArray | number array or string | Ex. "6 1" or \[6,1\] for a sequence of 6 black point and 1 white point |
@@ -111,9 +111,9 @@ You can remove these empty rows by selecting this option. The bottom of the list
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------ | --------- | --------------- |
-| hideExtraBlankRows | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------------ | ------- | --------------- |
+| hideExtraBlankRows | boolean | true, false |
#### Objects Supported
@@ -135,9 +135,9 @@ You can also set this property using the [**OBJECT SET RGB COLORS**](https://doc
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | ----------------------------------------- |
-| stroke | string | any css value, "transparent", "automatic" |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | ----------------------------------------- |
+| stroke | string | any css value, "transparent", "automatic" |
> This property is also available for text based objects, in which case it designates both the font color and the object's lines, see [Font color](properties_Text.md#font-color).
@@ -154,9 +154,9 @@ Designates the thickness of a line.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | ----------------------------------------------------------------- |
-| strokeWidth | number | 0 for smallest width on a printed form, or any integer value < 20 |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | ----------------------------------------------------------------- |
+| strokeWidth | number | 0 for smallest width on a printed form, or any integer value < 20 |
#### Objects Supported
@@ -200,9 +200,9 @@ You can get the same result using the `LISTBOX SET ROW FONT STYLE` and `LISTBOX
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ---------------------------- |
-| rowFillSource | string | The name of a longint array. |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ---------------------------- |
+| rowFillSource | string | The name of a longint array. |
#### Objects Supported
[List Box](listbox_overview.md) - [List Box Column](listbox_overview.md#list-box-columns)
@@ -218,9 +218,9 @@ Sets the list box background to "Transparent". When set, any [alternate backgrou
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| fill | text | "transparent" |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| fill | テキスト | "transparent" |
#### Objects Supported
[List Box](listbox_overview.md#overview)
diff --git a/website/translated_docs/ja/FormObjects/properties_CoordinatesAndSizing.md b/website/translated_docs/ja/FormObjects/properties_CoordinatesAndSizing.md
index cf55b0da649797..298548a0873d52 100644
--- a/website/translated_docs/ja/FormObjects/properties_CoordinatesAndSizing.md
+++ b/website/translated_docs/ja/FormObjects/properties_CoordinatesAndSizing.md
@@ -30,9 +30,9 @@ When this property is enabled, the height of every row is automatically calculat
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | --------------- |
-| rowHeightAuto | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------- | ------- | --------------- |
+| rowHeightAuto | boolean | true, false |
#### Objects Supported
@@ -50,9 +50,9 @@ Bottom coordinate of the object in the form.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | --------------- |
-| bottom | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | --------------- |
+| bottom | number | minimum: 0 |
#### Objects Supported
@@ -66,9 +66,9 @@ Left coordinate of the object on the form.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| left | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| left | number | minimum: 0 |
#### Objects Supported
@@ -84,9 +84,9 @@ Right coordinate of the object in the form.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----- | --------- | --------------- |
-| right | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ----- | ------ | --------------- |
+| right | number | minimum: 0 |
#### Objects Supported
@@ -102,9 +102,9 @@ Top coordinate of the object in the form.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| top | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| top | number | minimum: 0 |
#### Objects Supported
@@ -126,9 +126,9 @@ You can also set this property using the [OBJECT Get corner radius](https://doc.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | --------------- |
-| borderRadius | integer | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ------------ | ------- | --------------- |
+| borderRadius | integer | minimum: 0 |
#### Objects Supported
@@ -145,9 +145,9 @@ This property designates an object's vertical size.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | --------------- |
-| height | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | --------------- |
+| height | number | minimum: 0 |
#### Objects Supported
@@ -165,9 +165,9 @@ This property designates an object's horizontal size.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----- | --------- | --------------- |
-| width | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ----- | ------ | --------------- |
+| width | number | minimum: 0 |
#### Objects Supported
@@ -190,9 +190,9 @@ The maximum width of the column (in pixels). The width of the column cannot be i
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | --------------- |
-| maxWidth | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| -------- | ------ | --------------- |
+| maxWidth | number | minimum: 0 |
#### Objects Supported
@@ -208,9 +208,9 @@ The minimum width of the column (in pixels). The width of the column cannot be r
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | --------------- |
-| minWidth | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| -------- | ------ | --------------- |
+| minWidth | number | minimum: 0 |
#### Objects Supported
@@ -232,9 +232,9 @@ Sets the height of list box rows (excluding headers and footers). By default, th
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | ---------------------------------------- |
-| rowHeight | string | css value in unit "em" or "px" (default) |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | ---------------------------------------- |
+| rowHeight | string | css value in unit "em" or "px" (default) |
#### Objects Supported
@@ -267,9 +267,9 @@ Assuming that the unit of the rows is "lines," then the fifth row of the list bo
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | ---------------------------- |
-| rowHeightSource | string | Name of a 4D array variable. |
+| Name | データタイプ | Possible Values |
+| --------------- | ------ | ---------------------------- |
+| rowHeightSource | string | Name of a 4D array variable. |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Crop.md b/website/translated_docs/ja/FormObjects/properties_Crop.md
index 5a08cf891a9c09..29832664427a24 100644
--- a/website/translated_docs/ja/FormObjects/properties_Crop.md
+++ b/website/translated_docs/ja/FormObjects/properties_Crop.md
@@ -10,9 +10,9 @@ Sets the number of columns in a thumbnail table.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:----------- |:---------:| --------------- |
-| columnCount | integer | minimum: 1 |
+| Name | データタイプ | Possible Values |
+|:----------- |:-------:| --------------- |
+| columnCount | integer | minimum: 1 |
#### Objects Supported
@@ -28,9 +28,9 @@ Sets the number of rows in a thumbnail table.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:-------- |:---------:| --------------- |
-| rowCount | integer | minimum: 1 |
+| Name | データタイプ | Possible Values |
+|:-------- |:-------:| --------------- |
+| rowCount | integer | minimum: 1 |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_DataSource.md b/website/translated_docs/ja/FormObjects/properties_DataSource.md
index 33f64f77686a73..1b1c285152c7d3 100644
--- a/website/translated_docs/ja/FormObjects/properties_DataSource.md
+++ b/website/translated_docs/ja/FormObjects/properties_DataSource.md
@@ -22,9 +22,9 @@ When the **automatic insertion** option is not selected (default), the value ent
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------ | --------- | --------------- |
-| automaticInsertion | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------------ | ------- | --------------- |
+| automaticInsertion | boolean | true, false |
#### Objects Supported
@@ -40,7 +40,7 @@ Associates a choice list with an object. It can be a choice list name (a list re
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ---------- | ---------------- | --------------------------------------------------- |
| choiceList | list, collection | A list of possible values |
| list | list, collection | A list of possible values (hierarchical lists only) |
@@ -59,7 +59,7 @@ List of static values to use as labels for the tab control object.
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ------ | ---------------- | ---------------------------------------- |
| labels | list, collection | A list of values to fill the tab control |
@@ -77,9 +77,9 @@ Specifies a variable or expression that will be assigned the collection element/
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------------- | --------- | ----------------- |
-| currentItemSource | string | Object expression |
+| Name | データタイプ | Possible Values |
+| ----------------- | ------ | ----------------- |
+| currentItemSource | string | Object expression |
#### Objects Supported
[List Box ](listbox_overview.md#overview)
@@ -101,9 +101,9 @@ Specifies a variable or expression that will be assigned a longint indicating th
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------------- | --------- | ----------------- |
-| currentItemPositionSource | string | Number expression |
+| Name | データタイプ | Possible Values |
+| ------------------------- | ------ | ----------------- |
+| currentItemPositionSource | string | Number expression |
#### Objects Supported
[List Box ](listbox_overview.md)
@@ -113,7 +113,7 @@ Specifies a variable or expression that will be assigned a longint indicating th
---
-## Data Type
+## データタイプ
Please refer to [Expression Type](properties_Object.md#expression-type) section.
@@ -142,7 +142,7 @@ You must enter a list of values. In the Form editor, a specific dialog box allow
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ------ | ---------- | ---------------------------------------------------------------- |
| values | collection | A collection of default values (strings), ex: "a", "b", "c", "d" |
@@ -154,7 +154,7 @@ You must enter a list of values. In the Form editor, a specific dialog box allow
---
-## Expression
+## 式
This description is specific to [selection](listbox_overview.md#selection-list-boxes) and [collection](listbox_overview.md#collection-or-entity-selection-list-boxes) type list box columns. See also **[Variable or Expression](properties_Object.md#variable-or-expression)** section.
@@ -163,19 +163,19 @@ A 4D expression to be associated with a column. You can enter:
- A **simple variable** (in this case, it must be explicitly declared for compilation). You can use any type of variable except BLOBs and arrays. The value of the variable will be generally calculated in the `On Display Detail` event.
- A **field** using the standard [Table]Field syntax ([selection type list box](listbox_overview.md#selection-list-boxes) only), for example: `[Employees]LastName`. The following types of fields can be used:
- * String
+ * 文字
* Numeric
- * Date
- * Time
- * Picture
+ * 日付
+ * 時間
+ * ピクチャー
* Boolean You can use fields from the Master Table or from other tables.
- A **4D expression** (simple expression, formula or 4D method). The expression must return a value. The value will be evaluated in the `On Display Detail` and `On Data Change` events. The result of the expression will be automatically displayed when you switch to Application mode. The expression will be evaluated for each record of the selection (current or named) of the Master Table (for selection type list boxes), each element of the collection (for collection type list boxes) or each entity of the selection (for entity selection list boxes). If it is empty, the column will not display any results. The following expression types are supported:
- * String
+ * 文字
* Numeric
- * Date
- * Picture
- * Boolean
+ * 日付
+ * ピクチャー
+ * ブール
For collection/entity selection list boxes, Null or unsupported types are displayed as empty strings. When using collections or entity selections, you will usually declare the element property or entity attribute associated to a column within an expression containing [This](https://doc.4d.com/4Dv17R6/4D/17-R6/This.301-4310806.en.html). `This` is a dedicated 4D command that returns a reference to the currently processed element. For example, you can use **This.\** where **\** is the path of a property in the collection or an entity attribute path to access the current value of each element/entity. If you use a collection of scalar values, 4D will create an object for each collection element with a single property (named "value"), filled with the element value. In this case, you will use **This.value** as expression.
@@ -186,9 +186,9 @@ If a field, a variable, or an assignable expression (*e.g. Person.lastName*) is
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ----------------------------------------------------------------------- |
-| dataSource | string | A 4D variable, field name, or an arbitrary complex language expression. |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ----------------------------------------------------------------------- |
+| dataSource | string | A 4D variable, field name, or an arbitrary complex language expression. |
#### Objects Supported
@@ -208,9 +208,9 @@ All database tables can be used, regardless of whether the form is related to a
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----- | --------- | --------------- |
-| table | number | Table number |
+| Name | データタイプ | Possible Values |
+| ----- | ------ | --------------- |
+| table | number | Table number |
#### Objects Supported
[List Box](listbox_overview.md#overview)
@@ -243,9 +243,9 @@ Using this property requires compliance with the following principles:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | -------------------- |
-| saveAs | string | "value", "reference" |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | -------------------- |
+| saveAs | string | "value", "reference" |
#### Objects Supported
[Drop-down List](dropdownList_Overview.md) - [Input](input_overview.md) - [List Box Column](listbox_overview.md#list-box-columns)
@@ -264,9 +264,9 @@ Specifies a variable or expression that will be assigned the elements or entitie
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------- | --------- | --------------------- |
-| selectedItemsSource | string | Collection expression |
+| Name | データタイプ | Possible Values |
+| ------------------- | ------ | --------------------- |
+| selectedItemsSource | string | Collection expression |
#### Objects Supported
[List Box ](listbox_overview.md#overview)
@@ -282,9 +282,9 @@ Specifies the named selection to be used. You must enter the name of a valid nam
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------- | --------- | -------------------- |
-| namedSelection | string | Named selection name |
+| Name | データタイプ | Possible Values |
+| -------------- | ------ | -------------------- |
+| namedSelection | string | Named selection name |
#### Objects Supported
[List Box](listbox_overview.md#overview)
diff --git a/website/translated_docs/ja/FormObjects/properties_Display.md b/website/translated_docs/ja/FormObjects/properties_Display.md
index 68ddd7869166b3..dad2adead92fb6 100644
--- a/website/translated_docs/ja/FormObjects/properties_Display.md
+++ b/website/translated_docs/ja/FormObjects/properties_Display.md
@@ -38,9 +38,9 @@ The field actually contains "proportion". 4D accepts and stores the entire entry
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ------------------------------------------------------------------------------------ |
-| textFormat | string | "### ####", "(###) ### ####", "### ### ####", "### ## ####", "00000", custom formats |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ------------------------------------------------------------------------------------ |
+| textFormat | string | "### ####", "(###) ### ####", "### ### ####", "### ## ####", "00000", custom formats |
#### Objects Supported
@@ -87,9 +87,9 @@ The table below shows choices available:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| dateFormat | string | "systemShort", "systemMedium", "systemLong", "iso8601", "rfc822", "short", "shortCentury", "abbreviated", "long", "blankIfNull" (can be combined with the other possible values) |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| dateFormat | string | "systemShort", "systemMedium", "systemLong", "iso8601", "rfc822", "short", "shortCentury", "abbreviated", "long", "blankIfNull" (can be combined with the other possible values) |
#### Objects Supported
@@ -247,9 +247,9 @@ The following table shows how different formats affect the display of numbers. T
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | -------------------------------------------------------------- |
-| numberFormat | string | Numbers (including a decimal point or minus sign if necessary) |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | -------------------------------------------------------------- |
+| numberFormat | string | Numbers (including a decimal point or minus sign if necessary) |
#### Objects Supported
@@ -311,9 +311,9 @@ If the field is reduced to a size smaller than that of the original picture, the
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ----------------------------------------------------------------------------------------------------- |
-| pictureFormat | string | "truncatedTopLeft", "scaled", "truncatedCenter", "tiled", "proportionalTopLeft", "proportionalCenter" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ----------------------------------------------------------------------------------------------------- |
+| pictureFormat | string | "truncatedTopLeft", "scaled", "truncatedCenter", "tiled", "proportionalTopLeft", "proportionalCenter" |
#### Objects Supported
@@ -331,7 +331,7 @@ Time formats control the way times appear when displayed or printed. For data en
The table below shows the Time field display formats and gives examples:
-| Format name | JSON string | Comments | Example for 04:30:25 |
+| Format name | JSON string | コメント | Example for 04:30:25 |
| ---------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------- |
| HH:MM:SS | hh_mm_ss | | 04:30:25 |
| HH:MM | hh_mm | | 04:30 |
@@ -347,9 +347,9 @@ The table below shows the Time field display formats and gives examples:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| timeFormat | string | "systemShort", "systemMedium", "systemLong", "iso8601", "hh_mm_ss", "hh_mm", "hh_mm_am", "mm_ss", "HH_MM_SS", "HH_MM", "MM_SS", "blankIfNull" (can be combined with the other possible values) |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| timeFormat | string | "systemShort", "systemMedium", "systemLong", "iso8601", "hh_mm_ss", "hh_mm", "hh_mm_am", "mm_ss", "HH_MM_SS", "HH_MM", "MM_SS", "blankIfNull" (can be combined with the other possible values) |
#### Objects Supported
@@ -371,9 +371,9 @@ When a [boolean expression](properties_Object.md#expression-type) is displayed a
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ------------------------------------------------------------------------ |
-| booleanFormat | string | "\<*textWhenTrue*\>;\<*textWhenFalse*\>", e.g. "Assigned;Unassigned" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ------------------------------------------------------------------------ |
+| booleanFormat | string | "\<*textWhenTrue*\>;\<*textWhenFalse*\>", e.g. "Assigned;Unassigned" |
#### Objects Supported
@@ -394,9 +394,9 @@ Boolean columns can also be displayed as pop-up menus. In this case, the [Text w
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| controlType | string | **number columns**: "automatic" (default) or "checkbox"**boolean columns**: "checkbox" (default) or "popup" |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| controlType | string | **number columns**: "automatic" (default) or "checkbox"**boolean columns**: "checkbox" (default) or "popup" |
#### Objects Supported
@@ -416,9 +416,9 @@ In particular, this property allows implementing "invisible" buttons. Non-rende
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------- | --------- | --------------- |
-| display | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------- | ------- | --------------- |
+| display | boolean | true, false |
#### Objects Supported
@@ -452,9 +452,9 @@ In this case as well, the [Title](#title) property is also available so that the
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | --------------- |
-| threeState | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ---------- | ------- | --------------- |
+| threeState | boolean | true, false |
#### Objects Supported
@@ -474,9 +474,9 @@ In that cases, the title of the check box can be entered using this property.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | ---------------------------------- |
-| controlTitle | string | Any custom label for the check box |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | ---------------------------------- |
+| controlTitle | string | Any custom label for the check box |
#### Objects Supported
@@ -513,9 +513,9 @@ The Truncate with ellipsis property can be applied to Boolean type columns; howe
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | ---------------------- |
-| truncateMode | string | "withEllipsis", "none" |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | ---------------------- |
+| truncateMode | string | "withEllipsis", "none" |
@@ -538,9 +538,9 @@ You can handle the Visible property for most form objects. This property simplif
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ------------------- |
-| visibility | string | "visible", "hidden" |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ------------------- |
+| visibility | string | "visible", "hidden" |
#### Objects Supported
@@ -597,9 +597,9 @@ Note that regardless of the Wordwrap option’s value, the row height is not cha
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | -------------------------------------------------- |
-| wordwrap | string | "automatic" (excluding list box), "normal", "none" |
+| Name | データタイプ | Possible Values |
+| -------- | ------ | -------------------------------------------------- |
+| wordwrap | string | "automatic" (excluding list box), "normal", "none" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Entry.md b/website/translated_docs/ja/FormObjects/properties_Entry.md
index 786e2a8dd6cfd8..1b948019d07795 100644
--- a/website/translated_docs/ja/FormObjects/properties_Entry.md
+++ b/website/translated_docs/ja/FormObjects/properties_Entry.md
@@ -13,9 +13,9 @@ The Auto Spellcheck property activates the spell-check for each object. When use
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | --------------- |
-| spellcheck | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ---------- | ------- | --------------- |
+| spellcheck | boolean | true, false |
#### Objects Supported
@@ -40,9 +40,9 @@ For a [Web Area](webArea_overview.md), the contents of the menu depend of the re
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | ------------------------------------- |
-| contextMenu | string | "automatic" (used if missing), "none" |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | ------------------------------------- |
+| contextMenu | string | "automatic" (used if missing), "none" |
#### Objects Supported
@@ -65,9 +65,9 @@ When this property is disabled, any pop-up menus associated with a list box colu
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | --------------- |
-| enterable | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| --------- | ------- | --------------- |
+| enterable | boolean | true, false |
#### Objects Supported
@@ -99,7 +99,7 @@ For information about creating entry filters, see [Filter and format codes](http
Here is a table that explains each of the entry filter choices in the Entry Filter drop-down list:
-| Entry Filter | Description |
+| Entry Filter | 説明 |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| ~A | Allow any letters, but convert to uppercase. |
| &9 | Allow only numbers. |
@@ -123,9 +123,9 @@ Here is a table that explains each of the entry filter choices in the Entry Filt
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| entryFilter | string | Entry filter code or Entry filter name (filter names start with | ) |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| entryFilter | string | Entry filter code or Entry filter name (filter names start with | ) |
#### Objects Supported
@@ -155,9 +155,9 @@ When the **Focusable** property is selected for a non-enterable object, the user
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | --------------- |
-| focusable | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| --------- | ------- | --------------- |
+| focusable | boolean | true, false |
#### Objects Supported
@@ -178,9 +178,9 @@ By default, the object uses the current keyboard layout.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | --------------------------------------------------------------------------- |
-| keyboardDialect | text | Language code, for example "ar-ma" or "cs". See RFC3066, ISO639 and ISO3166 |
+| Name | データタイプ | Possible Values |
+| --------------- | ------ | --------------------------------------------------------------------------- |
+| keyboardDialect | テキスト | Language code, for example "ar-ma" or "cs". See RFC3066, ISO639 and ISO3166 |
#### Objects Supported
@@ -202,15 +202,15 @@ This property is available for [inputs objects](input_overview.md) containing ex
- In single-line inputs, words located at the end of lines are truncated and there are no line returns.
- There are never line returns: the text is always displayed on a single row. If the Alpha or Text field or variable contains carriage returns, the text located after the first carriage return is removed as soon as the area is modified: 
-#### Yes
+#### ○
When this value is selected, the property is managed by the [Wordwrap](properties_Display.md#wordwrap) option.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | ------------------------------------------------- |
-| multiline | text | "yes", "no", "automatic" (default if not defined) |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | ------------------------------------------------- |
+| multiline | テキスト | "yes", "no", "automatic" (default if not defined) |
#### Objects Supported
@@ -244,9 +244,9 @@ You only pass the reference in the "Placeholder" field; it is not possible to co
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | ---------------------------------------------------------------------------- |
-| placeholder | string | Text to be displayed (grayed out) when the object does not contain any value |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | ---------------------------------------------------------------------------- |
+| placeholder | string | Text to be displayed (grayed out) when the object does not contain any value |
#### Objects Supported
@@ -267,9 +267,9 @@ This property keeps the selection visible within the object after it has lost th
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | --------------- |
-| showSelection | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ------------- | ------- | --------------- |
+| showSelection | boolean | true, false |
#### Objects Supported
@@ -293,15 +293,15 @@ To view a list of all the shortcuts used in the 4D Design environment, see the [
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| shortcutAccel | boolean | true, false (Ctrl Windows/Command macOS) |
-| shortcutAlt | boolean | true, false |
-| shortcutCommand | boolean | true, false |
-| shortcutControl | boolean | true, false (macOS Control) |
-| shortcutShift | boolean | true, false |
-| | | |
-| shortcutKey | string | any character key: "a", "b"...[F1]" -> "[F15]", "[Return]", "[Enter]", "[Backspace]", "[Tab]", "[Esc]", "[Del]", "[Home]", "[End]", "[Help]", "[Page up]", "[Page down]", "[left arrow]", "[right arrow]", "[up arrow]", "[down arrow]" |
+| Name | データタイプ | Possible Values |
+| --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| shortcutAccel | boolean | true, false (Ctrl Windows/Command macOS) |
+| shortcutAlt | boolean | true, false |
+| shortcutCommand | boolean | true, false |
+| shortcutControl | boolean | true, false (macOS Control) |
+| shortcutShift | boolean | true, false |
+| | | |
+| shortcutKey | string | any character key: "a", "b"...[F1]" -> "[F15]", "[Return]", "[Enter]", "[Backspace]", "[Tab]", "[Esc]", "[Del]", "[Home]", "[End]", "[Help]", "[Page up]", "[Page down]", "[left arrow]", "[right arrow]", "[up arrow]", "[down arrow]" |
#### Objects Supported
@@ -323,9 +323,9 @@ When this option is not enabled, users must first select the cell row and then c
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | --------------- |
-| singleClickEdit | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| --------------- | ------- | --------------- |
+| singleClickEdit | boolean | true, false |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Footers.md b/website/translated_docs/ja/FormObjects/properties_Footers.md
index 3a1ef3abe44a18..c26a288691a2ed 100644
--- a/website/translated_docs/ja/FormObjects/properties_Footers.md
+++ b/website/translated_docs/ja/FormObjects/properties_Footers.md
@@ -1,6 +1,6 @@
---
id: propertiesFooters
-title: フッター
+title: Footers
---
---
@@ -10,9 +10,9 @@ This property is used to display or hide [list box column footers](listbox_overv
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | --------------- |
-| showFooters | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ----------- | ------- | --------------- |
+| showFooters | boolean | true, false |
#### Objects Supported
@@ -56,9 +56,9 @@ Note that converting back and forth may lead to an end result that is different
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | ----------------------------- |
-| footerHeight | string | positive decimal+px | em |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | ----------------------------- |
+| footerHeight | string | positive decimal+px | em |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Gridlines.md b/website/translated_docs/ja/FormObjects/properties_Gridlines.md
index 475ba3b2e8ae1f..5fff3c0c3ca95c 100644
--- a/website/translated_docs/ja/FormObjects/properties_Gridlines.md
+++ b/website/translated_docs/ja/FormObjects/properties_Gridlines.md
@@ -1,6 +1,6 @@
---
id: propertiesGridlines
-title: グリッド線
+title: Gridlines
---
---
@@ -10,9 +10,9 @@ Defines the color of the horizontal lines in a list box (gray by default).
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------------- | --------- | ------------------------------------------ |
-| horizontalLineStroke | color | any css value, "'transparent", "automatic" |
+| Name | データタイプ | Possible Values |
+| -------------------- | ------ | ------------------------------------------ |
+| horizontalLineStroke | color | any css value, "'transparent", "automatic" |
#### Objects Supported
@@ -28,9 +28,9 @@ Defines the color of the vertical lines in a list box (gray by default).
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------ | --------- | ------------------------------------------ |
-| verticalLineStroke | color | any css value, "'transparent", "automatic" |
+| Name | データタイプ | Possible Values |
+| ------------------ | ------ | ------------------------------------------ |
+| verticalLineStroke | color | any css value, "'transparent", "automatic" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Headers.md b/website/translated_docs/ja/FormObjects/properties_Headers.md
index 60979cf59f12c0..0e43ec3b3b6d39 100644
--- a/website/translated_docs/ja/FormObjects/properties_Headers.md
+++ b/website/translated_docs/ja/FormObjects/properties_Headers.md
@@ -1,6 +1,6 @@
---
id: propertiesHeaders
-title: ヘッダー
+title: Headers
---
---
@@ -10,9 +10,9 @@ This property is used to display or hide [list box column headers](listbox_overv
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | --------------- |
-| showHeaders | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| ----------- | ------- | --------------- |
+| showHeaders | boolean | true, false |
#### Objects Supported
@@ -55,9 +55,9 @@ Note that converting back and forth may lead to an end result that is different
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | ------------------------------- |
-| headerHeight | string | positive decimal+px | em ) |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | ------------------------------- |
+| headerHeight | string | positive decimal+px | em ) |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Help.md b/website/translated_docs/ja/FormObjects/properties_Help.md
index d573c0bd16093f..020d2058741896 100644
--- a/website/translated_docs/ja/FormObjects/properties_Help.md
+++ b/website/translated_docs/ja/FormObjects/properties_Help.md
@@ -22,9 +22,9 @@ You can either:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:-------:|:---------:| ------------------------------------- |
-| tooltip | text | additional information to help a user |
+| Name | データタイプ | Possible Values |
+|:-------:|:------:| ------------------------------------- |
+| tooltip | テキスト | additional information to help a user |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Hierarchy.md b/website/translated_docs/ja/FormObjects/properties_Hierarchy.md
index a87c6c4f1ffffd..8b2cd332ef1eb6 100644
--- a/website/translated_docs/ja/FormObjects/properties_Hierarchy.md
+++ b/website/translated_docs/ja/FormObjects/properties_Hierarchy.md
@@ -17,7 +17,7 @@ See [Hierarchical list boxes](listbox_overview.md#hierarchical-list-boxes)
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ---------- | ------------ | ------------------------------------------------ |
| datasource | string array | Collection of array names defining the hierarchy |
diff --git a/website/translated_docs/ja/FormObjects/properties_ListBox.md b/website/translated_docs/ja/FormObjects/properties_ListBox.md
index 4b6f62a59e161b..84a05895017747 100644
--- a/website/translated_docs/ja/FormObjects/properties_ListBox.md
+++ b/website/translated_docs/ja/FormObjects/properties_ListBox.md
@@ -10,7 +10,7 @@ Collection of columns of the list box.
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ------- | ---------------------------- | ------------------------------------------------ |
| columns | collection of column objects | Contains the properties for the list box columns |
@@ -33,9 +33,9 @@ The specified form is displayed:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| detailForm | string | Name (string) of table or project formPOSIX path (string) to a .json file describing the formObject describing the form |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| detailForm | string | Name (string) of table or project formPOSIX path (string) to a .json file describing the formObject describing the form |
#### Objects Supported
@@ -63,9 +63,9 @@ For the last two actions, the On `Open Detail` form event is also generated. The
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------------------- | --------- | ----------------------------------- |
-| doubleClickInRowAction | string | "editSubrecord", "displaySubrecord" |
+| Name | データタイプ | Possible Values |
+| ---------------------- | ------ | ----------------------------------- |
+| doubleClickInRowAction | string | "editSubrecord", "displaySubrecord" |
#### Objects Supported
@@ -87,9 +87,9 @@ This property is used to specify the set to be used to manage highlighted record
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | --------------- |
-| highlightSet | string | Name of the set |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | --------------- |
+| highlightSet | string | Name of the set |
#### Objects Supported
@@ -126,9 +126,9 @@ Number of columns that must stay permanently displayed in the left part of the l
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------------- | --------- | --------------- |
-| lockedColumnCount | integer | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ----------------- | ------- | --------------- |
+| lockedColumnCount | integer | minimum: 0 |
#### Objects Supported
@@ -141,9 +141,9 @@ Number of columns that cannot be moved during execution.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------------- | --------- | --------------- |
-| staticColumnCount | integer | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ----------------- | ------- | --------------- |
+| staticColumnCount | integer | minimum: 0 |
#### Objects Supported
@@ -162,9 +162,9 @@ Sets the number of columns of the list box.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | --------------- |
-| columnCount | integer | minimum: 1 |
+| Name | データタイプ | Possible Values |
+| ----------- | ------- | --------------- |
+| columnCount | integer | minimum: 1 |
#### Objects Supported
@@ -206,7 +206,7 @@ You can define several interface properties at once:

-Note that setting properties for an element overrides any other values for this element (if not reset). For example:
+Note that setting properties for an element overrides any other values for this element (if not reset). たとえば:
```code4d
aLControlArr{6}:=lk row is disabled + lk row is not selectable
@@ -218,9 +218,9 @@ Note that setting properties for an element overrides any other values for this
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------------- | --------- | ---------------------- |
-| rowControlSource | string | Row control array name |
+| Name | データタイプ | Possible Values |
+| ---------------- | ------ | ---------------------- |
+| rowControlSource | string | Row control array name |
#### Objects Supported
@@ -239,9 +239,9 @@ Designates the option for allowing users to select rows:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ---------------------------- |
-| selectionMode | string | "multiple", "single", "none" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ---------------------------- |
+| selectionMode | string | "multiple", "single", "none" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Object.md b/website/translated_docs/ja/FormObjects/properties_Object.md
index ad7b54ff50e5d9..73ae7a1159642b 100644
--- a/website/translated_docs/ja/FormObjects/properties_Object.md
+++ b/website/translated_docs/ja/FormObjects/properties_Object.md
@@ -4,7 +4,7 @@ id: propertiesObject
---
---
-## Type
+## タイプ
`MANDATORY SETTING`
@@ -13,9 +13,9 @@ This property designates the type of the [active or inactive form object](formOb
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| type | string | "button", "buttonGrid", "checkbox", "combo", "dropdown", "groupBox", "input", "line", "list", "listbox", "oval", "picture", "pictureButton", "picturePopup", "plugin", "progress", "radio", "rectangle", "ruler", "spinner", "splitter", "stepper", "subform", "tab", "text", "view", "webArea", "write" |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| type | string | "button", "buttonGrid", "checkbox", "combo", "dropdown", "groupBox", "input", "line", "list", "listbox", "oval", "picture", "pictureButton", "picturePopup", "plugin", "progress", "radio", "rectangle", "ruler", "spinner", "splitter", "stepper", "subform", "tab", "text", "view", "webArea", "write" |
#### Objects Supported
@@ -36,9 +36,9 @@ For more information about naming rules for form objects, refer to [Identifiers]
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | -------------------------------------------------------------------- |
-| name | string | Any allowed name which does not belong to an already existing object |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | -------------------------------------------------------------------- |
+| name | string | Any allowed name which does not belong to an already existing object |
#### Objects Supported
@@ -59,7 +59,7 @@ The form object variables allow you to control and monitor the objects. For exam
Variables or expressions can be enterable or non-enterable and can receive data of the Text, Integer, Numeric, Date, Time, Picture, Boolean, or Object type.
-### Expressions
+### 式
You can use an expression as data source for an object. Any valid 4D expression is allowed: simple expression, formula, 4D function, project method name or field using the standard `[Table]Field` syntax. The expression is evaluated when the form is executed and reevaluated for each form event. Note that expressions can be [assignable or non-assignable](Concepts/quick-tour.md#expressions).
> If the value entered corresponds to both a variable name and a method name, 4D considers that you are indicating the method.
@@ -84,7 +84,7 @@ When a variable is not named, when the form is loaded, 4D creates a new variable
End if
```
-In the 4D code, dynamic variables can be accessed using a pointer obtained with the `OBJECT Get pointer` command. For example:
+In the 4D code, dynamic variables can be accessed using a pointer obtained with the `OBJECT Get pointer` command. たとえば:
```code4d
// assign the time 12:00:00 to the variable for the "tstart" object
@@ -106,7 +106,7 @@ Using a string array (collection of arrays names) as *dataSource* value for a li
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| dataSource | string, or string array | 4D variable, field name, or arbitrary complex language expression. Empty string for [dynamic variables](#dynamic-variables). String array (collection of array names) for a [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes) column] |
@@ -136,9 +136,9 @@ However, this property has a typing function in the following specific cases:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| dataSourceTypeHint | string | **standard objects:** "integer", "boolean", "number", "picture", "text", date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"**list box columns:** "boolean", "number", "picture", "text", date" (*array/selection list box only*) "integer", "time", "object" |
+| Name | データタイプ | Possible Values |
+| ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| dataSourceTypeHint | string | **standard objects:** "integer", "boolean", "number", "picture", "text", date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"**list box columns:** "boolean", "number", "picture", "text", date" (*array/selection list box only*) "integer", "time", "object" |
#### Objects Supported
@@ -153,9 +153,9 @@ A list of space-separated words used as class selectors in css files.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----- | --------- | --------------------------------------------------------- |
-| class | string | One string with CSS name(s) separated by space characters |
+| Name | データタイプ | Possible Values |
+| ----- | ------ | --------------------------------------------------------- |
+| class | string | One string with CSS name(s) separated by space characters |
#### Objects Supported
@@ -179,9 +179,9 @@ The collection or the entity selection must be available to the form when it is
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ------------------------------------------------------------ |
-| dataSource | string | Expression that returns a collection or an entity selection. |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ------------------------------------------------------------ |
+| dataSource | string | Expression that returns a collection or an entity selection. |
#### Objects Supported
@@ -206,9 +206,9 @@ Specify the type of list box.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------- | --------- | ----------------------------------------------------------- |
-| listboxType | string | "array", "currentSelection", "namedSelection", "collection" |
+| Name | データタイプ | Possible Values |
+| ----------- | ------ | ----------------------------------------------------------- |
+| listboxType | string | "array", "currentSelection", "namedSelection", "collection" |
#### Objects Supported
@@ -227,9 +227,9 @@ Name of the [plug-in external area](pluginArea_overview.md) associated to the ob
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------- | --------- | ------------------------------------------------------------- |
-| pluginAreaKind | string | Name of the plug-in external area (starts with a % character) |
+| Name | データタイプ | Possible Values |
+| -------------- | ------ | ------------------------------------------------------------- |
+| pluginAreaKind | string | Name of the plug-in external area (starts with a % character) |
#### Objects Supported
@@ -245,9 +245,9 @@ Enables radio buttons to be used in coordinated sets: only one button at a time
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ---------------- |
-| radioGroup | string | Radio group name |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ---------------- |
+| radioGroup | string | Radio group name |
#### Objects Supported
@@ -274,9 +274,9 @@ For database translation purposes, you can enter an XLIFF reference in the title
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | --------------- |
-| text | string | any text |
+| Name | データタイプ | Possible Values |
+| ---- | ------ | --------------- |
+| テキスト | string | any text |
#### Objects Supported
@@ -296,17 +296,17 @@ This property sets the type of calculation to be done in a [column footer](listb
There are several types of calculations available. The following table shows which calculations can be used according to the type of data found in each column and indicates the type automatically affected by 4D to the footer variable (if it is not typed by the code):
-| Calculation | Num | Text | Date | Time | Bool | Pict | footer var type |
-| --------------------- | --- | ---- | ---- | ---- | ---- | ---- | ------------------- |
-| Minimum | X | | X | X | X | | Same as column type |
-| Maximum | X | | X | X | X | | Same as column type |
-| Sum | X | | X | | X | | Same as column type |
-| Count | X | X | X | X | X | X | Longint |
-| Average | X | | | X | | | Real |
-| Standard deviation(*) | X | | | X | | | Real |
-| Variance(*) | X | | | X | | | Real |
-| Sum squares(*) | X | | | X | | | Real |
-| Custom ("none") | X | X | X | X | X | X | Any |
+| Calculation | Num | テキスト | 日付 | 時間 | Bool | Pict | footer var type |
+| --------------------- | --- | ---- | -- | -- | ---- | ---- | ------------------- |
+| Minimum | X | | X | X | X | | Same as column type |
+| Maximum | X | | X | X | X | | Same as column type |
+| Sum | X | | X | | X | | Same as column type |
+| Count | X | X | X | X | X | X | 倍長整数 |
+| Average | X | | | X | | | 実数 |
+| Standard deviation(*) | X | | | X | | | 実数 |
+| Variance(*) | X | | | X | | | 実数 |
+| Sum squares(*) | X | | | X | | | 実数 |
+| Custom ("none") | X | X | X | X | X | X | Any |
(*) Only for array type list boxes.
@@ -317,9 +317,9 @@ When **Custom** ("none" in JSON) is set, no automatic calculations are performed
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------------- | --------- | ----------------------------------------------------------------------------------------------------- |
-| variableCalculation | string | "none", "minimum", "maximum", "sum", "count", "average", "standardDeviation", "variance", "sumSquare" |
+| Name | データタイプ | Possible Values |
+| ------------------- | ------ | ----------------------------------------------------------------------------------------------------- |
+| variableCalculation | string | "none", "minimum", "maximum", "sum", "count", "average", "standardDeviation", "variance", "sumSquare" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Picture.md b/website/translated_docs/ja/FormObjects/properties_Picture.md
index d99fd0373cd3dd..7a0e3cbe071621 100644
--- a/website/translated_docs/ja/FormObjects/properties_Picture.md
+++ b/website/translated_docs/ja/FormObjects/properties_Picture.md
@@ -16,9 +16,9 @@ Two main locations can be used for static picture path:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:-------:|:---------:| ------------------------------------------- |
-| picture | text | Relative or filesystem path in POSIX syntax |
+| Name | データタイプ | Possible Values |
+|:-------:|:------:| ------------------------------------------- |
+| picture | テキスト | Relative or filesystem path in POSIX syntax |
#### Objects Supported
@@ -64,9 +64,9 @@ The **Truncated (non-centered)** format causes 4D to place the upper-left corner
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | -------------------------------------------------------- |
-| pictureFormat | string | "scaled", "tiled", "truncatedCenter", "truncatedTopLeft" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | -------------------------------------------------------- |
+| pictureFormat | string | "scaled", "tiled", "truncatedCenter", "truncatedTopLeft" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Plugins.md b/website/translated_docs/ja/FormObjects/properties_Plugins.md
index be8fcb93515365..9bcd7a43737c6e 100644
--- a/website/translated_docs/ja/FormObjects/properties_Plugins.md
+++ b/website/translated_docs/ja/FormObjects/properties_Plugins.md
@@ -14,9 +14,9 @@ Because the Advanced properties feature is under the control of the author of th
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| customProperties | text | Plugin specific properties, passed to plugin as a JSON string if an object, or as a binary buffer if a base64 encoded string |
+| Name | データタイプ | Possible Values |
+| ---------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| customProperties | テキスト | Plugin specific properties, passed to plugin as a JSON string if an object, or as a binary buffer if a base64 encoded string |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Print.md b/website/translated_docs/ja/FormObjects/properties_Print.md
index 32114b2665dab2..60863f02cf6543 100644
--- a/website/translated_docs/ja/FormObjects/properties_Print.md
+++ b/website/translated_docs/ja/FormObjects/properties_Print.md
@@ -26,9 +26,9 @@ The print options are:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:----------:|:---------:| --------------------------------------------------- |
-| printFrame | string | "fixed", "variable", (subform only) "fixedMultiple" |
+| Name | データタイプ | Possible Values |
+|:----------:|:------:| --------------------------------------------------- |
+| printFrame | string | "fixed", "variable", (subform only) "fixedMultiple" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_RangeOfValues.md b/website/translated_docs/ja/FormObjects/properties_RangeOfValues.md
index 41f6be2cb6d239..6a00d28922c07a 100644
--- a/website/translated_docs/ja/FormObjects/properties_RangeOfValues.md
+++ b/website/translated_docs/ja/FormObjects/properties_RangeOfValues.md
@@ -29,7 +29,7 @@ You can use a sequence number to create a unique number for each record in the t
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
| ------------ | ----------------------------------- | ------------------------------------------ |
| defaultValue | string, number, date, time, boolean | Any value and/or a stamp: "#D", "#H", "#N" |
@@ -48,9 +48,9 @@ Allows setting a list whose values cannot be entered in the object. If an exclud
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | -------------------------------- |
-| excludedList | list | A list of values to be excluded. |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | -------------------------------- |
+| excludedList | list | A list of values to be excluded. |
#### Objects Supported
@@ -69,9 +69,9 @@ Making a list required does not automatically display the list when the field is
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | --------------------------- |
-| requiredList | list | A list of mandatory values. |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | --------------------------- |
+| requiredList | list | A list of mandatory values. |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_ResizingOptions.md b/website/translated_docs/ja/FormObjects/properties_ResizingOptions.md
index 7aa21e7f43fd1a..3d641cb68153ce 100644
--- a/website/translated_docs/ja/FormObjects/properties_ResizingOptions.md
+++ b/website/translated_docs/ja/FormObjects/properties_ResizingOptions.md
@@ -33,9 +33,9 @@ If a cell in the fake column is clicked, the [LISTBOX GET CELL POSITION](https:/
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | ----------------------- |
-| resizingMode | string | "rightToLeft", "legacy" |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | ----------------------- |
+| resizingMode | string | "rightToLeft", "legacy" |
#### Objects Supported
@@ -60,9 +60,9 @@ Three options are available:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------- | --------- | ----------------------- |
-| sizingX | string | "grow", "move", "fixed" |
+| Name | データタイプ | Possible Values |
+| ------- | ------ | ----------------------- |
+| sizingX | string | "grow", "move", "fixed" |
#### Objects Supported
@@ -85,9 +85,9 @@ Three options are available:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------- | --------- | ----------------------- |
-| sizingY | string | "grow", "move", "fixed" |
+| Name | データタイプ | Possible Values |
+| ------- | ------ | ----------------------- |
+| sizingY | string | "grow", "move", "fixed" |
#### Objects Supported
@@ -111,9 +111,9 @@ When this property is not applied to the splitter, the result is as follows:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:------------ |:---------:|:------------------------------------:|
-| splitterMode | string | "move" (pusher), "resize" (standard) |
+| Name | データタイプ | Possible Values |
+|:------------ |:------:|:------------------------------------:|
+| splitterMode | string | "move" (pusher), "resize" (standard) |
#### Objects Supported
@@ -129,9 +129,9 @@ Designates if the size of the column can be modified by the user.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:--------- |:---------:|:---------------:|
-| resizable | boolean | "true", "false" |
+| Name | データタイプ | Possible Values |
+|:--------- |:-------:|:---------------:|
+| resizable | boolean | "true", "false" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Scale.md b/website/translated_docs/ja/FormObjects/properties_Scale.md
index 5b9ceb412d5828..4c776fa39dca3c 100644
--- a/website/translated_docs/ja/FormObjects/properties_Scale.md
+++ b/website/translated_docs/ja/FormObjects/properties_Scale.md
@@ -1,6 +1,6 @@
---
id: propertiesScale
-title: スケール
+title: Scale
---
---
@@ -10,9 +10,9 @@ Enables the "barber shop" variant for the thermometer.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:---------------:|:---------:| ----------------------------------------------------------- |
-| [max](#maximum) | number | NOT passed = enabled; passed = disabled (basic thermometer) |
+| Name | データタイプ | Possible Values |
+|:---------------:|:------:| ----------------------------------------------------------- |
+| [max](#maximum) | number | NOT passed = enabled; passed = disabled (basic thermometer) |
#### Objects Supported
@@ -27,9 +27,9 @@ Displays/Hides the graduations next to the labels.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:---------------:|:---------:| --------------- |
-| showGraduations | boolean | "true", "false" |
+| Name | データタイプ | Possible Values |
+|:---------------:|:-------:| --------------- |
+| showGraduations | boolean | "true", "false" |
#### Objects Supported
@@ -44,9 +44,9 @@ Scale display measurement.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:--------------:|:---------:| --------------- |
-| graduationStep | integer | minimum: 0 |
+| Name | データタイプ | Possible Values |
+|:--------------:|:-------:| --------------- |
+| graduationStep | integer | minimum: 0 |
#### Objects Supported
@@ -66,9 +66,9 @@ Specifies the location of an object's displayed text.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:---------------:|:---------:| ---------------------------------------- |
-| labelsPlacement | string | "none", "top", "bottom", "left", "right" |
+| Name | データタイプ | Possible Values |
+|:---------------:|:------:| ---------------------------------------- |
+| labelsPlacement | string | "none", "top", "bottom", "left", "right" |
#### Objects Supported
@@ -86,7 +86,7 @@ Maximum value of an indicator.
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
|:----:|:---------------:| ----------------------------------- |
| max | string / number | minimum: 0 (for numeric data types) |
@@ -103,7 +103,7 @@ Minimum value of an indicator. For numeric steppers, this property represent sec
#### JSON Grammar
-| Name | Data Type | Possible Values |
+| Name | データタイプ | Possible Values |
|:----:|:---------------:| ----------------------------------- |
| min | string / number | minimum: 0 (for numeric data types) |
@@ -121,9 +121,9 @@ Minimum interval accepted between values during use. For numeric steppers, this
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:----:|:---------:| --------------- |
-| step | integer | minimum: 1 |
+| Name | データタイプ | Possible Values |
+|:----:|:-------:| --------------- |
+| step | integer | minimum: 1 |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Subform.md b/website/translated_docs/ja/FormObjects/properties_Subform.md
index b50e4a773b427e..851f4ad4c55947 100644
--- a/website/translated_docs/ja/FormObjects/properties_Subform.md
+++ b/website/translated_docs/ja/FormObjects/properties_Subform.md
@@ -10,9 +10,9 @@ Specifies if the user can delete subrecords in a list subform.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | --------------------------- |
-| deletableInList | boolean | true, false (default: true) |
+| Name | データタイプ | Possible Values |
+| --------------- | ------- | --------------------------- |
+| deletableInList | boolean | true, false (default: true) |
#### Objects Supported
@@ -32,9 +32,9 @@ You use this property to declare the detail form to use in the subform. It can b
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------- |
-| detailForm | string | Name (string) of table or project form, a POSIX path (string) to a .json file describing the form, or an object describing the form |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------- |
+| detailForm | string | Name (string) of table or project form, a POSIX path (string) to a .json file describing the form, or an object describing the form |
#### Objects Supported
@@ -50,9 +50,9 @@ Action to perform in case of a double-click on an empty line of a list subform.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------------------------- | --------- | ---------------------------------- |
-| doubleClickInEmptyAreaAction | string | "addSubrecord" or "" to do nothing |
+| Name | データタイプ | Possible Values |
+| ---------------------------- | ------ | ---------------------------------- |
+| doubleClickInEmptyAreaAction | string | "addSubrecord" or "" to do nothing |
#### Objects Supported
@@ -78,9 +78,9 @@ For the last two actions, the On `Open Detail` form event is also generated. The
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------------------- | --------- | ----------------------------------- |
-| doubleClickInRowAction | string | "editSubrecord", "displaySubrecord" |
+| Name | データタイプ | Possible Values |
+| ---------------------- | ------ | ----------------------------------- |
+| doubleClickInRowAction | string | "editSubrecord", "displaySubrecord" |
#### Objects Supported
@@ -100,9 +100,9 @@ When a list subform has this property enabled, the user can modify record data d
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | --------------- |
-| enterableInList | boolean | true, false |
+| Name | データタイプ | Possible Values |
+| --------------- | ------- | --------------- |
+| enterableInList | boolean | true, false |
#### Objects Supported
@@ -121,9 +121,9 @@ You can also allow the user to enter data in the List form.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------- |
-| listForm | string | Name (string) of table or project form, a POSIX path (string) to a .json file describing the form, or an object describing the form |
+| Name | データタイプ | Possible Values |
+| -------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------- |
+| listForm | string | Name (string) of table or project form, a POSIX path (string) to a .json file describing the form, or an object describing the form |
#### Objects Supported
@@ -138,9 +138,9 @@ Specifies the table that the list subform belongs to (if any).
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----- | --------- | --------------------------------- |
-| table | string | 4D table name, or "" if no table. |
+| Name | データタイプ | Possible Values |
+| ----- | ------ | --------------------------------- |
+| table | string | 4D table name, or "" if no table. |
#### Objects Supported
@@ -160,9 +160,9 @@ Designates the option for allowing users to select rows:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ---------------------------- |
-| selectionMode | string | "multiple", "single", "none" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ---------------------------- |
+| selectionMode | string | "multiple", "single", "none" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_Text.md b/website/translated_docs/ja/FormObjects/properties_Text.md
index 2a04d902f8ec79..c3044e4f543a27 100644
--- a/website/translated_docs/ja/FormObjects/properties_Text.md
+++ b/website/translated_docs/ja/FormObjects/properties_Text.md
@@ -11,9 +11,9 @@ When this property is enabled, the [OPEN FONT PICKER](https://doc.4d.com/4Dv18/4
#### JSON Grammar
-| Property | Data Type | Possible Values |
-| -------------------- | --------- | --------------------- |
-| allowFontColorPicker | boolean | false (default), true |
+| Property | データタイプ | Possible Values |
+| -------------------- | ------- | --------------------- |
+| allowFontColorPicker | boolean | false (default), true |
#### Objects Supported
@@ -29,9 +29,9 @@ You can set this property using the [**OBJECT SET FONT STYLE**](https://doc.4d.c
#### JSON Grammar
-| Property | Data Type | Possible Values |
-| ---------- | --------- | ---------------- |
-| fontWeight | text | "normal", "bold" |
+| Property | データタイプ | Possible Values |
+| ---------- | ------ | ---------------- |
+| fontWeight | テキスト | "normal", "bold" |
#### Objects Supported
@@ -48,9 +48,9 @@ You can also set this property via the [**OBJECT SET FONT STYLE**](https://doc.4
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | ------------------ |
-| fontStyle | string | "normal", "italic" |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | ------------------ |
+| fontStyle | string | "normal", "italic" |
#### Objects Supported
@@ -66,9 +66,9 @@ Sets the text to have a line running beneath it.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------- | --------- | --------------------- |
-| textDecoration | string | "normal", "underline" |
+| Name | データタイプ | Possible Values |
+| -------------- | ------ | --------------------- |
+| textDecoration | string | "normal", "underline" |
#### Objects Supported
@@ -108,9 +108,9 @@ Three font themes are available:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | ------------------------------ |
-| fontTheme | string | "normal", "main", "additional" |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | ------------------------------ |
+| fontTheme | string | "normal", "main", "additional" |
#### Objects Supported
@@ -132,9 +132,9 @@ You can set this using the [**OBJECT SET FONT**](https://doc.4d.com/4Dv17R5/4D/1
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | -------------------- |
-| fontFamily | string | CSS font family name |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | -------------------- |
+| fontFamily | string | CSS font family name |
> 4D recommends using only [web safe](https://www.w3schools.com/cssref/css_websafe_fonts.asp) fonts.
#### Objects Supported
@@ -152,9 +152,9 @@ Allows defining the object's font size in points.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------- | --------- | ------------------------------------- |
-| fontSize | integer | Font size in points. Minimum value: 0 |
+| Name | データタイプ | Possible Values |
+| -------- | ------- | ------------------------------------- |
+| fontSize | integer | Font size in points. Minimum value: 0 |
#### Objects Supported
@@ -179,9 +179,9 @@ You can also set this property using the [**OBJECT SET RGB COLORS**](https://doc
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------ | --------- | ----------------------------------------- |
-| stroke | string | any css value, "transparent", "automatic" |
+| Name | データタイプ | Possible Values |
+| ------ | ------ | ----------------------------------------- |
+| stroke | string | any css value, "transparent", "automatic" |
#### Objects Supported
@@ -209,9 +209,9 @@ Foreground color;Dark shadow color)
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------------- | --------- | --------------------- |
-| rowStrokeSource | string | Font color expression |
+| Name | データタイプ | Possible Values |
+| --------------- | ------ | --------------------- |
+| rowStrokeSource | string | Font color expression |
#### Objects Supported
@@ -226,7 +226,7 @@ Used to apply a custom character style to each row of the list box or each cell
You must enter an expression or a variable (array type variables cannot be used). The expression or variable will be evaluated for each row displayed (if applied to the list box) or each cell displayed (if applied to a column). You can use the constants of the [Font Styles](https://doc.4d.com/4Dv17R6/4D/17-R6/Font-Styles.302-4310343.en.html) theme.
-Example:
+例:
```code4d
Choose([Companies]ID;Bold;Plain;Italic;Underline)
@@ -236,9 +236,9 @@ Choose([Companies]ID;Bold;Plain;Italic;Underline)
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------- | --------- | ----------------------------------------------- |
-| rowStyleSource | string | Style expression to evaluate for each row/cell. |
+| Name | データタイプ | Possible Values |
+| -------------- | ------ | ----------------------------------------------- |
+| rowStyleSource | string | Style expression to evaluate for each row/cell. |
#### Objects Supported
@@ -256,9 +256,9 @@ Horizontal location of text within the area that contains it.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | ------------------------------------------------- |
-| textAlign | string | "automatic", "right", "center", "justify", "left" |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | ------------------------------------------------- |
+| textAlign | string | "automatic", "right", "center", "justify", "left" |
#### Objects Supported
@@ -279,9 +279,9 @@ This property can also be handled by the [OBJECT Get vertical alignment](https:/
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | -------------------------------------- |
-| verticalAlign | string | "automatic", "top", "middle", "bottom" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | -------------------------------------- |
+| verticalAlign | string | "automatic", "top", "middle", "bottom" |
#### Objects Supported
@@ -301,7 +301,7 @@ This property can also be handled by the [OBJECT Get vertical alignment](https:/
Specifies an expression or a variable which will be evaluated for each row displayed. It allows defining a whole set of row text attributes. You must pass an **object variable** or an **expression that returns an object**. The following properties are supported:
-| Property name | Type | Description |
+| Property name | タイプ | 説明 |
| ------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| stroke | string | Font color. Any CSS color (ex: "#FF00FF"), "automatic", "transparent" |
| fill | string | Background color. Any CSS color (ex: "#F00FFF"), "automatic", "transparent" |
@@ -347,9 +347,9 @@ $0:=Form.meta
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | ------------------------------------------------ |
-| metaSource | string | Object expression to evaluate for each row/cell. |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | ------------------------------------------------ |
+| metaSource | string | Object expression to evaluate for each row/cell. |
#### Objects Supported
@@ -384,7 +384,7 @@ This property enables the possibility of using specific styles in the selected a
- Data Type
+ データタイプ
|
@@ -501,7 +501,7 @@ This property enables the possibility of using specific styles in the selected a
|
- Data Type
+ データタイプ
|
@@ -564,7 +564,7 @@ This property enables the possibility of using specific styles in the selected a
|
- Data Type
+ データタイプ
|
@@ -628,7 +628,7 @@ This property enables the possibility of using specific styles in the selected a
|
- Data Type
+ データタイプ
|
@@ -703,7 +703,7 @@ This property enables the possibility of using specific styles in the selected a
|
- Data Type
+ データタイプ
|
diff --git a/website/translated_docs/ja/FormObjects/properties_TextAndPicture.md b/website/translated_docs/ja/FormObjects/properties_TextAndPicture.md
index 423aba0e270cc1..3a92466c25c300 100644
--- a/website/translated_docs/ja/FormObjects/properties_TextAndPicture.md
+++ b/website/translated_docs/ja/FormObjects/properties_TextAndPicture.md
@@ -12,9 +12,9 @@ The pathname to enter is similar as for the [Pathname property for static pictur
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ----------------------- | --------- | ------------------------------------------------------------------------------------------------------------ |
-| customBackgroundPicture | string | Relative path in POSIX syntax. Must be used in conjunction with the style property with the "custom" option. |
+| Name | データタイプ | Possible Values |
+| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------ |
+| customBackgroundPicture | string | Relative path in POSIX syntax. Must be used in conjunction with the style property with the "custom" option. |
#### Objects Supported
@@ -32,9 +32,9 @@ General appearance of the button. The button style also plays a part in the avai
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:-----:|:---------:| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| style | text | "regular", "flat", "toolbar", "bevel", "roundedBevel", "gradientBevel", "texturedBevel", "office", "help", "circular", "disclosure", "roundedDisclosure", "custom" |
+| Name | データタイプ | Possible Values |
+|:-----:|:------:| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| style | テキスト | "regular", "flat", "toolbar", "bevel", "roundedBevel", "gradientBevel", "texturedBevel", "office", "help", "circular", "disclosure", "roundedDisclosure", "custom" |
#### Objects Supported
@@ -51,7 +51,7 @@ This property allows setting the size (in pixels) of the horizontal margins of t
This parameter is useful, for example, when the background picture contains borders:
-| With / Without | Example |
+| With / Without | 例題 |
| -------------------- | --------------------------------------------------------- |
| Without margin |  |
| With 13-pixel margin |  |
@@ -59,9 +59,9 @@ This parameter is useful, for example, when the background picture contains bord
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | --------------------------------------- |
-| customBorderX | number | For use with "custom" style. Minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | --------------------------------------- |
+| customBorderX | number | For use with "custom" style. Minimum: 0 |
#### Objects Supported
@@ -78,9 +78,9 @@ Designates the placement of an icon in relation to the form object.
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ----------------------- |
-| iconPlacement | string | "none", "left", "right" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ----------------------- |
+| iconPlacement | string | "none", "left", "right" |
#### Objects Supported
@@ -99,9 +99,9 @@ The title of the button will be shifted to the right and toward the bottom for t
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------ | --------- | --------------- |
-| customOffset | number | minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ------------ | ------ | --------------- |
+| customOffset | number | minimum: 0 |
#### Objects Supported
@@ -127,9 +127,9 @@ The following states are represented:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---------- | --------- | --------------- |
-| iconFrames | number | minimum: 1 |
+| Name | データタイプ | Possible Values |
+| ---------- | ------ | --------------- |
+| iconFrames | number | minimum: 1 |
#### Objects Supported
@@ -150,9 +150,9 @@ The pathname to enter is similar as for the [Pathname property for static pictur
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ---- | --------- | -------------------------------------------- |
-| icon | picture | Relative or filesystem path in POSIX syntax. |
+| Name | データタイプ | Possible Values |
+| ---- | ------- | -------------------------------------------- |
+| icon | picture | Relative or filesystem path in POSIX syntax. |
#### Objects Supported
@@ -168,7 +168,7 @@ This property allows modifying the relative location of the button title in rela
Here are the results using the various options for this property:
-| Option | Description | Example |
+| Option | 説明 | 例題 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
| **Left** | The text is placed to the left of the icon. The contents of the button are aligned to the right. |  |
| **Top** | The text is placed above the icon. The contents of the button are centered. |  |
@@ -178,9 +178,9 @@ Here are the results using the various options for this property:
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | ------------------------------------------ |
-| textPlacement | string | "left", "top", "right", "bottom", "center" |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | ------------------------------------------ |
+| textPlacement | string | "left", "top", "right", "bottom", "center" |
#### Objects Supported
@@ -200,9 +200,9 @@ This parameter is useful, for example, when the background picture contains bord
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| ------------- | --------- | --------------------------------------- |
-| customBorderY | number | For use with "custom" style. Minimum: 0 |
+| Name | データタイプ | Possible Values |
+| ------------- | ------ | --------------------------------------- |
+| customBorderY | number | For use with "custom" style. Minimum: 0 |
#### Objects Supported
@@ -242,9 +242,9 @@ It is important to note that the "With Pop-up Menu" property only manages the gr
#### JSON Grammar
-| Name | Data Type | Possible Values |
-|:-------------- | --------- | ---------------------------------------------------------------------------------------------------- |
-| popupPlacement | string | "none""linked""separated" |
+| Name | データタイプ | Possible Values |
+|:-------------- | ------ | ---------------------------------------------------------------------------------------------------- |
+| popupPlacement | string | "none""linked""separated" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/properties_WebArea.md b/website/translated_docs/ja/FormObjects/properties_WebArea.md
index d5cf817f97fca0..cf84d020c9239a 100644
--- a/website/translated_docs/ja/FormObjects/properties_WebArea.md
+++ b/website/translated_docs/ja/FormObjects/properties_WebArea.md
@@ -1,6 +1,6 @@
---
id: propertiesWebArea
-title: Webエリア
+title: Web Area
---
---
@@ -16,9 +16,9 @@ When this property is on, a special JavaScript object named `$4d` is instantiate
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------------- | --------- | ----------------------- |
-| methodsAccessibility | string | "none" (default), "all" |
+| Name | データタイプ | Possible Values |
+| -------------------- | ------ | ----------------------- |
+| methodsAccessibility | string | "none" (default), "all" |
#### Objects Supported
@@ -32,9 +32,9 @@ Name of a Longint type variable. This variable will receive a value between 0 an
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| -------------- | --------- | -------------------------- |
-| progressSource | string | Name of a Longint variable |
+| Name | データタイプ | Possible Values |
+| -------------- | ------ | -------------------------- |
+| progressSource | string | Name of a Longint variable |
#### Objects Supported
@@ -63,9 +63,9 @@ The URL variable produces the same effects as the [WA OPEN URL](https://doc.4d.c
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | --------------- |
-| urlSource | string | A URL. |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | --------------- |
+| urlSource | string | A URL. |
#### Objects Supported
@@ -94,9 +94,9 @@ This option allows choosing between two rendering engines for the Web area, depe
#### JSON Grammar
-| Name | Data Type | Possible Values |
-| --------- | --------- | -------------------- |
-| webEngine | string | "embedded", "system" |
+| Name | データタイプ | Possible Values |
+| --------- | ------ | -------------------- |
+| webEngine | string | "embedded", "system" |
#### Objects Supported
diff --git a/website/translated_docs/ja/FormObjects/radio_overview.md b/website/translated_docs/ja/FormObjects/radio_overview.md
index e3503123ccc4df..60d7c78049377d 100644
--- a/website/translated_docs/ja/FormObjects/radio_overview.md
+++ b/website/translated_docs/ja/FormObjects/radio_overview.md
@@ -1,6 +1,6 @@
---
id: radiobuttonOverview
-title: ラジオボタン
+title: Radio Button
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/ruler.md b/website/translated_docs/ja/FormObjects/ruler.md
index 332fb1603fce25..cb75d51696c5c2 100644
--- a/website/translated_docs/ja/FormObjects/ruler.md
+++ b/website/translated_docs/ja/FormObjects/ruler.md
@@ -1,6 +1,6 @@
---
id: ruler
-title: ルーラー
+title: Ruler
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/splitters.md b/website/translated_docs/ja/FormObjects/splitters.md
index d33fe9b1441216..7962ae0244518e 100644
--- a/website/translated_docs/ja/FormObjects/splitters.md
+++ b/website/translated_docs/ja/FormObjects/splitters.md
@@ -1,6 +1,6 @@
---
id: splitters
-title: スプリッター
+title: Splitter
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/staticPicture.md b/website/translated_docs/ja/FormObjects/staticPicture.md
index d6005a291241cf..8effb80d18d177 100644
--- a/website/translated_docs/ja/FormObjects/staticPicture.md
+++ b/website/translated_docs/ja/FormObjects/staticPicture.md
@@ -1,6 +1,6 @@
---
id: staticPicture
-title: スタティックピクチャー
+title: Static picture
---
## Overview
diff --git a/website/translated_docs/ja/FormObjects/tabControl.md b/website/translated_docs/ja/FormObjects/tabControl.md
index 5c0d43ca12cd10..27f15d2eb31118 100644
--- a/website/translated_docs/ja/FormObjects/tabControl.md
+++ b/website/translated_docs/ja/FormObjects/tabControl.md
@@ -1,6 +1,6 @@
---
id: tabControl
-title: タブコントロール
+title: Tab Controls
---
A tab control creates an object that lets the user choose among a set of virtual screens that are enclosed by the tab control object. Each screen is accessed by clicking its tab.
diff --git a/website/translated_docs/ja/FormObjects/webArea_overview.md b/website/translated_docs/ja/FormObjects/webArea_overview.md
index 530d8c83d42926..98aca23be25acd 100644
--- a/website/translated_docs/ja/FormObjects/webArea_overview.md
+++ b/website/translated_docs/ja/FormObjects/webArea_overview.md
@@ -1,6 +1,6 @@
---
id: webAreaOverview
-title: Webエリア
+title: Web Area
---
## Overview
diff --git a/website/translated_docs/ja/MSC/encrypt.md b/website/translated_docs/ja/MSC/encrypt.md
index fcd769b8b0df16..dd41baade79d7b 100644
--- a/website/translated_docs/ja/MSC/encrypt.md
+++ b/website/translated_docs/ja/MSC/encrypt.md
@@ -94,7 +94,7 @@ You can save the encryption key each time a new passphrase has been provided:
Successive encryption keys can be stored on the same device.
-## Log file
+## ログファイル
After an encryption operation has been completed, 4D generates a file in the Logs folder of the database. It is created in XML format and named "*DatabaseName_Encrypt_Log_yyyy-mm-dd hh-mm-ss.xml*" or "*DatabaseName_Decrypt_Log_yyyy-mm-dd hh-mm-ss.xml*".
diff --git a/website/translated_docs/ja/MSC/overview.md b/website/translated_docs/ja/MSC/overview.md
index 0c5a6be5485793..ba94365a594638 100644
--- a/website/translated_docs/ja/MSC/overview.md
+++ b/website/translated_docs/ja/MSC/overview.md
@@ -1,5 +1,5 @@
---
-id: 概要
+id: overview
title: Overview
sidebar_label: Overview
---
diff --git a/website/translated_docs/ja/MSC/restore.md b/website/translated_docs/ja/MSC/restore.md
index 13a16ed68befb1..6c4377e451dd7a 100644
--- a/website/translated_docs/ja/MSC/restore.md
+++ b/website/translated_docs/ja/MSC/restore.md
@@ -40,7 +40,7 @@ When restoring a backup and integrating the current log file in a encrypted data
The following sequence illustrates the principles of a multi-key backup/restore operation:
-| Operation | Generated files | Comment |
+| オペレーション | Generated files | Comment |
| --------------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| New database | | |
| Add data (record # 1) | | |
diff --git a/website/translated_docs/ja/Menus/overview.md b/website/translated_docs/ja/Menus/overview.md
index 1cd748201e77de..012f35cbb12d0c 100644
--- a/website/translated_docs/ja/Menus/overview.md
+++ b/website/translated_docs/ja/Menus/overview.md
@@ -1,5 +1,5 @@
---
-id: 概要
+id: overview
title: Overview
---
diff --git a/website/translated_docs/ja/Menus/properties.md b/website/translated_docs/ja/Menus/properties.md
index 0952503f0ed52b..76b1df13f5a79a 100644
--- a/website/translated_docs/ja/Menus/properties.md
+++ b/website/translated_docs/ja/Menus/properties.md
@@ -22,7 +22,7 @@ You can set some properties of the menu commands by using control characters (me
Control characters do not appear in the menu command labels. You should therefore avoid using them so as not to have any undesirable effects. The control characters are the following:
-| Character | Description | Usage |
+| Character | 説明 | Usage |
| ----------- | --------------------------- | ------------------------------------------------------------- |
| ( | open parenthese | Disable item |
| この設定は **[ユーザー設定](#settings-folder-1)** や **ストラクチャー設定** より優先されます。
-| 内容 | Description | 形式 |
+| 内容 | 説明 | 形式 |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
| Backup.4DSettings | このデータファイルを使ってデータベースが実行されている場合に使用する [バックアップオプション](Backup/settings.md) を定義したデータベースバックアップ設定です。 バックアップ設定に使われるキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 | XML |
| settings.4DSettings | データファイル用のカスタムデータベース設定 | XML |
@@ -165,7 +165,7 @@ Logs フォルダーには、プロジェクトが使用するすべてのログ
> [Data フォルダー](#settings-folder)の Setting フォルダー内にデータファイル用のユーザー設定ファイルがある場合には、そちらが優先されます。
-| 内容 | Description | 形式 |
+| 内容 | 説明 | 形式 |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
| directory.json | 4D グループとユーザー、およびアクセス権の定義 | JSON |
| BuildApp.4DSettings | アプリケーションビルダーのダイアログボックス、または `BUILD APPLICATION` コマンドを使ったときに自動的に作成されるビルド設定ファイル | XML |
@@ -176,7 +176,7 @@ Logs フォルダーには、プロジェクトが使用するすべてのログ
ブレークポイントの位置など、ユーザーの環境設定を定義するファイルを格納するフォルダーです。 このフォルダーは無視してかまいません。 格納されるファイルの例です:
-| 内容 | Description | 形式 |
+| 内容 | 説明 | 形式 |
| ---------------------------- | ---------------------------------- | ---- |
| methodPreferences.json | カレントユーザーのメソッドエディター環境設定 | JSON |
| methodWindowPositions.json | カレントユーザーのメソッドのウィンドウポジション | JSON |
diff --git a/website/translated_docs/ja/Project/building.md b/website/translated_docs/ja/Project/building.md
index 9be0484bfc5b1f..1c79004252b791 100644
--- a/website/translated_docs/ja/Project/building.md
+++ b/website/translated_docs/ja/Project/building.md
@@ -39,7 +39,7 @@ title: プロジェクトパッケージのビルド
また、XML キーを使用すれば、アプリケーションビルドダイアログには表示されない追加の設定をおこなうことができます。 詳細は専用のドキュメント [アプリケーションビルド設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-BuildApplication.100-4670981.ja.html) を参照してください。
-### Log file
+### ログファイル
アプリケーションをビルドすると、4D はログファイルを生成して **Logs** フォルダーに保存します。 ログファイルにはビルド毎に以下の情報が書き込まれます:
@@ -407,17 +407,17 @@ Apple の公証サービスを利用するのに必要な条件を満たすた
4Dは、ダブルクリックで実行可能なアプリケーションにデフォルトアイコンを割り当てますが、各アプリケーションごとにこのアイコンをカスタマイズできます。
-* **macOs** - アプリケーションビルドの際に条件が揃っていれば、4D はアイコンをカスタマイズします。 In order to do this, you must create an icon file (icns type), prior to building the application file, and place it next to the project folder.
+* **macOs** - アプリケーションビルドの際にアイコンをカスタマイズするには、 icns タイプのアイコンファイルを作成し、それを Project フォルダーと同階層に配置しておきます。
- > Apple, Inc. provides a specific tool for building *icns* icon files (for more information, please refer to [Apple documentation](https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW2)).
+ > Apple, Inc. より、*icns* アイコンファイルを作成するツールが提供されています。(詳細については、[Apple documentation](https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW2) を参照してください。)
- Your icon file must have the same name as the project file and include the *.icns* extension. 4D automatically takes this file into account when building the double-clickable application (the *.icns* file is renamed *ApplicationName.icns* and copied into the Resources folder; the *CFBundleFileIcon* entry of the *info.plist* file is updated).
+ アイコンファイルの名前はプロジェクトファイル名+"*.icns*" 拡張子でなければなりません。 4D は自動でこのファイルを認識し、アイコンとして使用します (*.icns* ファイルは *ApplicationName.icns* に名称変更されて Resourcesフォルダーに置かれます。さらに *info.plist* ファイルの *CFBundleFileIcon* エントリーを更新します)。
-* **Windows** - When building a double-clickable application, 4D handles the customizing of its icon. In order to do this, you must create an icon file (*.ico* extension), prior to building the application file, and place it next to the project folder.
+* **Windows** - アプリケーションビルドの際にアイコンをカスタマイズするには、 .ico タイプのアイコンファイルを作成し、それを Project フォルダーと同階層に配置しておきます。
- Your icon file must have the same name as the project file and include the *.ico* extension. 4D automatically takes this file into account when building the double-clickable application.
+ アイコンファイルの名前はストラクチャーファイル名+"*.ico*" 拡張子でなければなりません。 4Dは自動でこのファイルを認識し、アイコンとして使用します。
-You can also set specific [XML keys](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-XML-Keys-BuildApplication.100-4465602.en.html) in the buildApp.4DSettings file to designate each icon to use. The following keys are available:
+また、buildApp.4DSettings ファイルにて、使用すべきアイコンを [XML keys](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-BuildApplication.100-4670981.ja.html) (SourcesFiles の項参照)によって指定することも可能です。 次のキーが利用できます:
- RuntimeVLIconWinPath
- RuntimeVLIconMacPath
@@ -428,112 +428,112 @@ You can also set specific [XML keys](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-XML-
- ClientMacIconForWinPath
- ClientWinIconForWinPath
-## Management of data file(s)
+## データファイルの管理
-### Opening the data file
+### データファイルを開く
-When a user launches a merged application or an update (single-user or client/server applications), 4D tries to select a valid data file. Several locations are examined by the application successively.
+ユーザーが組み込みアプリ、またはアプリのアップデート (シングルユーザー、またはクライアント/サーバーアプリ) を起動すると、4D は有効なデータファイルを選択しようとします。 アプリケーションによって、複数の場所が順次検索されます。
-The opening sequence for launching a merged application is:
+組み込みアプリ起動時のオープニングシーケンスは以下のようになっています:
-1. 4D tries to open the last data file opened, [as described below](#last-data-file-opened) (not applicable during initial launch).
-2. If not found, 4D tries to open the data file in a default data folder next to the .4DZ file in read-only mode.
-3. If not found, 4D tries to open the standard default data file (same name and same location as the .4DZ file).
-4. If not found, 4D displays a standard "Open data file" dialog box.
+1. 4D は最後に開かれたデータファイルを開こうとします。詳しくは [後述の説明](#last-data-file-opened) を参照ください (これは初回起動時には適用されません)。
+2. 見つからない場合、4D は .4DZ ファイルと同階層の Default Data フォルダー内にあるデータファイルを、読み込み専用モードで開こうとします。
+3. これも見つからない場合、4D は標準のデフォルトデータファイルを開こうとします(.4DZ ファイルと同じ場所にある、同じ名前のファイル)。
+4. これも見つからない場合、4D は "データファイルを開く" ダイアログボックスを表示します。
-### Last data file opened
+### 最後に開かれたデータファイル
-#### Path of last data file
+#### 最後に開かれたファイルへのパス
-Any standalone or server applications built with 4D stores the path of the last data file opened in the application's user preferences folder.
+4D でビルドされたあらゆるスタンドアロンまたはサーバーアプリケーションは、最後に開かれたデータファイルのパスをアプリケーションのユーザー設定フォルダー内に保存します。
-The location of the application's user preferences folder corresponds to the path returned by the following statement:
+アプリケーションのユーザー設定フォルダーの場所は、以下のコマンドで返されるパスに対応しています:
```code4d
userPrefs:=Get 4D folder(Active 4D Folder)
```
-The data file path is stored in a dedicated file, named *lastDataPath.xml*.
+データファイルパスは *lastDataPath.xml* という名前の専用ファイルに保存されます。
-Thanks to this architecture, when you provide an update of your application, the local user data file (last data file used) is opened automatically at first launch.
+これにより、アプリケーションのアップデートを提供したときにも、ローカルのユーザーデータファイル (最後に使用されたデータファイル) が初回の起動から自動的に開かれます。
-This mechanism is usually suitable for standard deployments. However, for specific needs, for example if you duplicate your merged applications, you might want to change the way that the data file is linked to the application (described below).
+このメカニズムは標準的な運用に適しています。 しかしながら特定の場合、たとえば組み込みアプリケーションを複製した場合などにおいて、データファイルとアプリケーションのリンクを変えたいことがあるかもしれません (次章参照)。
-#### Configuring the data linking mode
+#### データリンクモードの設定
-With your compiled applications, 4D automatically uses the last data file opened. By default, the path of the data file is stored in the application's user preferences folder and is linked to the **application name**.
+コンパイルされたアプリケーションでは、4D は最後に使用されたデータファイルを自動的に使用します。 デフォルトでは、データファイルのパスはアプリケーションのユーザー設定フォルダー内に保存され、 **アプリケーション名 ** でリンクされます。
-This may be unsuitable if you want to duplicate a merged application intended to use different data files. Duplicated applications actually share the application's user preferences folder and thus, always use the same data file -- even if the data file is renamed, because the last file used for the application is opened.
+異なるデータファイルを使用するために組み込みアプリを複製する場合には、この方法は適さないかもしれません。 複製されたアプリは同じアプリケーションユーザー設定フォルダーを共有するため、同じデータファイルを使用することになります (最後に使用されたファイルが開かれるため、データファイル名を変更した場合でも結果は同じです)。
-4D therefore lets you link the data file path to the application path. In this case, the data file will be linked using a specific path and will not just be the last file opened. You therefore link your data **by application path**.
+そのため 4D では、アプリケーションパスを使用してデータファイルとリンクすることも可能です。 このとき、データファイルは特定のパスを使用してリンクされるので、最後に開かれたファイルであるかは問われません。 この設定を使うには、データリンクモードの基準を **アプリケーションパス** に設定します。
-This mode allows you to duplicate your merged applications without breaking the link to the data file. However, with this option, if the application package is moved on the disk, the user will be prompted for a data file, since the application path will no longer match the "executablePath" attribute (after a user has selected a data file, the *lastDataPath.xml* file is updated accordingly).
+このモードを使えば、組み込みアプリがいくつあっても、それぞれが専用のデータファイルを使えます。 ただし、デメリットもあります: アプリケーションパッケージを移動させてしまうとアプリケーションパスが変わってしまうため、データファイルを見つけられなくなります。この場合、ユーザーは開くデータファイルを指定するダイアログを提示され、正しいファイルを選択しなくてはなりません。一度選択されれば、*lastDataPath.xml* ファイルが更新され、新しい "executablePath" 属性のエントリーが保存されます。
-*Duplication when data linked by application name:* 
+*データがアプリケーション名でリンクされている場合の複製:* 
-*Duplication when data linked by application path:* 
+*データがアプリケーションパスでリンクされている場合の複製:* 
-You can select the data linking mode during the build application process. You can either:
+このデータリンクモードはアプリケーションビルドの際に選択することができます。 次の二つから選択可能です:
-- Use the [Application page](#application) or [Client/Server page](#client-server) of the Build Application dialog box.
-- Use the **LastDataPathLookup** XML key (single-user application or server application).
+- アプリケーションビルダーの [アプリケーションページ](#application) または [クライアント/サーバーページ](#client-server) を使用する。
+- シングルユーザーまたはサーバーアプリケーションの **LastDataPathLookup** XMLキーを使用する。
-### Defining a default data folder
+### デフォルトのデータフォルダーを定義する
-4D allows you to define a default data file at the application building stage. When the application is launched for the first time, if no local data file is found (see [opening sequence described above](#opening-the-data-file)), the default data file is automatically opened silently in read-only mode by 4D. This gives you better control over data file creation and/or opening when launching a merged application for the first time.
+4D では、アプリケーションビルド時にデフォルトのデータファイルを指定することができます。 アプリケーションの初回起動時に、開くべきローカルデータファイルが見つからなかった場合 (前述の [オープニングシーケンス](#opening-the-data-file)参照)、デフォルトのデータファイルが読み込み専用モードで自動的に開かれます。 この機能を使って、組み込みアプリを初回起動したときのデータファイル作成・選択の操作をより制御することができます。
-More specifically, the following cases are covered:
+具体的には、次のような場合に対応できます:
-- Avoiding the display of the 4D "Open Data File" dialog box when launching a new or updated merged application. You can detect, for example at startup, that the default data file has been opened and thus execute your own code and/or dialogs to create or select a local data file.
-- Allowing the distribution of merged applications with read-only data (for demo applications, for instance).
+- 新しい、またはアップデートされた組み込みアプリを起動したときに、"データファイルを開く" ダイアログが表示されるのを防ぐことができます。 たとえば、デフォルトデータファイルが開かれたことを起動時に検知して、独自のコードやダイアログを実行して、ローカルデータファイルの作成や選択を促すことができます。
+- デモアプリなどの用途で、読み込み専用データしか持たない組み込みアプリを配布することができます。
-To define and use a default data file:
+デフォルトのデータファイルを定義・使用するには:
-- You provide a default data file (named "Default.4DD") and store it in a default folder (named "Default Data") inside the database project folder. This file must be provided along with all other necessary files, depending on the database configuration: index (.4DIndx), external Blobs, journal, etc. It is your responsibility to provide a valid default data file. Note however that since a default data file is opened in read-only mode, it is recommended to uncheck the "Use Log File" option in the original structure file before creating the data file.
-- When the application is built, the default data folder is integrated into the merged application. All files within this default data folder are also embedded.
+- デフォルトのデータファイル (名称は必ず "Default.4DD") を、データベースプロジェクトのデフォルトフォルダー (名称は必ず "Default Data") 内に保存します。 このデフォルトのデータファイルには必要なファイルもすべて揃っている必要があります: インデックス (.4DIndx)、外部BLOB、ジャーナル、他。 必ず、有効なデフォルトデータファイルを用意するようにしてください。 なお、デフォルトデータファイルはつねに読み込み専用モードで開かれるため、データファイルの作成前に、あらかじめ大元のストラクチャー設定の "ログを使用" オプションを非選択にしておくことが推奨されます。
+- アプリケーションをビルドすると、このデフォルトデータフォルダーが組み込みアプリに統合されます。 同フォルダー内ファイルはすべて一緒に埋め込まれます。
-The following graphic illustrates this feature:
+この機能を図示すると次のようになります:

-When the default data file is detected at first launch, it is silently opened in read-only mode, thus allowing you to execute any custom operations that do not modify the data file itself.
+デフォルトのデータファイルが初回起動時に検知された場合、データファイルは自動的に読み込み専用モードで開かれ、カスタムのオペレーション実行ができるようになります。
-## Management of client connection(s)
+## クライアント接続の管理
-The management of connections by client applications covers the mechanisms by which a merged client application connects to the target server, once it is in its production environment.
+ここでは、組み込みクライアントアプリが運用環境において対象サーバーへと接続する際のメカニズム機構について説明します。
-### Connection scenario
+### 接続シナリオ
-The connection procedure for merged client applications supports cases where the dedicated server is not available. The startup scenario for a 4D client application is the following:
+組み込みクライアントアプリの接続プロシージャーは、専用サーバーが使用不可能な場合にも柔軟に対応します。 4D クライアントアプリのスタートアップシナリオは、次のとおりです:
-- The client application tries to connect to the server using the discovery service (based upon the server name, broadcasted on the same subnet).
- OR
- If valid connection information is stored in the "EnginedServer.4DLink" file within the client application, the client application tries to connect to the specified server address.
-- If this fails, the client application tries to connect to the server using information stored in the application's user preferences folder ("lastServer.xml" file, see last step).
-- If this fails, the client application displays a connection error dialog box.
- - If the user clicks on the **Select...** button (when allowed by the 4D developer at the build step, see below), the standard "Server connection" dialog box is displayed.
- - If the user clicks on the **Quit** button, the client application quits.
-- If the connection is successful, the client application saves this connection information in the application's user preferences folder for future use.
+- クライアントアプリは検索サービスを使用してサーバーへの接続を試みます (同じサブネット内に公開されたサーバー名に基づいて検索します)。
+ または
+ クライアントアプリ内の "EnginedServer.4DLink" ファイルに有効な接続情報が保存されていた場合、クライアントアプリは指定されたサーバーアドレスへ接続を試みます。
+- これが失敗した場合、クライアントアプリケーションは、アプリケーションのユーザー設定フォルダーに保存されている情報 ("lastServer.xml" ファイル、詳細は後述参照) を使用してサーバーへの接続を試みます。
+- これが失敗した場合、クライアントアプリケーションは接続エラーダイアログボックスを表示します。
+ - ユーザーが **選択...** ボタンをクリックした場合、標準の "サーバー接続" ダイアログボックスが表示されます (ビルドの段階で許可されていた場合に限ります。詳細は後述)。
+ - ユーザーが **終了** ボタンをクリックした場合、クライアントアプリケーションは終了します。
+- 接続が成功した場合、クライアントアプリケーションは将来の使用のために、その接続情報をアプリケーションのユーザー設定フォルダーに保存します。
-### Storing the last server path
+### 最後に使用したサーバーパスを保存する
-The last used and validated server path is automatically saved in a file named "lastServer.xml" in the application's user preferences folder. This folder is stored at the following location:
+最後に使用され検証されたサーバーパスは、アプリケーションのユーザー設定フォルダー内の "lastServer.xml" ファイルに自動的に保存されます。 このフォルダは次の場所に保存されています:
```code4d
userPrefs:=Get 4D folder(Active 4D Folder)
```
-This mechanism addresses the case where the primary targeted server is temporary unavailable for some reason (maintenance mode for example). When this case occurs for the first time, the server selection dialog box is displayed (if allowed, see below) and the user can manually select an alternate server, whose path is then saved if the connection is successful. Any subsequent unavailability would be handled automatically through the "lastServer.xml" path information.
+このメカニズムは、最初に指定したサーバーが何らかの理由 (例えばメンテナンスモードなど) で一時的に使用できないケースに対応します。 こういった状態が初めて起こったときにはサーバー選択ダイアログボックスが表示され (ただし許可されていた場合に限ります、後述参照)、ほかのサーバーをユーザーが手動で選択すると、その接続が成功した場合にはそのパスが保存されます。 それ以降に接続ができなかった場合には、"lastServer.xml" のパス情報によって自動的に対処されます。
-> - When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv17R6/4D/17-R6/IPAddress.300-4465710.en.html) key in the "BuildApp.4DSettings" file. The mechanism addresses cases of temporary unavailability.
-> - Pressing the **Alt/Option** key at startup to display the server selection dialog box is still supported in all cases.
+> - ネットワークの設定などの影響で、クライアントアプリが恒久的に検索サービスを使ったサーバー接続ができない場合には、ビルド時にあらかじめ "BuildApp.4DSettings" ファイル内の [IPAddress](https://doc.4d.com/4Dv18/4D/18/IPAddress.300-4671089.ja.html) キーでホスト名を指定しておくことが推奨されます。 このメカニズムはあくまで一時的な接続不可状態の場合を想定しています。
+> - スタートアップ時に **Alt/Option** キーを押しながら起動してサーバー接続ダイアログボックスを表示する方法は、すべての場合において可能です。
-### Availability of the server selection dialog box in case of error
+### エラー時のサーバー選択ダイアログボックス使用の可・不可
-You can choose whether or not to display the standard server selection dialog box on merged client applications when the server cannot be reached. The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv17R6/4D/17-R6/ServerSelectionAllowed.300-4465714.en.html) XML key on the machine where the application was built:
+組み込みクライアントアプリがサーバーに接続できない場合、標準のサーバー選択ダイアログボックスを表示するかどうかは設定しておくことができます。 この設定は、アプリケーションをビルドするマシン上の [ServerSelectionAllowedXML](https://doc.4d.com/4Dv18/4D/18/ServerSelectionAllowed.300-4671093.ja.html) キーの値によって制御されます:
-- **Display of an error message with no access possible to the server selection dialog box**. Default operation. The application can only quit.
- `ServerSelectionAllowed`: **False** or key omitted 
+- **エラーメッセージを表示し、サーバー選択ダイアログボックスを表示させない** デフォルトの挙動です。 アプリケーションは終了する以外の選択肢がありません。
+ `ServerSelectionAllowed`: **False** 値、またはキーを省略 
-- **Display of an error message with access to the server selection dialog box possible**. The user can access the server selection window by clicking on the **Select...** button.
- `ServerSelectionAllowed`: **True**  
\ No newline at end of file
+- **エラーメッセージを表示し、サーバー選択ダイアログボックスへのアクセスを可能にする** ユーザーは **選択...** ボタンをクリックする事によってサーバー選択ウィンドウにアクセスできます。
+ `ServerSelectionAllowed`: **True**値  
\ No newline at end of file
diff --git a/website/translated_docs/ja/Project/overview.md b/website/translated_docs/ja/Project/overview.md
index aa7d5020c043c9..6944efd66d2090 100644
--- a/website/translated_docs/ja/Project/overview.md
+++ b/website/translated_docs/ja/Project/overview.md
@@ -1,6 +1,6 @@
---
-id: 概要
-title: Overview
+id: overview
+title: 概要
---
データベースストラクチャーからユーザーインターフェース (フォームやメニュー、ユーザー設定、その他必要なリソース含む) まで、4D データベースアプリケーションのすべてのソースコードが 4D プロジェクトには格納されています。 4D プロジェクトは主にテキストファイルによって構成されています。
diff --git a/website/translated_docs/ja/REST/$asArray.md b/website/translated_docs/ja/REST/$asArray.md
new file mode 100644
index 00000000000000..a0b96f0c786132
--- /dev/null
+++ b/website/translated_docs/ja/REST/$asArray.md
@@ -0,0 +1,124 @@
+---
+id: asArray
+title: '$asArray'
+---
+
+
+Returns the result of a query in an array (i.e. a collection) instead of a JSON object.
+
+
+## 説明
+
+If you want to receive the response in an array, you just have to add `$asArray` to your REST request (*e.g.*, `$asArray=true`).
+
+## 例題
+Here is an example or how to receive the response in an array.
+
+ `GET /rest/Company/?$filter="name begin a"&$top=3&$asArray=true`
+
+**Response**:
+
+````
+[
+ {
+ "__KEY": 15,
+ "__STAMP": 0,
+ "ID": 15,
+ "name": "Alpha North Yellow",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 82000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ },
+ {
+ "__KEY": 34,
+ "__STAMP": 0,
+ "ID": 34,
+ "name": "Astral Partner November",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 90000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ },
+ {
+ "__KEY": 47,
+ "__STAMP": 0,
+ "ID": 47,
+ "name": "Audio Production Uniform",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 28000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ }
+]
+````
+
+The same data in its default JSON format:
+
+````
+{
+ "__entityModel": "Company",
+ "__GlobalStamp": 50,
+ "__COUNT": 52,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "15",
+ "__TIMESTAMP": "2018-03-28T14:38:07.434Z",
+ "__STAMP": 0,
+ "ID": 15,
+ "name": "Alpha North Yellow",
+ "creationDate": "0!0!0",
+ "revenues": 82000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(15)/employees?$expand=employees"
+ }
+ }
+ },
+ {
+ "__KEY": "34",
+ "__TIMESTAMP": "2018-03-28T14:38:07.439Z",
+ "__STAMP": 0,
+ "ID": 34,
+ "name": "Astral Partner November",
+ "creationDate": "0!0!0",
+ "revenues": 90000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(34)/employees?$expand=employees"
+ }
+ }
+ },
+ {
+ "__KEY": "47",
+ "__TIMESTAMP": "2018-03-28T14:38:07.443Z",
+ "__STAMP": 0,
+ "ID": 47,
+ "name": "Audio Production Uniform",
+ "creationDate": "0!0!0",
+ "revenues": 28000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(47)/employees?$expand=employees"
+ }
+ }
+ }
+ ],
+"__SENT": 3
+}
+````
+
+
diff --git a/website/translated_docs/ja/REST/$atomic_$atonce.md b/website/translated_docs/ja/REST/$atomic_$atonce.md
new file mode 100644
index 00000000000000..c309060e8d42c6
--- /dev/null
+++ b/website/translated_docs/ja/REST/$atomic_$atonce.md
@@ -0,0 +1,97 @@
+---
+id: atomic_$atonce
+title: '$atomic/$atonce'
+---
+
+
+Allows the actions in the REST request to be in a transaction. If there are no errors, the transaction is validated. Otherwise, the transaction is cancelled.
+
+
+## 説明
+When you have multiple actions together, you can use `$atomic/$atonce` to make sure that none of the actions are completed if one of them fails. You can use either `$atomic` or `$atonce`.
+
+
+## 例題
+We call the following REST request in a transaction.
+
+ `POST /rest/Employee?$method=update&$atomic=true`
+
+**POST data**:
+
+````
+[
+{
+ "__KEY": "1",
+ "__STAMP": 5,
+ "salary": 45000
+},
+{
+ "__KEY": "2",
+ "__STAMP": 10,
+ "salary": 99000
+}
+]
+````
+
+We get the following error in the second entity and therefore the first entity is not saved either:
+
+````
+{
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 5,
+ "uri": "http://127.0.0.1:8081/rest/Employee(1)",
+ "ID": 1,
+ "firstName": "John",
+ "lastName": "Smith",
+ "fullName": "John Smith",
+ "gender": false,
+ "telephone": "4085551111",
+ "salary": 45000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 2,
+ "ID": 2,
+ "firstName": "Paula",
+ "lastName": "Miller",
+ "fullName": "Paula Miller",
+ "telephone": "4085559999",
+ "salary": 36000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ },
+ "__ERROR": [
+ {
+ "message": "Value cannot be greater than 60000",
+ "componentSignature": "dbmg",
+ "errCode": 1569
+ },
+ {
+ "message": "Entity fails validation",
+ "componentSignature": "dbmg",
+ "errCode": 1570
+ },
+ {
+ "message": "The entity# 1 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+ }
+ ]
+}
+````
+> Even though the salary for the first entity has a value of 45000, this value was not saved to the server and the *timestamp (__STAMP)* was not modified either. If we reload the entity, we will see the previous value.
diff --git a/website/translated_docs/ja/REST/$attributes.md b/website/translated_docs/ja/REST/$attributes.md
new file mode 100644
index 00000000000000..18e30717e906ff
--- /dev/null
+++ b/website/translated_docs/ja/REST/$attributes.md
@@ -0,0 +1,106 @@
+---
+id: attributes
+title: '$attributes'
+---
+
+Allows selecting the related attribute(s) to get from the dataclass (*e.g.*, `Company(1)?$attributes=employees.lastname` or `Employee?$attributes=employer.name`).
+
+
+## 説明
+
+When you have relation attributes in a dataclass, use `$attributes` to define the path of attributes whose values you want to get for the related entity or entities.
+
+You can apply `$attributes` to an entity (*e.g.*, People(1)) or an entity selection (*e.g.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) .
+
+
+- If `$attributes` is not specified in a query, or if the "*" value is passed, all available attributes are extracted. **Related entity** attributes are extracted with the simple form: an object with property `__KEY` (primary key). **Related entities** attributes are not extracted.
+
+- If `$attributes` is specified for **related entity** attributes:
+ - `$attributes=relatedEntity`: the related entity is returned with simple form (deferred __KEY property (primary key)).
+ - `$attributes=relatedEntity.*`: all the attributes of the related entity are returned
+ - `$attributes=relatedEntity.attributePath1, relatedEntity.attributePath2, ...`: only those attributes of the related entity are returned.
+
+
+- If `$attributes` is specified for **related entities** attributes:
+ - `$attributes=relatedEntities.*`: all the properties of all the related entities are returned
+ - `$attributes=relatedEntities.attributePath1, relatedEntities.attributePath2, ...`: only those attributes of the related entities are returned.
+
+
+
+## Example with related entities
+
+If we pass the following REST request for our Company datastore class (which has a relation attribute "employees"):
+
+ `GET /rest/Company(1)/?$attributes=employees.lastname`
+
+**Response**:
+
+```
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__TIMESTAMP": "2018-04-25T14:41:16.237Z",
+ "__STAMP": 2,
+ "employees": {
+ "__ENTITYSET": "/rest/Company(1)/employees?$expand=employees",
+ "__GlobalStamp": 50,
+ "__COUNT": 135,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2019-12-01T20:18:26.046Z",
+ "__STAMP": 5,
+ "lastname": "ESSEAL"
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2019-12-04T10:58:42.542Z",
+ "__STAMP": 6,
+ "lastname": "JONES"
+ },
+ ...
+ }
+}
+```
+
+If you want to get all attributes from employees:
+
+ `GET /rest/Company(1)/?$attributes=employees.*`
+
+If you want to get last name and job name attributes from employees:
+
+ `GET /rest/Company(1)/?$attributes=employees.lastname,employees.jobname`
+
+
+## Example with related entity
+
+If we pass the following REST request for our Employee datastore class (which has several relation attributes, including "employer"):
+
+
+ `GET /rest/Employee(1)?$attributes=employer.name`
+
+**Response**:
+
+```
+{
+ "__entityModel": "Employee",
+ "__KEY": "1",
+ "__TIMESTAMP": "2019-12-01T20:18:26.046Z",
+ "__STAMP": 5,
+ "employer": {
+ "__KEY": "1",
+ "__TIMESTAMP": "2018-04-25T14:41:16.237Z",
+ "__STAMP": 0,
+ "name": "Adobe"
+ }
+}
+```
+
+If you want to get all attributes of the employer:
+
+ `GET /rest/Employee(1)?$attributes=employer.*`
+
+If you want to get the last names of all employees of the employer:
+
+ `GET /rest/Employee(1)?$attributes=employer.employees.lastname`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$binary.md b/website/translated_docs/ja/REST/$binary.md
new file mode 100644
index 00000000000000..3f16de1721f8e6
--- /dev/null
+++ b/website/translated_docs/ja/REST/$binary.md
@@ -0,0 +1,21 @@
+---
+id: binary
+title: '$binary'
+---
+
+Pass "true" to save the BLOB as a document (must also pass `$expand={blobAttributeName}`)
+
+## 説明
+
+`$binary` allows you to save the BLOB as a document. You must also use the [`$expand`]($expand.md) command in conjunction with it.
+
+When you make the following request:
+
+```
+GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt
+```
+
+You will be asked where to save the BLOB to disk:
+
+
+
diff --git a/website/translated_docs/ja/REST/$catalog.md b/website/translated_docs/ja/REST/$catalog.md
new file mode 100644
index 00000000000000..e19e8b78d32058
--- /dev/null
+++ b/website/translated_docs/ja/REST/$catalog.md
@@ -0,0 +1,337 @@
+---
+id: catalog
+title: '$catalog'
+---
+
+
+The catalog describes all the dataclasses and attributes available in the datastore.
+
+
+## Available syntaxes
+
+| Syntax | 例題 | 説明 |
+| --------------------------------------------- | -------------------- | -------------------------------------------------------------------------------- |
+| [**$catalog**](#catalog) | `/$catalog` | Returns a list of the dataclasses in your project along with two URIs |
+| [**$catalog/$all**](#catalogall) | `/$catalog/$all` | Returns information about all of your project's dataclasses and their attributes |
+| [**$catalog/{dataClass}**](#catalogdataclass) | `/$catalog/Employee` | Returns information about a dataclass and its attributes |
+
+
+## $catalog
+Returns a list of the dataclasses in your project along with two URIs: one to access the information about its structure and one to retrieve the data in the dataclass
+
+
+### 説明
+
+When you call `$catalog`, a list of the dataclasses is returned along with two URIs for each dataclass in your project's datastore.
+
+Only the exposed dataclasses are shown in this list for your project's datastore. For more information, please refer to [**Exposing tables and fields**](configuration.md#exposing-tables-and-fields) section.
+
+Here is a description of the properties returned for each dataclass in your project's datastore:
+
+
+| Property | タイプ | 説明 |
+| -------- | --- | --------------------------------------------------------------------------------- |
+| name | 文字 | Name of the dataclass. |
+| uri | 文字 | A URI allowing you to obtain information about the |dataclass and its attributes. |
+| dataURI | 文字 | A URI that allows you to view the data in the dataclass. |
+
+
+### 例題
+
+`GET /rest/$catalog`
+
+**Result**:
+
+````
+{
+ dataClasses: [
+ {
+ name: "Company",
+ uri: "http://127.0.0.1:8081/rest/$catalog/Company",
+ dataURI: "http://127.0.0.1:8081/rest/Company"
+ },
+ {
+ name: "Employee",
+ uri: "http://127.0.0.1:8081/rest/$catalog/Employee",
+ dataURI: "http://127.0.0.1:8081/rest/Employee"
+ }
+ ]
+}
+````
+
+
+## $catalog/$all
+
+Returns information about all of your project's dataclasses and their attributes
+
+### 説明
+
+Calling `$catalog/$all` allows you to receive detailed information about the attributes in each of the datastore classes in your project's active model. Remember that the scope for the datastore classes and their attributes must be **Public** for any information to be returned.
+
+For more information about what is returned for each datastore class and its attributes, use [`$catalog/{dataClass}`](#catalogdataClass).
+
+
+### 例題
+
+`GET /rest/$catalog/$all`
+
+**Result**:
+
+````
+{
+
+ "dataClasses": [
+ {
+ "name": "Company",
+ "className": "Company",
+ "collectionName": "CompanyCollection",
+ "scope": "public",
+ "dataURI": "/rest/Company",
+ "attributes": [
+ {
+ "name": "ID",
+ "kind": "storage",
+ "scope": "public",
+ "indexed": true,
+ "type": "long",
+ "identifying": true
+ },
+ {
+ "name": "name",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "revenues",
+ "kind": "storage",
+ "scope": "public",
+ "type": "number"
+ },
+ {
+ "name": "staff",
+ "kind": "relatedEntities",
+ "matchColumn": "employees,staff",
+ "scope": "public",
+ "type": "EmployeeCollection",
+ "reversePath": true,
+ "path": "employer"
+ },
+ {
+ "name": "url",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ }
+ ],
+ "key": [
+ {
+ "name": "ID"
+ }
+ ]
+ },
+ {
+ "name": "Employee",
+ "className": "Employee",
+ "collectionName": "EmployeeCollection",
+ "scope": "public",
+ "dataURI": "/rest/Employee",
+ "attributes": [
+ {
+ "name": "ID",
+ "kind": "storage",
+ "scope": "public",
+ "indexed": true,
+ "type": "long",
+ "identifying": true
+ },
+ {
+ "name": "firstname",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "lastname",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "employer",
+ "kind": "relatedEntity",
+ "scope": "public",
+ "type": "Company",
+ "path": "Company"
+ }
+ ],
+ "key": [
+ {
+ "name": "ID"
+ }
+ ]
+ }
+ ]
+}
+````
+
+
+## $catalog/{dataClass}
+
+Returns information about a dataclass and its attributes
+
+### 説明
+
+Calling `$catalog/{dataClass}` for a specific dataclass will return the following information about the dataclass and the attributes it contains. If you want to retrieve this information for all the datastore classes in your project's datastore, use [`$catalog/$all`](#catalogall).
+
+The information you retrieve concerns the following:
+
+* Dataclass
+* Attribute(s)
+* Method(s) if any
+* Primary key
+
+### DataClass
+
+The following properties are returned for an exposed dataclass:
+
+
+| Property | タイプ | 説明 |
+| -------------- | --- | -------------------------------------------------------------------------------------------------- |
+| name | 文字 | Name of the dataclass |
+| collectionName | 文字 | Collection name of the dataclass |
+| scope | 文字 | Scope for the dataclass (note that only datastore classes whose **Scope** is public are displayed) |
+| dataURI | 文字 | A URI to the data in the dataclass |
+
+
+### Attribute(s)
+
+Here are the properties for each exposed attribute that are returned:
+
+| Property | タイプ | 説明 |
+| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| name | 文字 | Attribute name. |
+| kind | 文字 | Attribute type (storage, calculated, relatedEntity, and alias). |
+| scope | 文字 | Scope of the attribute (only those attributes whose scope is Public will appear). |
+| indexed | 文字 | If any **Index Kind** was selected, this property will return true. Otherwise, this property does not appear. |
+| type | 文字 | Attribute type (bool, blob, byte, date, duration, image, long, long64, number, string, uuid, or word) or the datastore class for a N->1 relation attribute. |
+| minLength | 数値 | This property returns the value entered for the **Min Length** property, if one was entered. |
+| maxLength | 数値 | This property returns the value entered for the **Max Length** property, if one was entered. |
+| autoComplete | ブール | This property returns True if the **Autocomplete** property was checked. Otherwise, this property does not appear. |
+| identifying | ブール | This property returns True if the **Identifying** property was checked. Otherwise, this property does not appear. |
+| multiLine | ブール | This property returns True if the **Multiline** property was checked. Otherwise, this property does not appear. |
+| path | 文字 | For an alias attribute, the type is a path (*e.g.*, employer.name) |
+| readOnly | ブール | This property is True if the attribute is of type calculated or alias. |
+| defaultFormat | オブジェクト | If you define a format for the attribute in the **Default Format** property, it will appear in the "format" property. |
+
+### Method(s)
+
+Defines the project methods asociated to the dataclass, if any.
+
+### Primary Key
+
+The key object returns the **name** of the attribute defined as the **Primary Key** for the datastore class.
+
+
+### 例題
+You can retrieve the information regarding a specific datastore class.
+
+`GET /rest/$catalog/Employee`
+
+**Result**:
+
+````
+{
+ name: "Employee",
+ className: "Employee",
+ collectionName: "EmployeeCollection",
+ scope: "public",
+ dataURI: "http://127.0.0.1:8081/rest/Employee",
+ defaultTopSize: 20,
+ extraProperties: {
+ panelColor: "#76923C",
+ __CDATA: "\n\n\t\t\n",
+ panel: {
+ isOpen: "true",
+ pathVisible: "true",
+ __CDATA: "\n\n\t\t\t\n",
+ position: {
+ X: "394",
+ Y: "42"
+ }
+ }
+ },
+ attributes: [
+ {
+ name: "ID",
+ kind: "storage",
+ scope: "public",
+ indexed: true,
+ type: "long",
+ identifying: true
+ },
+ {
+ name: "firstName",
+ kind: "storage",
+ scope: "public",
+ type: "string"
+ },
+ {
+ name: "lastName",
+ kind: "storage",
+ scope: "public",
+ type: "string"
+ },
+ {
+ name: "fullName",
+ kind: "calculated",
+ scope: "public",
+ type: "string",
+ readOnly: true
+ },
+ {
+ name: "salary",
+ kind: "storage",
+ scope: "public",
+ type: "number",
+ defaultFormat: {
+ format: "$###,###.00"
+ }
+ },
+ {
+ name: "photo",
+ kind: "storage",
+ scope: "public",
+ type: "image"
+ },
+ {
+ name: "employer",
+ kind: "relatedEntity",
+ scope: "public",
+ type: "Company",
+ path: "Company"
+ },
+ {
+ name: "employerName",
+ kind: "alias",
+ scope: "public",
+ type: "string",
+ path: "employer.name",
+ readOnly: true
+ },
+ {
+ name: "description",
+ kind: "storage",
+ scope: "public",
+ type: "string",
+ multiLine: true
+ },
+ ],
+ key: [
+ {
+ name: "ID"
+ }
+ ]
+}
+````
+
diff --git a/website/translated_docs/ja/REST/$compute.md b/website/translated_docs/ja/REST/$compute.md
new file mode 100644
index 00000000000000..bc360f3879a6a2
--- /dev/null
+++ b/website/translated_docs/ja/REST/$compute.md
@@ -0,0 +1,84 @@
+---
+id: compute
+title: '$compute'
+---
+
+Calculate on specific attributes (*e.g.*, `Employee/salary/?$compute=sum)` or in the case of an Object attribute (*e.g.*, Employee/objectAtt.property1/?$compute=sum)
+
+
+## 説明
+
+This parameter allows you to do calculations on your data.
+
+If you want to perform a calculation on an attribute, you write the following:
+
+ `GET /rest/Employee/salary/?$compute=$all`
+
+If you want to pass an Object attribute, you must pass one of its property. たとえば:
+
+ `GET /rest/Employee/objectAtt.property1/?$compute=$all`
+
+You can use any of the following keywords:
+
+
+| Keyword | 説明 |
+| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| $all | A JSON object that defines all the functions for the attribute (average, count, min, max, and sum for attributes of type Number and count, min, and max for attributes of type String |
+| average | Get the average on a numerical attribute |
+| count | Get the total number in the collection or datastore class (in both cases you must specify an attribute) |
+| min | Get the minimum value on a numerical attribute or the lowest value in an attribute of type String |
+| max | Get the maximum value on a numerical attribute or the highest value in an attribute of type String |
+| sum | Get the sum on a numerical attribute |
+
+
+## 例題
+
+If you want to get all the computations for an attribute of type Number, you can write:
+
+ `GET /rest/Employee/salary/?$compute=$all`
+
+**Response**:
+
+````
+{
+ "salary": {
+ "count": 4,
+ "sum": 335000,
+ "average": 83750,
+ "min": 70000,
+ "max": 99000
+ }
+}
+````
+
+If you want to get all the computations for an attribute of type String, you can write:
+
+ `GET /rest/Employee/firstName/?$compute=$all`
+
+**Response**:
+
+````
+{
+ "salary": {
+ "count": 4,
+ "min": Anne,
+ "max": Victor
+ }
+}
+````
+
+If you want to just get one calculation on an attribute, you can write the following:
+
+ `GET /rest/Employee/salary/?$compute=sum`
+
+**Response**:
+
+`235000`
+
+If you want to perform a calculation on an Object attribute, you can write the following:
+
+ `GET /rest/Employee/objectAttribute.property1/?$compute=sum`
+
+Response:
+
+`45`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$directory.md b/website/translated_docs/ja/REST/$directory.md
new file mode 100644
index 00000000000000..f1dbb373030a39
--- /dev/null
+++ b/website/translated_docs/ja/REST/$directory.md
@@ -0,0 +1,182 @@
+---
+id: directory
+title: '$directory'
+---
+
+The directory handles user access through REST requests.
+
+
+## Available syntaxes
+
+| Syntax | Method | 説明 |
+| --------------------------------------------------------------------- | ------ | ---------------------------------------------------------------- |
+| [**$directory/currentUser**](#directorycurrentuser) | `GET` | Returns information about the current user |
+| [**$directory/currentUserBelongsTo**](#directorycurrentuserbelongsto) | `POST` | Indicates if the current user belongs to a specific group |
+| [**$directory/login**](#directorylogin) | `POST` | Opens a REST session on your 4D application and logs in the user |
+| [**$directory/logout**](#directorylogout) | `GET` | Logs out the current user |
+
+
+
+## $directory/currentUser
+Returns information about the current user
+
+
+### 説明
+By calling `$directory/currentUser` after a user has logged in, you can retrieve the following information:
+
+| Property | タイプ | 説明 |
+| -------- | --- | ------------------------------------------ |
+| userName | 文字 | Username used to log into the application. |
+| fullName | 文字 | Full name of the user. |
+| ID | 文字 | UUID referencing the user. |
+
+
+### 例題
+ Call `$directory/currentUser` to find out the current user of your application.
+
+`GET /rest/$directory/currentUser`
+
+**Result**:
+
+````
+{
+ "result": {
+ "userName": "jsmith",
+ "fullName": "John Smith",
+ "ID": "12F169764253481E89F0E4EA8C1D791A"
+ }
+}
+````
+
+
+If no user has been logged in, the result is:
+
+````
+{
+ "result": null
+}
+````
+
+
+## $directory/currentUserBelongsTo
+
+Indicates if the current user belongs to a specific GroupID or GroupName.
+
+### 説明
+To find out if the currently logged in user belongs to a specific group, use `$directory/currentUserBelongsTo`. You can pass either the group ID (which is the group's UUID reference number) or its name as defined in the datastore directory.
+
+If we want to check to see if the current user is a member of the Sales group, we must pass either *GroupID* or *GroupName* in the `POST`.
+
+### 例題
+Below is an example of how to pass either the GroupID or GroupName in the `POST` data.
+
+`POST /rest/$directory/currentUserBelongsTo`
+
+**POST data**:
+
+`["88BAF858143D4B13B26AF48C7A5A7A68"]`
+
+or
+
+`["Sales"]`
+
+**Result**:
+
+If the current user is in the group specified in the array, the response will be:
+
+````
+{
+ "result": true
+}
+````
+
+Otherwise, it will return:
+
+````
+{
+ "result": false
+}
+````
+
+
+## $directory/login
+
+Opens a REST session on your 4D application and logs in the user.
+
+### 説明
+Use `$directory/login` to open a session in your 4D application through REST and login a user. You can also modify the default 4D session timeout.
+
+All parameters must be passed in **headers** of a POST method:
+
+| Header key | Header value |
+| ------------------ | ---------------------------------------------------------------------------- |
+| username-4D | User - Not mandatory |
+| password-4D | Password - Not mandatory |
+| hashed-password-4D | Hashed password - Not mandatory |
+| session-4D-length | Session inactivity timeout (minutes). Cannot be less than 60 - Not mandatory |
+
+
+### 例題
+
+```code4d
+C_TEXT($response;$body_t)
+ARRAY TEXT($hKey;3)
+ARRAY TEXT($hValues;3)
+$hKey{1}:="username-4D"
+$hKey{2}:="hashed-password-4D"
+$hKey{3}:="session-4D-length"
+$hValues{1}:="john"
+$hValues{2}:=Generate digest("123";4D digest)
+$hValues{3}:=120
+$httpStatus:=HTTP Request(HTTP POST method;"database.example.com:9000";$body_t;$response;$hKey;$hValues)
+```
+
+**Result**:
+
+If the login was successful, the result will be:
+
+```
+{
+ "result": true
+}
+```
+
+Otherwise, the response will be:
+
+```
+{
+ "result": false
+}
+```
+
+
+## $directory/logout
+
+
+Logs out the current user.
+
+### 説明
+To log out the current user from your application, use `$directory/logout`.
+
+### 例題
+You call `$directory/logout` to log the current user out of the application.
+
+`GET /rest/$directory/logout`
+
+**Result**:
+
+If the logout was successful, the result will be:
+
+````
+{
+ "result": true
+}
+````
+
+Otherwise, the response will be:
+
+````
+{
+ "result": false
+}
+````
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$distinct.md b/website/translated_docs/ja/REST/$distinct.md
new file mode 100644
index 00000000000000..344376870c9cd2
--- /dev/null
+++ b/website/translated_docs/ja/REST/$distinct.md
@@ -0,0 +1,29 @@
+---
+id: distinct
+title: '$distinct'
+---
+
+
+Returns the distinct values for a specific attribute in a collection (*e.g.*, `Company/name?$filter="name=a*"&$distinct=true`)
+
+
+## 説明
+
+`$distinct` allows you to return a collection containing the distinct values for a query on a specific attribute. Only one attribute in the dataclass can be specified. Generally, the String type is best; however, you can also use it on any attribute type that could contain multiple values.
+
+You can also use `$skip` and `$top/$limit` as well, if you'd like to navigate the selection before it's placed in an array.
+
+## 例題
+In our example below, we want to retrieve the distinct values for a company name starting with the letter "a":
+
+ `GET /rest/Company/name?$filter="name=a*"&$distinct=true`
+
+**Response**:
+
+````
+[
+ "Adobe",
+ "Apple"
+]
+````
+
diff --git a/website/translated_docs/ja/REST/$entityset.md b/website/translated_docs/ja/REST/$entityset.md
new file mode 100644
index 00000000000000..c078f2ee92712e
--- /dev/null
+++ b/website/translated_docs/ja/REST/$entityset.md
@@ -0,0 +1,98 @@
+---
+id: entityset
+title: '$entityset'
+---
+
+After creating an entity set by using `$method=entityset`, you can then use it subsequently.
+
+
+## Available syntaxes
+
+| Syntax | 例題 | 説明 |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------ |
+| [**$entityset/{entitySetID}**](#entitysetentitySetID) | `/People/$entityset/0ANUMBER` | Retrieves an existing entity set |
+| [**$entityset/{entitySetID}?$operator...&$otherCollection**](#entitysetentitysetidoperatorothercollection) | `/Employee/$entityset/0ANUMBER?$logicOperator=AND &$otherCollection=C0ANUMBER` | Creates a new entity set from comparing existing entity sets |
+
+
+
+
+## $entityset/{entitySetID}
+
+Retrieves an existing entity set (*e.g.*, `People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`)
+
+
+### 説明
+
+This syntax allows you to execue any operation on a defined entity set.
+
+Because entity sets have a time limit on them (either by default or after calling `$timeout` with your own limit), you can call `$savedfilter` and `$savedorderby` to save the filter and order by statements when you create an entity set.
+
+When you retrieve an existing entity set stored in 4D Server's cache, you can also apply any of the following to the entity set: [`$expand`]($expand.md), [`$filter`]($filter), [`$orderby`]($orderby), [`$skip`]($skip.md), and [`$top/$limit`](top_$limit.md).
+
+### 例題
+
+After you create an entity set, the entity set ID is returned along with the data. You call this ID in the following manner:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7`
+
+
+## $entityset/{entitySetID}?$operator...&$otherCollection
+
+Create another entity set based on previously created entity sets
+
+| Parameter | タイプ | 説明 |
+| ---------------- | --- | -------------------------------------------------------------- |
+| $operator | 文字 | One of the logical operators to test with the other entity set |
+| $otherCollection | 文字 | Entity set ID |
+
+
+
+### 説明
+
+After creating an entity set (entity set #1) by using `$method=entityset`, you can then create another entity set by using the `$entityset/{entitySetID}?$operator... &$otherCollection` syntax, the `$operator` property (whose values are shown below), and another entity set (entity set #2) defined by the `$otherCollection` property. The two entity sets must be in the same datastore class.
+
+You can then create another entity set containing the results from this call by using the `$method=entityset` at the end of the REST request.
+
+Here are the logical operators:
+
+| 演算子 | 説明 |
+| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| AND | Returns the entities in common to both entity sets |
+| OR | Returns the entities in both entity sets |
+| EXCEPT | Returns the entities in entity set #1 minus those in entity set #2 |
+| INTERSECT | Returns either true or false if there is an intersection of the entities in both entity sets (meaning that least one entity is common in both entity sets) |
+> The logical operators are not case-sensitive, so you can write "AND" or "and".
+
+Below is a representation of the logical operators based on two entity sets. The red section is what is returned.
+
+**AND**
+
+
+
+**OR**
+
+
+
+**EXCEPT**
+
+
+
+
+The syntax is as follows:
+
+ `GET /rest/dataClass/$entityset/entitySetID?$logicOperator=AND&$otherCollection=entitySetID`
+
+### 例題
+In the example below, we return the entities that are in both entity sets since we are using the AND logical operator:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=AND&$otherCollection=C05A0D887C664D4DA1B38366DD21629B`
+
+If we want to know if the two entity sets intersect, we can write the following:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=intersect&$otherCollection=C05A0D887C664D4DA1B38366DD21629B`
+
+If there is an intersection, this query returns true. Otherwise, it returns false.
+
+In the following example we create a new entity set that combines all the entities in both entity sets:
+
+`GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=OR&$otherCollection=C05A0D887C664D4DA1B38366DD21629B&$method=entityset`
diff --git a/website/translated_docs/ja/REST/$expand.md b/website/translated_docs/ja/REST/$expand.md
new file mode 100644
index 00000000000000..37e2ce4803fcda
--- /dev/null
+++ b/website/translated_docs/ja/REST/$expand.md
@@ -0,0 +1,25 @@
+---
+id: expand
+title: '$expand'
+---
+
+
+Expands an image stored in an Image attribute (*e.g.*, `Employee(1)/photo?$imageformat=best&$expand=photo`) or Expands an BLOB attribute to save it.
+
+> **Compatibility**: For compatibility reasons, $expand can be used to expand a relational attribute (*e.g.*, `Company(1)?$expand=staff` or `Employee/?$filter="firstName BEGIN a"&$expand=employer`). It is however recommended to use [`$attributes`]($attributes.md) for this feature.
+
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your datastore class, you can write the following by also passing "true" to $binary:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$filter.md b/website/translated_docs/ja/REST/$filter.md
new file mode 100644
index 00000000000000..365f38703d69ad
--- /dev/null
+++ b/website/translated_docs/ja/REST/$filter.md
@@ -0,0 +1,100 @@
+---
+id: filter
+title: '$filter'
+---
+
+
+
+Allows to query the data in a dataclass or method *(e.g.*, `$filter="firstName!='' AND salary>30000"`)
+
+
+## 説明
+
+This parameter allows you to define the filter for your dataclass or method.
+
+### Using a simple filter
+
+A filter is composed of the following elements:
+
+**{attribute} {comparator} {value}**
+
+For example: `$filter="firstName=john"` where `firstName` is the **attribute**, `=` is the **comparator** and `john` is the **value**.
+
+### Using a complex filter
+
+A more compex filter is composed of the following elements, which joins two queries:
+
+**{attribute} {comparator} {value} {AND/OR/EXCEPT} {attribute} {comparator} {value}**
+
+
+For example: `$filter="firstName=john AND salary>20000"` where `firstName` and `salary` are attributes in the Employee datastore class.
+
+### Using the params property
+
+You can also use 4D's params property.
+
+**{attribute} {comparator} {placeholder} {AND/OR/EXCEPT} {attribute} {comparator} {placeholder}&$params='["{value1}","{value2}"]"'**
+
+For example: `$filter="firstName=:1 AND salary>:2"&$params='["john",20000]'"` where firstName and salary are attributes in the Employee datastore class.
+
+For more information regarding how to query data in 4D, refer to the [dataClass.query()](https://doc.4d.com/4Dv18/4D/18/dataClassquery.305-4505887.en.html) documentation.
+> When inserting quotes (') or double quotes ("), you must escape them using using their character code:
+>
+> Quotes ('): \u0027 Double quotes ("): \u0022
+>
+> For example, you can write the following when passing a value with a quote when using the *params* property: `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"`
+
+## Attribute
+
+If the attribute is in the same dataclass, you can just pass it directly (*e.g.*, `firstName`). However, if you want to query another dataclass, you must include the relation attribute name plus the attribute name, i.e. the path (*e.g.*, employer.name). The attribute name is case-sensitive (`firstName` is not equal to `FirstName`).
+
+You can also query attributes of type Object by using dot-notation. For example, if you have an attribute whose name is "objAttribute" with the following structure:
+
+```
+{
+ prop1: "this is my first property",
+ prop2: 9181,
+ prop3: ["abc","def","ghi"]
+}
+```
+
+You can search in the object by writing the following:
+
+`GET /rest/Person/?filter="objAttribute.prop2 == 9181"`
+
+## Comparator
+
+The comparator must be one of the following values:
+
+| Comparator | 説明 |
+| ---------- | ------------------------ |
+| = | equals to |
+| != | not equal to |
+| > | greater than |
+| >= | greater than or equal to |
+| < | less than |
+| <= | less than or equal to |
+| begin | begins with |
+
+## Examples
+
+In the following example, we look for all employees whose last name begins with a "j":
+
+```
+ GET /rest/Employee?$filter="lastName begin j"
+```
+
+In this example, we search the Employee datastore class for all employees whose salary is greater than 20,000 and who do not work for a company named Acme:
+
+```
+ GET /rest/Employee?$filter="salary>20000 AND
+ employer.name!=acme"&$orderby="lastName,firstName"
+```
+
+In this example, we search the Person datastore class for all the people whose number property in the anotherobj attribute of type Object is greater than 50:
+
+```
+ GET /rest/Person/?filter="anotherobj.mynum > 50"
+```
diff --git a/website/translated_docs/ja/REST/$imageformat.md b/website/translated_docs/ja/REST/$imageformat.md
new file mode 100644
index 00000000000000..a0fa89f2f16d5a
--- /dev/null
+++ b/website/translated_docs/ja/REST/$imageformat.md
@@ -0,0 +1,29 @@
+---
+id: imageformat
+title: '$imageformat'
+---
+
+Defines which image format to use for retrieving images (*e.g.*, `$imageformat=png`)
+
+## 説明
+
+Define which format to use to display images. By default, the best format for the image will be chosen. You can, however, select one of the following formats:
+
+| タイプ | 説明 |
+| ---- | ------------------------------ |
+| GIF | GIF format |
+| PNG | PNG format |
+| JPEG | JPEG format |
+| TIFF | TIFF format |
+| best | Best format based on the image |
+
+Once you have defined the format, you must pass the image attribute to [`$expand`]($expand.md) to load the photo completely.
+
+If there is no image to be loaded or the format doesn't allow the image to be loaded, the response will be empty.
+
+## 例題
+
+The following example defines the image format to JPEG regardless of the actual type of the photo and passes the actual version number sent by the server:
+
+`GET /rest/Employee(1)/photo?$imageformat=jpeg&$version=3&$expand=photo`
+
diff --git a/website/translated_docs/ja/REST/$info.md b/website/translated_docs/ja/REST/$info.md
new file mode 100644
index 00000000000000..e6c77c1590bc70
--- /dev/null
+++ b/website/translated_docs/ja/REST/$info.md
@@ -0,0 +1,147 @@
+---
+id: info
+title: '$info'
+---
+
+Returns information about the entity sets currently stored in 4D Server's cache as well as user sessions
+
+## 説明
+When you call this request for your project, you retrieve information in the following properties:
+
+| Property | タイプ | 説明 |
+| -------------- | ----- | ---------------------------------------------------------------------------------------------- |
+| cacheSize | 数値 | Wakanda Server's cache size. |
+| usedCache | 数値 | How much of Wakanda Server's cache has been used. |
+| entitySetCount | 数値 | Number of entity sets. |
+| entitySet | Array | An array in which each object contains information about each entity set. |
+| ProgressInfo | Array | An array containing information about progress indicator information. |
+| sessionInfo | Array | An array in which each object contains information about each user session. |
+| jsContextInfo | Array | An array containing one object that returns the information about the JavaScript context pool. |
+
+### entitySet
+For each entity set currently stored in 4D Server's cache, the following information is returned:
+
+
+| Property | タイプ | 説明 |
+| ------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| id | 文字 | A UUID that references the entity set. |
+| tableName | 文字 | Name of the datastore class. |
+| selectionSize | 数値 | Number of entities in the entity set. |
+| sorted | ブール | Returns true if the set was sorted (using `$orderby`) or false if it's not sorted. |
+| refreshed | 日付 | When the entity set was created or the last time it was used. |
+| expires | 日付 | When the entity set will expire (this date/time changes each time when the entity set is refreshed). The difference between refreshed and expires is the timeout for an entity set. This value is either two hours by default or what you defined using `$timeout`. |
+
+For information about how to create an entity set, refer to `$method=entityset`. If you want to remove the entity set from 4D Server's cache, use `$method=release`.
+> 4D also creates its own entity sets for optimization purposes, so the ones you create with `$method=entityset` are not the only ones returned.
+> **IMPORTANT** If your project is in **Controlled Admin Access Mode**, you must first log into the project as a user in the Admin group.
+
+### sessionInfo
+
+For each user session, the following information is returned in the *sessionInfo* array:
+
+| Property | タイプ | 説明 |
+| ---------- | --- | ------------------------------------------------------------ |
+| sessionID | 文字 | A UUID that references the session. |
+| userID | 文字 | A UUID that references the user who runs the session. |
+| userName | 文字 | The name of the user who runs the session. |
+| lifeTime | 数値 | The lifetime of a user session in seconds (3600 by default). |
+| expiration | 日付 | The current expiration date and time of the user session. |
+
+### jsContextInfo
+
+The object in the **jsContextInfo** array details the JavaScript context pool:
+
+
+| Property | タイプ | 説明 |
+| --------------------- | --- | ------------------------------------------------------------------------------------- |
+| contextPoolSize | 数値 | Maximum number of reusable contexts that can be stored in the JS pool (50 by default) |
+| activeDebugger | ブール | Debugger state (false by default) |
+| usedContextCount | 数値 | Number of used contexts |
+| usedContextMaxCount | 数値 | Maximum number of contexts that have been used simultaneously |
+| reusableContextCount | 数値 | Number of reusable contexts (both used and unused) |
+| unusedContextCount | 数値 | Number of unused contexts |
+| createdContextCount | 数値 | Number of contexts created since the project was started |
+| destroyedContextCount | 数値 | Number of contexts destroyed since the project was started |
+
+## 例題
+
+Retrieve information about the entity sets currently stored in 4D Server's cache as well as user sessions:
+
+`GET /rest/$info`
+
+**Result**:
+
+```
+{
+cacheSize: 209715200,
+usedCache: 3136000,
+entitySetCount: 4,
+entitySet: [
+ {
+ id: "1418741678864021B56F8C6D77F2FC06",
+ tableName: "Company",
+ selectionSize: 1,
+ sorted: false,
+ refreshed: "2011-11-18T10:30:30Z",
+ expires: "2011-11-18T10:35:30Z"
+ },
+ {
+ id: "CAD79E5BF339462E85DA613754C05CC0",
+ tableName: "People",
+ selectionSize: 49,
+ sorted: true,
+ refreshed: "2011-11-18T10:28:43Z",
+ expires: "2011-11-18T10:38:43Z"
+ },
+ {
+ id: "F4514C59D6B642099764C15D2BF51624",
+ tableName: "People",
+ selectionSize: 37,
+ sorted: false,
+ refreshed: "2011-11-18T10:24:24Z",
+ expires: "2011-11-18T12:24:24Z"
+ }
+],
+ProgressInfo: [
+ {
+ UserInfo: "flushProgressIndicator",
+ sessions: 0,
+ percent: 0
+ },
+ {
+ UserInfo: "indexProgressIndicator",
+ sessions: 0,
+ percent: 0
+ }
+],
+sessionInfo: [
+ {
+ sessionID: "6657ABBCEE7C3B4089C20D8995851E30",
+ userID: "36713176D42DB045B01B8E650E8FA9C6",
+ userName: "james",
+ lifeTime: 3600,
+ expiration: "2013-04-22T12:45:08Z"
+ },
+ {
+ sessionID: "A85F253EDE90CA458940337BE2939F6F",
+ userID: "00000000000000000000000000000000",
+ userName: "default guest",
+ lifeTime: 3600,
+ expiration: "2013-04-23T10:30:25Z"
+}
+],
+jsContextInfo: [
+ {
+ "contextPoolSize": 50,
+ "activeDebugger": false,
+ "usedContextCount": 1,
+ "usedContextMaxCount": 1,
+ "reusableContextCount": 1,
+ "unusedContextCount": 0,
+ "createdContextCount": 4,
+ "destroyedContextCount": 3
+ }
+]
+}
+```
+> The progress indicator information listed after the entity sets is used internally by 4D.
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$method.md b/website/translated_docs/ja/REST/$method.md
new file mode 100644
index 00000000000000..9068414db1ac86
--- /dev/null
+++ b/website/translated_docs/ja/REST/$method.md
@@ -0,0 +1,420 @@
+---
+id: method
+title: '$method'
+---
+
+This parameter allows you to define the operation to execute with the returned entity or entity selection.
+
+## Available syntaxes
+
+| Syntax | 例題 | 説明 |
+| ----------------------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| [**$method=delete**](#methoddelete) | `POST /Employee?$filter="ID=11"& $method=delete` | Deletes the current entity, entity collection, or entity selection |
+| [**$method=entityset**](#methodentityset) | `GET /People/?$filter="ID>320"& $method=entityset& $timeout=600` | Creates an entity set in 4D Server's cache based on the collection of entities defined in the REST request |
+| [**$method=release**](#methodrelease) | `GET /Employee/$entityset/4CANUMBER?$method=release` | Releases an existing entity set stored in 4D Server's cache |
+| [**$method=subentityset**](#methodsubentityset) | `GET /Company(1)/staff?$expand=staff& $method=subentityset& $subOrderby=lastName ASC` | Creates an entity set based on the collection of related entities defined in the REST request |
+| [**$method=update**](#methodupdate) | `POST /Person/?$method=update` | Updates and/or creates one or more entities |
+| [**$method=validate**](#methodvalidate) | `POST /Employee/?$method=validate` | Validates the request when adding and/or modifying entities |
+
+
+
+
+
+## $method=delete
+
+Deletes the current entity, entity collection, or entity selection (created through REST)
+
+
+### 説明
+
+With `$method=delete`, you can delete an entity or an entire entity collection. You can define the collection of entities by using, for example, [`$filter`]($filter.md) or specifying one directly using [`{dataClass}({key})`](%7BdataClass%7D.html#dataclasskey) *(e.g.*, /Employee(22)).
+
+You can also delete the entities in an entity set, by calling [`$entityset/{entitySetID}`]($entityset.md#entitysetentitysetid).
+
+## 例題
+You can then write the following REST request to delete the entity whose key is 22:
+
+ `POST /rest/Employee(22)/?$method=delete`
+
+You can also do a query as well using $filter:
+
+ `POST /rest/Employee?$filter="ID=11"&$method=delete`
+
+You can also delete an entity set using $entityset/{entitySetID}:
+
+ `POST /rest/Employee/$entityset/73F46BE3A0734EAA9A33CA8B14433570?$method=delete`
+
+Response:
+
+```
+{
+ "ok": true
+}
+```
+
+
+
+## $method=entityset
+
+Creates an entity set in 4D Server's cache based on the collection of entities defined in the REST request
+
+### 説明
+
+When you create a collection of entities in REST, you can also create an entity set that will be saved in 4D Server's cache. The entity set will have a reference number that you can pass to `$entityset/{entitySetID}` to access it. By default, it is valid for two hours; however, you can modify that amount of time by passing a value (in seconds) to $timeout.
+
+If you have used `$savedfilter` and/or `$savedorderby` (in conjunction with `$filter` and/or `$orderby`) when you created your entity set, you can recreate it with the same reference ID even if it has been removed from 4D Server's cache.
+
+### 例題
+
+To create an entity set, which will be saved in 4D Server's cache for two hours, add `$method=entityset` at the end of your REST request:
+
+ `GET /rest/People/?$filter="ID>320"&$method=entityset`
+
+You can create an entity set that will be stored in 4D Server's cache for only ten minutes by passing a new timeout to `$timeout`:
+
+ `GET /rest/People/?$filter="ID>320"&$method=entityset&$timeout=600`
+
+You can also save the filter and order by, by passing true to `$savedfilter` and `$savedorderby`.
+> `$skip` and `$top/$limit` are not taken into consideration when saving an entity set.
+
+After you create an entity set, the first element, `__ENTITYSET`, is added to the object returned and indicates the URI to use to access the entity set:
+
+`__ENTITYSET: "http://127.0.0.1:8081/rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7"`
+
+
+
+
+## $method=release
+
+Releases an existing entity set stored in 4D Server's cache.
+
+### 説明
+
+You can release an entity set, which you created using [`$method=entityset`](#methodentityset), from 4D Server's cache.
+
+### 例題
+
+Release an existing entity set:
+
+`GET /rest/Employee/$entityset/4C51204DD8184B65AC7D79F09A077F24?$method=release`
+
+#### Response:
+
+If the request was successful, the following response is returned:
+
+```
+{
+ "ok": true
+}
+If the entity set wasn't found, an error is returned:
+
+{
+ "__ERROR": [
+ {
+ "message": "Error code: 1802\nEntitySet \"4C51204DD8184B65AC7D79F09A077F24\" cannot be found\ncomponent: 'dbmg'\ntask 22, name: 'HTTP connection handler'\n",
+ "componentSignature": "dbmg",
+ "errCode": 1802
+ }
+ ]
+}
+```
+
+
+## $method=subentityset
+
+Creates an entity set in 4D Server's cache based on the collection of related entities defined in the REST request
+
+
+### 説明
+
+`$method=subentityset` allows you to sort the data returned by the relation attribute defined in the REST request.
+
+To sort the data, you use the `$subOrderby` property. For each attribute, you specify the order as ASC (or asc) for ascending order and DESC (desc) for descending order. By default, the data is sorted in ascending order.
+
+If you want to specify multiple attributes, you can delimit them with a comma, µ, `$subOrderby="lastName desc, firstName asc"`.
+
+### 例題
+
+If you want to retrieve only the related entities for a specific entity, you can make the following REST request where staff is the relation attribute in the Company dataclass linked to the Employee dataclass:
+
+`GET /rest/Company(1)/staff?$expand=staff&$method=subentityset&$subOrderby=lastName ASC`
+
+#### Response:
+
+```
+{
+
+ "__ENTITYSET": "/rest/Employee/$entityset/FF625844008E430B9862E5FD41C741AB",
+ "__entityModel": "Employee",
+ "__COUNT": 2,
+ "__SENT": 2,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "firstName": "Linda",
+ "lastName": "Jones",
+ "birthday": "1970-10-05T14:23:00Z",
+ "employer": {
+ "__deferred": {
+ "uri": "/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ },
+ {
+ "__KEY": "1",
+ "__STAMP": 3,
+ "ID": 1,
+ "firstName": "John",
+ "lastName": "Smith",
+ "birthday": "1985-11-01T15:23:00Z",
+ "employer": {
+ "__deferred": {
+ "uri": "/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ }
+ ]
+
+}
+```
+
+
+## $method=update
+
+
+Updates and/or creates one or more entities
+
+### 説明
+
+`$method=update` allows you to update and/or create one or more entities in a single **POST**. If you update and/or create one entity, it is done in an object with each property an attribute with its value, *e.g.*, `{ lastName: "Smith" }`. If you update and/or create multiple entities, you must create an array of objects.
+
+To update an entity, you must pass the `__KEY` and `__STAMP` parameters in the object along with any modified attributes. If both of these parameters are missing, an entity will be added with the values in the object you send in the body of your **POST**.
+
+All triggers, calculated attributes, and events are executed immediately when saving the entity to the server. The response contains all the data as it exists on the server.
+
+You can also put these requests to create or update entities in a transaction by calling `$atomic/$atonce`. If any errors occur during data validation, none of the entities are saved. You can also use $method=validate to validate the entities before creating or updating them.
+
+If a problem arises while adding or modifying an entity, an error will be returned to you with that information.
+> Notes for specific attribute types:
+>
+> * **Dates** must be expressed in JS format: YYYY-MM-DDTHH:MM:SSZ (e.g., "2010-10-05T23:00:00Z"). If you have selected the Date only property for your Date attribute, the time zone and time (hour, minutes, and seconds) will be removed. In this case, you can also send the date in the format that it is returned to you dd!mm!yyyy (e.g., 05!10!2013).
+> * **Booleans** are either true or false.
+> * Uploaded files using `$upload` can be applied to an attribute of type Image or BLOB by passing the object returned in the following format { "ID": "D507BC03E613487E9B4C2F6A0512FE50"}
+
+### 例題
+
+To update a specific entity, you use the following URL:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+{
+ __KEY: "340",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Miller"
+}
+```
+
+The firstName and lastName attributes in the entity indicated above will be modified leaving all other attributes (except calculated ones based on these attributes) unchanged.
+
+If you want to create an entity, you can POST the attributes using this URL:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+{
+ firstName: "John",
+ lastName: "Smith"
+}
+```
+
+You can also create and update multiple entities at the same time using the same URL above by passing multiple objects in an array to the POST:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+[{
+ "__KEY": "309",
+ "__STAMP": 5,
+ "ID": "309",
+ "firstName": "Penelope",
+ "lastName": "Miller"
+}, {
+ "firstName": "Ann",
+ "lastName": "Jones"
+}]
+```
+
+**Response:**
+
+When you add or modify an entity, it is returned to you with the attributes that were modified. For example, if you create the new employee above, the following will be returned:
+
+```
+{
+ "__KEY": "622",
+ "__STAMP": 1,
+ "uri": "http://127.0.0.1:8081/rest/Employee(622)",
+ "ID": 622,
+ "firstName": "John",
+ "firstName": "Smith",
+ "fullName": "John Smith"
+}
+```
+> The only reason the fullName attribute is returned is because it is a calculated attribute based on both firstName and lastName.
+
+If, for example, the stamp is not correct, the following error is returned:
+
+```
+{
+ "__ENTITIES": [
+ {
+ "__KEY": "309",
+ "__STAMP": 1,
+ "ID": 309,
+ "firstName": "Betty",
+ "lastName": "Smith",
+ "fullName": "Betty Smith",
+ "__ERROR": [
+ {
+ "message": "Given stamp does not match current one for record# 308 of table Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1263
+ },
+ {
+ "message": "Cannot save record 308 in table Employee of database Widgets",
+ "componentSignature": "dbmg",
+ "errCode": 1046
+ },
+ {
+ "message": "The entity# 308 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+ },
+ {
+ "__KEY": "612",
+ "__STAMP": 4,
+ "uri": "http://127.0.0.1:8081/rest/Employee(612)",
+ "ID": 612,
+ "firstName": "Ann",
+ "lastName": "Jones",
+ "fullName": "Ann Jones"
+ }
+ ]
+}
+```
+
+If, for example, the user does not have the appropriate permissions to update an entity, the following error is returned:
+
+```
+{
+ "__KEY": "2",
+ "__STAMP": 4,
+ "ID": 2,
+ "firstName": "Paula",
+ "lastName": "Miller",
+ "fullName": "Paula Miller",
+ "telephone": "408-555-5555",
+ "salary": 56000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ },
+ "__ERROR": [
+ {
+ "message": "No permission to update for dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1558
+ },
+ {
+ "message": "The entity# 1 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+}
+```
+
+
+## $method=validate
+
+Validates the request when adding and/or modifying entities
+
+### 説明
+
+Before actually saving a new or modified entity with `$method=update`, you can first try to validate the actions with `$method=validate`.
+
+### 例題
+
+In this example, we **POST** the following request to $method=validate:
+
+ `POST /rest/Employee/?$method=validate`
+
+**POST data**:
+
+```
+[{
+ "__KEY": "1",
+ "__STAMP": 8,
+ "firstName": "Pete",
+ "lastName": "Jones",
+ "salary": 75000
+}, {
+ "firstName": "Betty",
+ "lastName": "Miller",
+}]
+```
+
+**Response**:
+
+If the request is successful, the following response is returned:
+
+```
+{
+ "ok": true
+}
+```
+
+Otherwise, you receive an error. In our case, we got an error because our salary field must be inferior to 60000:
+
+```
+{
+ "__ENTITIES": [
+ {
+ "__ERROR": [
+ {
+ "message": "Value cannot be greater than 60000",
+ "componentSignature": "dbmg",
+ "errCode": 1569
+ },
+ {
+ "message": "Entity fails validation",
+ "componentSignature": "dbmg",
+ "errCode": 1570
+ },
+ {
+ "message": "The new entity of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1534
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/ja/REST/$orderby.md b/website/translated_docs/ja/REST/$orderby.md
new file mode 100644
index 00000000000000..52ea410cfa9cf9
--- /dev/null
+++ b/website/translated_docs/ja/REST/$orderby.md
@@ -0,0 +1,51 @@
+---
+id: orderby
+title: '$orderby'
+---
+
+
+Sorts the data returned by the attribute and sorting order defined (*e.g.*, `$orderby="lastName desc, salary asc"`)
+
+## 説明
+
+`$orderby` orders the entities returned by the REST request. For each attribute, you specify the order as `ASC` (or `asc`) for ascending order and `DESC` (`desc`) for descending order. By default, the data is sorted in ascending order. If you want to specify multiple attributes, you can delimit them with a comma, *e.g.*, `$orderby="lastName desc, firstName asc"`.
+
+
+## 例題
+
+In this example, we retrieve entities and sort them at the same time:
+
+ `GET /rest/Employee/?$filter="salary!=0"&$orderby="salary DESC,lastName ASC,firstName ASC"`
+
+The example below sorts the entity set by lastName attribute in ascending order:
+
+ `GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$orderby="lastName"`
+
+**Result**:
+
+```
+{
+ __entityModel: "Employee",
+ __COUNT: 10,
+ __SENT: 10,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith",
+ salary: 90000
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary",
+ salary: 80000
+ },
+// more entities
+ ]
+}
+```
+
diff --git a/website/translated_docs/ja/REST/$querypath.md b/website/translated_docs/ja/REST/$querypath.md
new file mode 100644
index 00000000000000..472d4aa73da369
--- /dev/null
+++ b/website/translated_docs/ja/REST/$querypath.md
@@ -0,0 +1,110 @@
+---
+id: querypath
+title: '$querypath'
+---
+
+Returns the query as it was executed by 4D Server (*e.g.*, `$querypath=true`)
+
+## 説明
+
+`$querypath` returns the query as it was executed by 4D Server. If, for example, a part of the query passed returns no entities, the rest of the query is not executed. The query requested is optimized as you can see in this `$querypath`.
+
+For more information about query paths, refer to [queryPlan and queryPath](genInfo.md#querypath-and-queryplan).
+
+In the steps collection, there is an object with the following properties defining the query executed:
+
+| Property | タイプ | 説明 |
+| ------------- | ------ | --------------------------------------------------------------------------- |
+| description | 文字 | Actual query executed or "AND" when there are multiple steps |
+| time | 数値 | Number of milliseconds needed to execute the query |
+| recordsfounds | 数値 | Number of records found |
+| steps | コレクション | An collection with an object defining the subsequent step of the query path |
+
+## 例題
+
+If you passed the following query:
+
+ `GET /rest/Employee/$filter="employer.name=acme AND lastName=Jones"&$querypath=true`
+
+And no entities were found, the following query path would be returned, if you write the following:
+
+`GET /rest/$querypath`
+
+**Response**:
+
+```
+__queryPath: {
+
+ steps: [
+ {
+ description: "AND",
+ time: 0,
+ recordsfounds: 0,
+ steps: [
+ {
+ description: "Join on Table : Company : People.employer = Company.ID",
+ time: 0,
+ recordsfounds: 0,
+ steps: [
+ {
+ steps: [
+ {
+ description: "Company.name = acme",
+ time: 0,
+ recordsfounds: 0
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+
+}
+```
+
+If, on the other hand, the first query returns more than one entity, the second one will be executed. If we execute the following query:
+
+ `GET /rest/Employee/$filter="employer.name=a* AND lastName!=smith"&$querypath=true`
+
+If at least one entity was found, the following query path would be returned, if you write the following:
+
+ `GET /rest/$querypath`
+
+**Respose**:
+
+```
+"__queryPath": {
+ "steps": [
+ {
+ "description": "AND",
+ "time": 1,
+ "recordsfounds": 4,
+ "steps": [
+ {
+ "description": "Join on Table : Company : Employee.employer = Company.ID",
+ "time": 1,
+ "recordsfounds": 4,
+ "steps": [
+ {
+ "steps": [
+ {
+ "description": "Company.name LIKE a*",
+ "time": 0,
+ "recordsfounds": 2
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Employee.lastName # smith",
+ "time": 0,
+ "recordsfounds": 4
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/ja/REST/$queryplan.md b/website/translated_docs/ja/REST/$queryplan.md
new file mode 100644
index 00000000000000..ca913f7857f886
--- /dev/null
+++ b/website/translated_docs/ja/REST/$queryplan.md
@@ -0,0 +1,42 @@
+---
+id: queryplan
+title: '$queryplan'
+---
+
+
+Returns the query as it was passed to 4D Server (*e.g.*, `$queryplan=true`)
+
+## 説明
+$queryplan returns the query plan as it was passed to 4D Server.
+
+| Property | タイプ | 説明 |
+| -------- | ----- | ------------------------------------------------------------------------------------------- |
+| item | 文字 | Actual query executed |
+| subquery | Array | If there is a subquery, an additional object containing an item property (as the one above) |
+
+For more information about query plans, refer to [queryPlan and queryPath](genInfo.md#querypath-and-queryplan).
+
+## 例題
+If you pass the following query:
+
+ `GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true`
+
+#### Response:
+
+```
+__queryPlan: {
+ And: [
+ {
+ item: "Join on Table : Company : People.employer = Company.ID",
+ subquery: [
+ {
+ item: "Company.name = acme"
+ }
+ ]
+ },
+ {
+ item: "People.lastName = Jones"
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/ja/REST/$savedfilter.md b/website/translated_docs/ja/REST/$savedfilter.md
new file mode 100644
index 00000000000000..03ae5aedb5d77e
--- /dev/null
+++ b/website/translated_docs/ja/REST/$savedfilter.md
@@ -0,0 +1,26 @@
+---
+id: savedfilter
+title: '$savedfilter'
+---
+
+Saves the filter defined by $filter when creating an entity set (*e.g.*, `$savedfilter="{filter}"`)
+
+## 説明
+
+When you create an entity set, you can save the filter that you used to create it as a measure of security. If the entity set that you created is removed from 4D Server's cache (due to the timeout, the server's need for space, or your removing it by calling [`$method=release`]($method.md#methodrelease)).
+
+You use `$savedfilter` to save the filter you defined when creating your entity set and then pass `$savedfilter` along with your call to retrieve the entity set each time.
+
+If the entity set is no longer in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+If you have used both `$savedfilter` and [`$savedorderby`]($savedorderby.md) in your call when creating an entity set and then you omit one of them, the new entity set, which will have the same reference number, will reflect that.
+
+## 例題
+
+In our example, we first call ``$savedfilter` with the initial call to create an entity set as shown below:
+
+`GET /rest/People/?$filter="employer.name=Apple"&$savedfilter="employer.name=Apple"&$method=entityset`
+
+Then, when you access your entity set, you write the following to ensure that the entity set is always valid:
+
+`GET /rest/People/$entityset/AEA452C2668B4F6E98B6FD2A1ED4A5A8?$savedfilter="employer.name=Apple"`
diff --git a/website/translated_docs/ja/REST/$savedorderby.md b/website/translated_docs/ja/REST/$savedorderby.md
new file mode 100644
index 00000000000000..119ac9829c6ea1
--- /dev/null
+++ b/website/translated_docs/ja/REST/$savedorderby.md
@@ -0,0 +1,23 @@
+---
+id: savedorderby
+title: '$savedorderby'
+---
+
+Saves the order by defined by `$orderby` when creating an entity set (*e.g.*, `$savedorderby="{orderby}"`)
+
+## 説明
+
+When you create an entity set, you can save the sort order along with the filter that you used to create it as a measure of security. If the entity set that you created is removed from 4D Server's cache (due to the timeout, the server's need for space, or your removing it by calling [`$method=release`]($method.md#methodrelease)).
+
+You use `$savedorderby` to save the order you defined when creating your entity set, you then pass `$savedorderby` along with your call to retrieve the entity set each time.
+
+If the entity set is no longer in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. If you have used both [`$savedfilter`]($savedfilter.md) and `$savedorderby` in your call when creating an entity set and then you omit one of them, the new entity set, having the same reference number, will reflect that.
+
+## 例題
+You first call `$savedorderby` with the initial call to create an entity set:
+
+ `GET /rest/People/?$filter="lastName!=''"&$savedfilter="lastName!=''"&$orderby="salary"&$savedorderby="salary"&$method=entityset`
+
+Then, when you access your entity set, you write the following (using both $savedfilter and $savedorderby) to ensure that the filter and its sort order always exists:
+
+`GET /rest/People/$entityset/AEA452C2668B4F6E98B6FD2A1ED4A5A8?$savedfilter="lastName!=''"&$savedorderby="salary"`
diff --git a/website/translated_docs/ja/REST/$skip.md b/website/translated_docs/ja/REST/$skip.md
new file mode 100644
index 00000000000000..1909f979165a04
--- /dev/null
+++ b/website/translated_docs/ja/REST/$skip.md
@@ -0,0 +1,19 @@
+---
+id: skip
+title: '$skip'
+---
+
+Starts the entity defined by this number in the collection (*e.g.*, `$skip=10`)
+
+
+## 説明
+
+`$skip` defines which entity in the collection to start with. By default, the collection sent starts with the first entity. To start with the 10th entity in the collection, pass 10.
+
+`$skip` is generally used in conjunction with [`$top/$limit`]($top_$limit.md) to navigate through an entity collection.
+
+## 例題
+
+In the following example, we go to the 20th entity in our entity set:
+
+ `GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$skip=20`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$timeout.md b/website/translated_docs/ja/REST/$timeout.md
new file mode 100644
index 00000000000000..13ec60efe89c06
--- /dev/null
+++ b/website/translated_docs/ja/REST/$timeout.md
@@ -0,0 +1,21 @@
+---
+id: timeout
+title: '$timeout'
+---
+
+
+Defines the number of seconds to save an entity set in 4D Server's cache (*e.g.*, `$timeout=1800`)
+
+## 説明
+
+To define a timeout for an entity set that you create using [`$method=entityset`]($method.md#methodentityset), pass the number of seconds to `$timeout`. For example, if you want to set the timeout to 20 minutes, pass 1200. By default, the timeout is two (2) hours.
+
+Once the timeout has been defined, each time an entity set is called upon (by using `$method=entityset`), the timeout is recalculated based on the current time and the timeout.
+
+If an entity set is removed and then recreated using `$method=entityset` along with [`$savedfilter`]($savedfilter.md), the new default timeout is 10 minutes regardless of the timeout you defined when calling `$timeout`.
+
+## 例題
+
+In our entity set that we're creating, we define the timeout to 20 minutes:
+
+`GET /rest/Employee/?$filter="salary!=0"&$method=entityset&$timeout=1200`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$top_$limit.md b/website/translated_docs/ja/REST/$top_$limit.md
new file mode 100644
index 00000000000000..125df1c7f7617c
--- /dev/null
+++ b/website/translated_docs/ja/REST/$top_$limit.md
@@ -0,0 +1,18 @@
+---
+id: top_$limit
+title: '$top/$limit'
+---
+
+Limits the number of entities to return (e.g., `$top=50`)
+
+## 説明
+
+`$top/$limit` defines the limit of entities to return. By default, the number is limited to 100. You can use either keyword: `$top` or `$limit`.
+
+When used in conjunction with [`$skip`]($skip.md), you can navigate through the entity collection returned by the REST request.
+
+## 例題
+
+In the following example, we request the next ten entities after the 20th entity:
+
+`GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$skip=20&$top=10`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/$upload.md b/website/translated_docs/ja/REST/$upload.md
new file mode 100644
index 00000000000000..9d72803649c38f
--- /dev/null
+++ b/website/translated_docs/ja/REST/$upload.md
@@ -0,0 +1,60 @@
+---
+id: upload
+title: '$upload'
+---
+
+
+Returns an ID of the file uploaded to the server
+
+## 説明
+Post this request when you have a file that you want to upload to the Server. If you have an image, you pass `$rawPict=true`. For all other files, you pass `$binary=true`.
+
+You can modify the timeout, which by default is 120 seconds, by passing a value to the `$timeout parameter`.
+
+## Image upload example
+To upload an image, you must first select the file object on the client using the HTML 5 built-in API for using file from a web application. 4D uses the MIME type attribute of the file object so it can handle it appropriately.
+
+Then, we upload the selected image to 4D Server:
+
+ `POST /rest/$upload?$rawPict=true`
+
+**Result**:
+
+`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50" }`
+
+ Afterwards, you use this ID to add it to an attribute using [`$method=update`]($method.md#methodupdate) to add the image to an entity:
+
+ `POST /rest/Employee/?$method=update`
+
+**POST data**:
+
+````
+{
+ __KEY: "12",
+ __STAMP: 4,
+ photo: { "ID": "D507BC03E613487E9B4C2F6A0512FE50" }
+}
+````
+
+**Response**:
+
+The modified entity is returned:
+
+````
+{
+ "__KEY": "12",
+ "__STAMP": 5,
+ "uri": "http://127.0.0.1:8081/rest/Employee(12)",
+ "ID": 12,
+ "firstName": "John",
+ "firstName": "Smith",
+ "photo":
+ {
+ "__deferred":
+ {
+ "uri": "/rest/Employee(12)/photo?$imageformat=best&$version=1&$expand=photo",
+ "image": true
+ }
+ },}
+````
+
diff --git a/website/translated_docs/ja/REST/$version.md b/website/translated_docs/ja/REST/$version.md
new file mode 100644
index 00000000000000..befefd55bb1eea
--- /dev/null
+++ b/website/translated_docs/ja/REST/$version.md
@@ -0,0 +1,18 @@
+---
+id: version
+title: '$version'
+---
+
+Image version number
+
+## 説明
+
+`$version` is the image's version number returned by the server. The version number, which is sent by the server, works around the browser's cache so that you are sure to retrieve the correct image.
+
+The value of the image's version parameter is modified by the server.
+
+## 例題
+
+The following example defines the image format to JPEG regardless of the actual type of the photo and passes the actual version number sent by the server:
+
+ `GET /rest/Employee(1)/photo?$imageformat=jpeg&$version=3&$expand=photo`
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/REST_requests.md b/website/translated_docs/ja/REST/REST_requests.md
new file mode 100644
index 00000000000000..ae2b7086a5232d
--- /dev/null
+++ b/website/translated_docs/ja/REST/REST_requests.md
@@ -0,0 +1,57 @@
+---
+id: REST_requests
+title: About REST Requests
+---
+
+
+The following structures are supported for REST requests:
+
+| URI | Resource | {Subresource} | {Querystring} |
+| -------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------- |
+| http://{servername}:{port}/rest/ | [{dataClass}](%7BdataClass%7D.html)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | |
+| | [{dataClass}](%7BdataClass%7D.html)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | [{method}](%7BdataClass%7D.html#dataclassmethod) |
+| | | | [$entityset/{entitySetID}](entityset.html#entitysetentitysetid) |
+| | | | [?$filter]($filter.md) |
+| | | | [$entityset/{entitySetID}](entityset.html#entitysetentitysetid) |
+| | | [{attribute}](manData.html#selecting-attributes-to-get)/ | [?$compute]($compute.md) |
+| | [{dataClass}({key})](%7BdataClass%7D.html#dataclasskey)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | |
+| | [{dataClass}:{attribute}(value)](%7BdataClass%7D%7Battribute%7D_value.html) | | |
+| | [$catalog]($catalog.md) | | |
+| | [$directory]($directory.md) | | |
+| | [$info]($info.md) | | |
+
+
+While all REST requests must contain the URI and Resource parameters, the Subresource (which filters the data returned) is optional.
+
+As with all URIs, the first parameter is delimited by a “?” and all subsequent parameters by a “&”. たとえば:
+
+ `GET /rest/Person/?$filter="lastName!=Jones"&$method=entityset&$timeout=600`
+> You can place all values in quotes in case of ambiguity. For example, in our above example, we could've put the value for the last name in quotes "Jones".
+
+The parameters allow you to manipulate data in dataclasses in your 4D project. Besides retrieving data using `GET` HTTP methods, you can also add, update, and delete entities in a datastore class using `POST` HTTP methods.
+
+If you want the data to be returned in an array instead of JSON, use the [`$asArray`]($asArray.md) parameter.
+
+
+## REST Status and Response
+With each REST request, the server returns the status and a response (with or without an error).
+
+### Request Status
+With each REST request, you get the status along with the response. Below are a few of the statuses that can arise:
+
+| Status | 説明 |
+| ------------------------- | -------------------------------------------------------------------------- |
+| 0 | Request not processed (server might not be started). |
+| 200 OK | Request processed without error. |
+| 401 Unauthorized | Permissions error (check user's permissions). |
+| 404 Not Found | The data class is not accessible via REST or the entity set doesn't exist. |
+| 500 Internal Server Error | Error processing the REST request. |
+
+### Response
+
+The response (in JSON format) varies depending on the request.
+
+If an error arises, it will be sent along with the response from the server or it will be the response from the server.
+
+
+
diff --git a/website/translated_docs/ja/REST/authUsers.md b/website/translated_docs/ja/REST/authUsers.md
new file mode 100644
index 00000000000000..5da6171774a437
--- /dev/null
+++ b/website/translated_docs/ja/REST/authUsers.md
@@ -0,0 +1,25 @@
+---
+id: authUsers
+title: Sessions and Users
+---
+
+## Session cookie
+
+Each REST request is handled through a specific session on the 4D server.
+
+When a first valid REST request is received, the server creates the session and sends a **session cookie** named `WASID4D`, containing the session UUID, for example:
+
+```
+WASID4D=EA0400C4D58FF04F94C0A4XXXXXX3
+```
+
+In the subsequent REST requests, make sure this cookie is included in the header so that you will reuse the same session. Otherwise, a new session will be opened, and another license used.
+
+
+
+## Authenticating users
+
+Once you have set up users and groups in your project's directory, you will need to have users log into the project to access and manipulate data.
+
+You can log in a user to your application by passing the user's name and password to [`$directory/login`](directory_login). Once logged in, you can retrieve the user's name by using [`$directory/currentUser`](directory_currentUser) and can find out if he/she belongs to a specific group by using [`$directory/currentUserBelongsTo`](directory_currentUserBelongsTo). To log out the current user, call [`$directory/logout`](directory_logout).
+
diff --git a/website/translated_docs/ja/REST/configuration.md b/website/translated_docs/ja/REST/configuration.md
new file mode 100644
index 00000000000000..3a55d697175561
--- /dev/null
+++ b/website/translated_docs/ja/REST/configuration.md
@@ -0,0 +1,89 @@
+---
+id: configuration
+title: Server Configuration
+---
+
+Using standard HTTP requests, the 4D REST Server allows external applications to access the data of your database directly, *i.e.* to retrieve information about the dataclasses in your project, manipulate data, log into your web application, and much more.
+
+To start using the REST features, you need to start and configure the 4D REST server.
+
+> - On 4D Server, opening a REST session requires that a free 4D client licence is available.
+> - On 4D single-user, you can open up to three REST sessions for testing purposes. You need to manage the [session cookie](authUsers.md#session-cookie) to use the same session for your requesting application.
+
+
+
+## Starting the REST Server
+
+For security reasons, by default, 4D does not respond to REST requests. If you want to start the REST Server, you must check the **Expose as REST server** option in the "Web/REST resource" page of the database settings in order for REST requests to be processed.
+
+
+
+> REST services use the 4D HTTP server, so you need to make sure that the 4D Web server is started.
+
+The warning message "Caution, check the access privileges" is displayed when you check this option to draw your attention to the fact that when REST services are activated, by default access to database objects is free as long as the REST accesses have not been configured.
+
+
+## Configuring REST access
+
+By default, REST accesses are open to all users which is obviously not recommended for security reasons, and also to control client licenses usage.
+
+You can configuring REST accesses with one of the following means:
+- assigning a **Read/Write** user group to REST services in the "Web/REST resource" page of the Database Settings;
+- writing an `On REST Authentication` database method to intercept and handle every initial REST request.
+
+> You cannot use both features simultaneously. Once an `On REST Authentication` database method has been defined, 4D fully delegates control of REST requests to it: any setting made using the "Read/Write" menu on the Web/REST resource page of the Database Settings is ignored.
+
+
+### Using the Database settings
+
+The **Read/Write** menu in the "Web/REST resource" page of the database settings specifies a group of 4D users that is authorized to establish the link to the 4D database using REST queries.
+
+By default, the menu displays ****, which means that REST accesses are open to all users. Once you have specified a group, only a 4D user account that belongs to this group may be used to [access 4D by means of a REST request](authUsers.md). If an account is used that does not belong to this group, 4D returns an authentication error to the sender of the request.
+
+> In order for this setting to take effect, the `On REST Authentication` database method must not be defined. If it exists, 4D ignores access settings defined in the Database Settings.
+
+### Using the On REST Authentication database method
+The `On REST Authentication` database method provides you with a custom way of controlling the opening of REST sessions on 4D. This database method is automatically called when a new session is opened through a REST request. When a [request to open a REST session](authUsers.md) is received, the connection identifiers are provided in the header of the request. The `On REST Authentication` database method is called so that you can evaluate these identifiers. You can use the list of users for the 4D database or you can use your own table of identifiers. For more information, refer to the `On REST Authentication` database method [documentation](https://doc.4d.com/4Dv18/4D/18/On-REST-Authentication-database-method.301-4505004.en.html).
+
+
+
+## Exposing tables and fields
+
+Once REST services are enabled in the 4D database, by default a REST session can access all tables and fields of the datastore, and thus use their data. For example, if your database contains an [Employee] table, it is possible to write:
+
+```
+http://127.0.0.1:8044/rest/Employee/?$filter="salary>10000"
+
+```
+This request will return all employees whose salary field is higher than 10000.
+
+> 4D tables and/or fields that have the "Invisible" attribute are also exposed in REST by default.
+
+If you want to customize the datastore objects accessible through REST, you must disable the exposure of each table and/or field that you want to hide. When a REST request attempts to access an unauthorized resource, 4D returns an error.
+
+### Exposing tables
+
+By default, all tables are exposed in REST.
+
+For security reasons, you may want to only expose certain tables of your datastore to REST calls. For instance, if you created a [Users] table storing user names and passwords, it would be better not to expose it.
+
+To remove the REST exposure for a table:
+
+1. Display the Table Inspector in the Structure editor and select the table you want to modify.
+
+2. Uncheck the **Expose as REST resource** option:  Do this for each table whose exposure needs to be modified.
+
+
+### Exposing fields
+
+By default, all 4D database fields are exposed in REST.
+
+You may not want to expose certain fields of your tables to REST. For example, you may not want to expose the [Employees]Salary field.
+
+To remove the REST exposure for a field:
+
+1. Display the Field Inspector in the Structure editor and select the field you want to modify.
+
+2. Uncheck the **Expose as REST resource** for the field.  Repeat this for each field whose exposure needs to be modified.
+
+> In order for a field to be accessible through REST, the parent table must be as well. If the parent table is not exposed, none of its fields will be, regardless of their status.
diff --git a/website/translated_docs/ja/REST/genInfo.md b/website/translated_docs/ja/REST/genInfo.md
new file mode 100644
index 00000000000000..68acfca908b0b3
--- /dev/null
+++ b/website/translated_docs/ja/REST/genInfo.md
@@ -0,0 +1,36 @@
+---
+id: genInfo
+title: Getting Server Information
+---
+
+You can get several information from the REST server:
+
+- the exposed datastores and their attributes
+- the REST server cache contents, including user sessions.
+
+## Catalog
+
+Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed datastore classes and their attributes](configuration.md#exposing-tables-and-fields).
+
+To get the collection of all exposed dataclasses along with their attributes:
+
+`GET /rest/$catalog/$all`
+
+
+## Cache info
+
+Use the [`$info`]($info.md) parameter to get information about the entity selections currently stored in 4D Server's cache as well as running user sessions.
+
+## queryPath and queryPlan
+
+Entity selections that are generated through queries can have the following two properties: `queryPlan` and `queryPath`. To calculate and return these properties, you just need to add [`$queryPlan`]($queryplan.md) and/or [`$queryPath`]($querypath.md) in the REST request.
+
+たとえば:
+
+`GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true&$querypath=true`
+
+These properties are objects that contain information about how the server performs composite queries internally through dataclasses and relations:
+- **queryPlan**: object containing the detailed description of the query just before it was executed (i.e., the planned query).
+- **queryPath**: object containing the detailed description of the query as it was actually performed.
+
+The information recorded includes the query type (indexed and sequential) and each necessary subquery along with conjunction operators. Query paths also contain the number of entities found and the time required to execute each search criterion. You may find it useful to analyze this information while developing your application. Generally, the description of the query plan and its path are identical but they can differ because 4D can implement dynamic optimizations when a query is executed in order to improve performance. For example, the 4D engine can dynamically convert an indexed query into a sequential one if it estimates that it is faster. This particular case can occur when the number of entities being searched for is low.
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/gettingStarted.md b/website/translated_docs/ja/REST/gettingStarted.md
new file mode 100644
index 00000000000000..8a6d571357409c
--- /dev/null
+++ b/website/translated_docs/ja/REST/gettingStarted.md
@@ -0,0 +1,138 @@
+---
+id: gettingStarted
+title: Getting Started
+---
+
+4D provides you with a powerful REST server, that allows direct access to data stored in your 4D databases.
+
+The REST server is included in the the 4D and 4D Server applications, it is automatically available in your 4D databases [once it is configured](configuration.md).
+
+This section is intended to help familiarize you with REST functionality by means of a simple example. We are going to:
+- create and configure a basic 4D database
+- access data from the 4D database through REST using a standard browser.
+
+To keep the example simple, we’re going to use a 4D application and a browser that are running on the same machine. Of course, you could also use a remote architecture.
+
+
+
+## Creating and configuring the 4D database
+
+1. Launch your 4D or 4D Server application and create a new database. You can name it "Emp4D", for example.
+
+2. In the Structure editor, create an [Employees] table and add the following fields to it:
+ - Lastname (Alpha)
+ - Firstname (Alpha)
+ - Salary (Longint)
+
+
+
+> The "Expose a REST resource" option is checked by default for the table and every field; do not change this setting.
+
+3. Create forms, then create a few employees:
+
+
+
+4. Display the **Web/REST resource** page of the Database Settings dialog box and [check the Expose as REST server](configuration.md#starting-the-rest-server) option.
+
+5. In the **Run** menu, select **Start Web Server** (if necessary), then select **Test Web Server**.
+
+4D displays the default home page of the 4D Web Server.
+
+
+## Accessing 4D data through the browser
+
+You can now read and edit data within 4D only through REST requests.
+
+Any 4D REST URL request starts with `/rest`, to be inserted after the `address:port` area. For example, to see what's inside the 4D datastore, you can write:
+
+```
+http://127.0.01/rest/$catalog
+```
+
+The REST server replies:
+
+```
+{
+ "__UNIQID": "96A49F7EF2ABDE44BF32059D9ABC65C1",
+ "dataClasses": [
+ {
+ "name": "Employees",
+ "uri": "/rest/$catalog/Employees",
+ "dataURI": "/rest/Employees"
+ }
+ ]
+}
+```
+
+It means that the datastore contains the Employees dataclass. You can see the dataclass attributes by typing:
+
+```
+/rest/$catalog/Employees
+```
+
+If you want to get all entities of the Employee dataclass, you write:
+
+```
+/rest/Employees
+```
+
+**Response:**
+
+```
+{
+ "__entityModel": "Employees",
+ "__GlobalStamp": 0,
+ "__COUNT": 3,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2020-01-07T17:07:52.467Z",
+ "__STAMP": 2,
+ "ID": 1,
+ "Lastname": "Brown",
+ "Firstname": "Michael",
+ "Salary": 25000
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "ID": 2,
+ "Lastname": "Jones",
+ "Firstname": "Maryanne",
+ "Salary": 35000
+ },
+ {
+ "__KEY": "3",
+ "__TIMESTAMP": "2020-01-07T17:08:34.844Z",
+ "__STAMP": 2,
+ "ID": 3,
+ "Lastname": "Smithers",
+ "Firstname": "Jack",
+ "Salary": 41000
+ }
+ ],
+ "__SENT": 3
+}
+```
+
+You have many possibilities to filter data to receive. For example, to get only the "Lastname" attribute value from the 2nd entity, you can just write:
+
+```
+/rest/Employees(2)/Lastname
+```
+
+**Response:**
+
+```
+{
+ "__entityModel": "Employees",
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "Lastname": "Jones"
+}
+```
+
+The 4D [REST API](REST_requests.md) provides various commands to interact with the 4D database.
\ No newline at end of file
diff --git a/website/translated_docs/ja/REST/manData.md b/website/translated_docs/ja/REST/manData.md
new file mode 100644
index 00000000000000..660aeb6c38b8b6
--- /dev/null
+++ b/website/translated_docs/ja/REST/manData.md
@@ -0,0 +1,249 @@
+---
+id: manData
+title: Manipulating Data
+---
+
+All [exposed datastore classes, attributes](configuration.md#exposing-tables-and-fields) and methods can be accessed through REST. Dataclass, attribute, and method names are case-sensitive; however, the data for queries is not.
+
+## Querying data
+
+To query data directly, you can do so using the [`$filter`]($filter.md) function. For example, to find a person named "Smith", you could write:
+
+`http://127.0.0.1:8081/rest/Person/?$filter="lastName=Smith"`
+
+
+
+
+## Adding, Modifying, and Deleting Entities
+
+With the REST API, you can perform all the manipulations to data as you can in 4D.
+
+To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Before saving data, you can also validate it beforehand by calling [`$method=validate`]($method.md#methodvalidate). If you want to delete one or more entities, you can use [`$method=delete`]($method.md#methoddelete).
+
+Besides retrieving one attribute in a dataclass using [{dataClass}({key})](%7BdataClass%7D_%7Bkey%7D.html), you can also write a method in your datastore class and call it to return an entity selection (or a collection) by using [{dataClass}/{method}](%7BdataClass%7D.html#dataclassmethod).
+
+Before returning the collection, you can also sort it by using [`$orderby`]($orderby.md) one one or more attributes (even relation attributes).
+
+
+## Navigating Data
+
+Add the [`$skip`]($skip.md) (to define with which entity to start) and [`$top/$limit`]($top_$limit.md) (to define how many entities to return) REST requests to your queries or entity selections to navigate the collection of entities.
+
+
+
+## Creating and Managing Entity Set
+
+An entity set (aka *entity selection*) is a collection of entities obtained through a REST request that is stored in 4D Server's cache. Using an entity set prevents you from continually querying your application for the same results. Accessing an entity set is much quicker and can improve the speed of your application.
+
+To create an entity set, call [`$method=entityset`]($method.md#methodentityset) in your REST request. As a measure of security, you can also use [`$savedfilter`]($savedfilter.md) and/or [`$savedorderby`]($savedorderby.md) when you call [`$filter`]($filter.md) and/or [`$orderby`]($orderby.md) so that if ever the entity set timed out or was removed from the server, it can be quickly retrieved with the same ID as before.
+
+To access the entity set, you must use `$entityset/{entitySetID}`, for example:
+
+`/rest/People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`
+
+
+By default, an entity set is stored for two hours; however, you can change the timeout by passing a new value to [`$timeout`]($timeout.md). The timeout is continually being reset to the value defined for its timeout (either the default one or the one you define) each time you use it.
+
+If you want to remove an entity set from 4D Server's cache, you can use [`$method=release`]($method.md#methodrelease).
+
+If you modify any of the entity's attributes in the entity set, the values will be updated. However, if you modify a value that was a part of the query executed to create the entity set, it will not be removed from the entity set even if it no longer fits the search criteria. Any entities you delete will, of course, no longer be a part of the entity set.
+
+If the entity set no longer exists in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+Using [`$entityset/{entitySetID}?$logicOperator... &$otherCollection`]($entityset.md#entitysetentitysetidoperatorothercollection), you can combine two entity sets that you previously created. You can either combine the results in both, return only what is common between the two, or return what is not common between the two.
+
+A new selection of entities is returned; however, you can also create a new entity set by calling [`$method=entityset`]($method.md#methodentityset) at the end of the REST request.
+
+
+
+## Calculating Data
+
+By using [`$compute`]($compute.md), you can compute the **average**, **count**, **min**, **max**, or **sum** for a specific attribute in a dataclass. You can also compute all values with the $all keyword.
+
+For example, to get the highest salary:
+
+`/rest/Employee/salary/?$compute=sum`
+
+To compute all values and return a JSON object:
+
+`/rest/Employee/salary/?$compute=$all`
+
+
+
+
+## Selecting attributes to get
+
+You can always define which attributes to return in the REST response after an initial request by passing their path in the request (*e.g.*, `Company(1)/name,revenues/`)
+
+You can apply this filter in the following ways:
+
+| オブジェクト | Syntax | 例題 |
+| ---------------------- | --------------------------------------------------- | ------------------------------------------------------------- |
+| Dataclass | {dataClass}/{att1,att2...} | /People/firstName,lastName |
+| Collection of entities | {dataClass}/{att1,att2...}/?$filter="{filter}" | /People/firstName,lastName/?$filter="lastName='a*'" |
+| Specific entity | {dataClass}({ID})/{att1,att2...} | /People(1)/firstName,lastName |
+| | {dataClass}:{attribute}(value)/{att1,att2...}/ | /People:firstName(Larry)/firstName,lastName/ |
+| Entity selection | {dataClass}/{att1,att2...}/$entityset/{entitySetID} | /People/firstName/$entityset/528BF90F10894915A4290158B4281E61 |
+
+The attributes must be delimited by a comma, *i.e.*, `/Employee/firstName,lastName,salary`. Storage or relation attributes can be passed.
+
+
+### Examples
+Here are a few examples, showing you how to specify which attributes to return depending on the technique used to retrieve entities.
+
+You can apply this technique to:
+
+- Dataclasses (all or a collection of entities in a dataclass)
+- Specific entities
+- Dataclass methods
+- Entity sets
+
+#### Dataclass Example
+
+The following requests returns only the first name and last name from the People datastore class (either the entire datastore class or a selection of entities based on the search defined in `$filter`).
+
+ `GET /rest/People/firstName,lastName/`
+
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 4,
+ __SENT: 4,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith"
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary"
+ },
+ {
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+ },
+ {
+ __KEY: "4",
+ __STAMP: 1,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+`GET /rest/People/firstName,lastName/?$filter="lastName='A*'"/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 1,
+ __SENT: 1,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "4",
+ __STAMP: 4,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+#### Entity Example
+The following request returns only the first name and last name attributes from a specific entity in the People dataclass:
+
+ `GET /rest/People(3)/firstName,lastName/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+}
+````
+
+
+ `GET /rest/People(3)/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ ID: 3,
+ firstName: "Pete",
+ lastName: "Marley",
+ salary: 30000,
+ employer: {
+ __deferred: {
+ uri: "http://127.0.0.1:8081/rest/Company(3)",
+ __KEY: "3"
+ }
+ },
+ fullName: "Pete Marley",
+ employerName: "microsoft"
+
+}
+````
+
+#### Method Example
+
+If you have a dataclass method, you can define which attributes to return as shown below before passing the dataclass method:
+
+ `GET /rest/People/firstName,lastName/getHighSalaries`
+
+or
+
+ `GET /rest/People/getHighSalaries/firstName,lastName`
+
+#### Entity Set Example
+
+Once you have created an entity set, you can filter the information in it by defining which attributes to return:
+
+ `GET /rest/People/firstName,employer.name/$entityset/BDCD8AABE13144118A4CF8641D5883F5?$expand=employer
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your dataclass, you can write the following:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
+
+
+## Retrieving only one entity
+
+You can use the [`{dataClass}:{attribute}(value)`](%7BdataClass%7D.html#dataclassattributevalue) syntax when you want to retrieve only one entity. It's especially useful when you want to do a related search that isn't created on the dataclass's primary key. For example, you can write:
+
+ `GET /rest/Company:companyCode("Acme001")`
+
+
diff --git a/website/translated_docs/ja/REST/{dataClass}.md b/website/translated_docs/ja/REST/{dataClass}.md
new file mode 100644
index 00000000000000..90f634cb965f55
--- /dev/null
+++ b/website/translated_docs/ja/REST/{dataClass}.md
@@ -0,0 +1,276 @@
+---
+id:
+ - dataClass
+title:
+ - dataClass
+---
+
+
+
+Dataclass names can be used directly in the REST requests to work with entities, entity selections, or methods of the dataclass.
+
+## Available syntaxes
+
+| Syntax | 例題 | 説明 |
+| -------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------- |
+| [**{dataClass}**](#dataClass) | `/Employee` | Returns all the data (by default the first 100 entities) for the dataclass |
+| [**{dataClass}({key})**](#dataclasskey) | `/Employee(22)` | Returns the data for the specific entity defined by the dataclass's primary key |
+| [**{dataClass}:{attribute}(value)**](#dataclassattributevalue) | `/Employee:firstName(John)` | Returns the data for one entity in which the attribute's value is defined |
+| [**{dataClass}/{method}**](#dataclassmethod) | `/Employee/getHighSalaries` or `/Employee/name/getAge` | Returns an entity selection or a collection based on a dataclass method |
+
+
+
+## {dataClass}
+
+Returns all the data (by default the first 100 entities) for a specific dataclass (*e.g.*, `Company`)
+
+### 説明
+
+When you call this parameter in your REST request, the first 100 entities are returned unless you have specified a value using [`$top/$limit`]($top_$limit.md).
+
+Here is a description of the data returned:
+
+| Property | タイプ | 説明 |
+| ------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| __entityModel | 文字 | Name of the datastore class. |
+| __COUNT | 数値 | Number of entities in the datastore class. |
+| __SENT | 数値 | Number of entities sent by the REST request.This number can be the total number of entities if it is less than the value defined in the Default Top Size property (in the Properties for the datastore class) or `$top/$limit` or the value in `$top/$limit`. |
+| __FIRST | 数値 | Entity number that the selection starts at. Either 0 by default or the value defined by `$skip`. |
+| __ENTITIES | Array | This array of objects contains an object for each entity with all the Public attributes. All relational attributes are returned as objects with a URI to obtain information regarding the parent. |
+
+For each entity, there is a **__KEY** and a **__STAMP** property. The **__KEY** property contains the value of the primary key defined for the datastore class. The **__STAMP** is an internal stamp that is needed when you modify any of the values in the entity when using `$method=update`.
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). たとえば:
+
+ `GET /rest/Company/name,address`
+
+
+
+### 例題
+
+Return all the data for a specific datastore class.
+
+ `GET /rest/Employee`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__COUNT": 250,
+ "__SENT": 100,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Adobe",
+ "address": null,
+ "city": "San Jose",
+ "country": "USA",
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 1,
+ "ID": 2,
+ "name": "Apple",
+ "address": null,
+ "city": "Cupertino",
+ "country": "USA",
+ "revenues": 890000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(2)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "3",
+ "__STAMP": 2,
+ "ID": 3,
+ "name": "4D",
+ "address": null,
+ "city": "Clichy",
+ "country": "France",
+ "revenues": 700000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(3)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "name": "Microsoft",
+ "address": null,
+ "city": "Seattle",
+ "country": "USA",
+ "revenues": 650000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(4)/staff?$expand=staff"
+ }
+ }
+ }
+.....//more entities here
+ ]
+}
+````
+
+
+## {dataClass}({key})
+
+Returns the data for the specific entity defined by the dataclass's primary key, *e.g.*, `Company(22) or Company("IT0911AB2200")`
+
+### 説明
+
+By passing the dataclass and a key, you can retrieve all the public information for that entity. The key is the value in the attribute defined as the Primary Key for your datastore class. For more information about defining a primary key, refer to the **Modifying the Primary Key** section in the **Data Model Editor**.
+
+For more information about the data returned, refer to [{datastoreClass}](#datastoreclass).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). たとえば:
+
+ `GET /rest/Company(1)/name,address`
+
+If you want to expand a relation attribute using `$expand`, you do so by specifying it as shown below:
+
+ `GET /rest/Company(1)/name,address,staff?$expand=staff`
+
+### 例題
+
+The following request returns all the public data in the Company datastore class whose key is 1.
+
+ `GET /rest/Company(1)`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Apple",
+ "address": Infinite Loop,
+ "city": "Cupertino",
+ "country": "USA",
+ "url": http://www.apple.com,
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+}
+````
+
+
+
+## {dataClass}:{attribute}(value)
+
+Returns the data for one entity in which the attribute's value is defined
+
+### 説明
+
+By passing the *dataClass* and an *attribute* along with a value, you can retrieve all the public information for that entity. The value is a unique value for attribute, but is not the primary key.
+
+ `GET /rest/Company:companyCode(Acme001)`
+
+For more information about the data returned, refer to [{dataClass}](dataClass.md).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). たとえば:
+
+ `GET /rest/Company:companyCode(Acme001)/name,address`
+
+If you want to use a relation attribute using [$attributes]($attributes.md), you do so by specifying it as shown below:
+
+ `GET /rest/Company:companyCode(Acme001)?$attributes=name,address,staff.name`
+
+### 例題
+
+The following request returns all the public data of the employee named "Jones".
+
+ `GET /rest/Employee:lastname(Jones)`
+
+
+## {dataClass}/{method}
+
+Returns an entity selection or a collection based on a dataclass method
+
+### 説明
+
+Dataclass methods must be applied to either a dataclass or an entity selection, and must return either an entity selection or a collection. When returning a collection, however, you cannot define which attributes are returned.
+
+The method must has been declared as "Available through REST server" in 4D for you to be able to call it in a REST request:
+
+`GET /rest/Employee/getHighSalaries` or `GET /rest/Employee/firstName/getHighSalaries`
+
+If you do not have the permissions to execute the method, you will receive the following error:
+
+```
+{
+ "__ERROR": [
+ {
+ "message": "No permission to execute method getHighSalaries in dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1561
+ }
+ ]
+}
+```
+
+### Passing Parameters to a Method
+You can also pass parameters to a method either in a GET or in a POST.
+
+In a GET, you write the following:
+
+`GET /rest/Employee/addEmployee(John,Smith)`
+
+In a POST, you write the following :
+
+`POST /rest/Employee/addEmployee`
+
+**POST data:** ["John","Smith"]
+
+### Manipulating the Data Returned by a Method
+You can define which attributes you want to return, by passing the following:
+
+`GET /rest/Employee/firstName/getEmployees` Or `GET /rest/Employee/getEmployees/firstName`
+
+You can also apply any of the following functions to a method: [$filter]($filter.md), [$orderby]($orderby.md), [$skip]($skip.md), [$expand]($expand.md), and [$top/$limit]($top_$limit.md).
+
+
+### 例題
+
+In the example below, we call our method, but also browse through the collection by returning the next ten entities from the sixth one:
+
+`GET /rest/Employee?$attributes=lastName,employer.name&$top=10&$skip=1/getHighSalaries` or `GET /rest/Employee/getHighSalaries?$attributes=lastName,employer.name&$top=10&$skip=1`
+
+If you want to retrieve an attribute and an extended relation attribute, you can write the following REST request:
+
+`GET /rest/Employee/firstName,employer/getHighSalaries?$expand=employer`
+
+In the example below, the getCities dataclass method returns a collection of cities:
+
+`GET /rest/Employee/getCities`
+
+Result:
+
+```
+{
+ "result": [
+ "Paris",
+ "Florence",
+ "New York"
+ ]
+}
+```
diff --git a/website/translated_docs/ja/Users/overview.md b/website/translated_docs/ja/Users/overview.md
index d1b524035f259f..02543b0bbddbef 100644
--- a/website/translated_docs/ja/Users/overview.md
+++ b/website/translated_docs/ja/Users/overview.md
@@ -1,5 +1,5 @@
---
-id: 概要
+id: overview
title: Overview
---
diff --git a/website/translated_docs/pt/FormObjects/formObjects_overview.md b/website/translated_docs/pt/FormObjects/formObjects_overview.md
new file mode 100644
index 00000000000000..1c39c834e396ea
--- /dev/null
+++ b/website/translated_docs/pt/FormObjects/formObjects_overview.md
@@ -0,0 +1,25 @@
+---
+id: formObjectsOverview
+title: About 4D Form Objects
+---
+
+You build and customize your application forms by manipulating the objects on them. You can add objects, reposition objects, set object properties, enforce business rules by specifying data entry constraints, or write object methods that run automatically when the object is used.
+
+## Active and static objects
+
+4D forms support a large number of built-in **active** and **static** objects:
+
+- **active objects** perform a database task or an interface function. Fields are active objects. Other active objects — enterable objects (variables), combo boxes, drop-down lists, picture buttons, and so on — store data temporarily in memory or perform some action such as opening a dialog box, printing a report, or starting a background process.
+- **static objects** are generally used for setting the appearance of the form and its labels as well as for the graphic interface. Static objects do not have associated variables like active objects. However, you can insert dynamic objects into static objects.
+
+
+## Handling form objects
+
+You can add or modify 4D form objects in the following ways:
+
+* **Form editor:** Drag an object from the Form editor toolbar onto the form. Then use the Property List to specify the object's properties. See the [Building Forms](https://doc.4d.com/4Dv17R6/4D/17-R6/Building-forms.200-4354618.en.html) chapter for more information.
+
+* **4D language**: Commands from the [Objects (Forms)](https://doc.4d.com/4Dv17R5/4D/17-R5/Objects-Forms.201-4127128.en.html) theme such as `OBJECT DUPLICATE` or `OBJECT SET FONT STYLE` allow to create and define form objects.
+
+* **JSON code in dynamic forms:** Define the properties using JSON. Use the [type](properties_Object.md#type) property to define the object type, then set its available properties. See the [Dynamic Forms](https://doc.4d.com/4Dv17R5/4D/17-R5/Dynamic-Forms.300-4163740.en.html#3692292) page for information. Example for a button object: ```
+ { "type": "button", "style": "bevel", "text": "OK", "action": "Cancel", "left": 60, "top": 160, "width": 100, "height": 20 }
diff --git a/website/translated_docs/pt/REST/$asArray.md b/website/translated_docs/pt/REST/$asArray.md
new file mode 100644
index 00000000000000..a0b7b75b361e1e
--- /dev/null
+++ b/website/translated_docs/pt/REST/$asArray.md
@@ -0,0 +1,124 @@
+---
+id: asArray
+title: '$asArray'
+---
+
+
+Returns the result of a query in an array (i.e. a collection) instead of a JSON object.
+
+
+## Description
+
+If you want to receive the response in an array, you just have to add `$asArray` to your REST request (*e.g.*, `$asArray=true`).
+
+## Example
+Here is an example or how to receive the response in an array.
+
+ `GET /rest/Company/?$filter="name begin a"&$top=3&$asArray=true`
+
+**Response**:
+
+````
+[
+ {
+ "__KEY": 15,
+ "__STAMP": 0,
+ "ID": 15,
+ "name": "Alpha North Yellow",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 82000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ },
+ {
+ "__KEY": 34,
+ "__STAMP": 0,
+ "ID": 34,
+ "name": "Astral Partner November",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 90000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ },
+ {
+ "__KEY": 47,
+ "__STAMP": 0,
+ "ID": 47,
+ "name": "Audio Production Uniform",
+ "creationDate": "!!0000-00-00!!",
+ "revenues": 28000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0
+ }
+]
+````
+
+The same data in its default JSON format:
+
+````
+{
+ "__entityModel": "Company",
+ "__GlobalStamp": 50,
+ "__COUNT": 52,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "15",
+ "__TIMESTAMP": "2018-03-28T14:38:07.434Z",
+ "__STAMP": 0,
+ "ID": 15,
+ "name": "Alpha North Yellow",
+ "creationDate": "0!0!0",
+ "revenues": 82000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(15)/employees?$expand=employees"
+ }
+ }
+ },
+ {
+ "__KEY": "34",
+ "__TIMESTAMP": "2018-03-28T14:38:07.439Z",
+ "__STAMP": 0,
+ "ID": 34,
+ "name": "Astral Partner November",
+ "creationDate": "0!0!0",
+ "revenues": 90000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(34)/employees?$expand=employees"
+ }
+ }
+ },
+ {
+ "__KEY": "47",
+ "__TIMESTAMP": "2018-03-28T14:38:07.443Z",
+ "__STAMP": 0,
+ "ID": 47,
+ "name": "Audio Production Uniform",
+ "creationDate": "0!0!0",
+ "revenues": 28000000,
+ "extra": null,
+ "comments": "",
+ "__GlobalStamp": 0,
+ "employees": {
+ "__deferred": {
+ "uri": "/rest/Company(47)/employees?$expand=employees"
+ }
+ }
+ }
+ ],
+"__SENT": 3
+}
+````
+
+
diff --git a/website/translated_docs/pt/REST/$atomic_$atonce.md b/website/translated_docs/pt/REST/$atomic_$atonce.md
new file mode 100644
index 00000000000000..7e64f2c8f06550
--- /dev/null
+++ b/website/translated_docs/pt/REST/$atomic_$atonce.md
@@ -0,0 +1,97 @@
+---
+id: atomic_$atonce
+title: '$atomic/$atonce'
+---
+
+
+Allows the actions in the REST request to be in a transaction. If there are no errors, the transaction is validated. Otherwise, the transaction is cancelled.
+
+
+## Description
+When you have multiple actions together, you can use `$atomic/$atonce` to make sure that none of the actions are completed if one of them fails. You can use either `$atomic` or `$atonce`.
+
+
+## Example
+We call the following REST request in a transaction.
+
+ `POST /rest/Employee?$method=update&$atomic=true`
+
+**POST data**:
+
+````
+[
+{
+ "__KEY": "1",
+ "__STAMP": 5,
+ "salary": 45000
+},
+{
+ "__KEY": "2",
+ "__STAMP": 10,
+ "salary": 99000
+}
+]
+````
+
+We get the following error in the second entity and therefore the first entity is not saved either:
+
+````
+{
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 5,
+ "uri": "http://127.0.0.1:8081/rest/Employee(1)",
+ "ID": 1,
+ "firstName": "John",
+ "lastName": "Smith",
+ "fullName": "John Smith",
+ "gender": false,
+ "telephone": "4085551111",
+ "salary": 45000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 2,
+ "ID": 2,
+ "firstName": "Paula",
+ "lastName": "Miller",
+ "fullName": "Paula Miller",
+ "telephone": "4085559999",
+ "salary": 36000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ },
+ "__ERROR": [
+ {
+ "message": "Value cannot be greater than 60000",
+ "componentSignature": "dbmg",
+ "errCode": 1569
+ },
+ {
+ "message": "Entity fails validation",
+ "componentSignature": "dbmg",
+ "errCode": 1570
+ },
+ {
+ "message": "The entity# 1 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+ }
+ ]
+}
+````
+> Even though the salary for the first entity has a value of 45000, this value was not saved to the server and the *timestamp (__STAMP)* was not modified either. If we reload the entity, we will see the previous value.
diff --git a/website/translated_docs/pt/REST/$attributes.md b/website/translated_docs/pt/REST/$attributes.md
new file mode 100644
index 00000000000000..fafbc0ab636a39
--- /dev/null
+++ b/website/translated_docs/pt/REST/$attributes.md
@@ -0,0 +1,106 @@
+---
+id: attributes
+title: '$attributes'
+---
+
+Allows selecting the related attribute(s) to get from the dataclass (*e.g.*, `Company(1)?$attributes=employees.lastname` or `Employee?$attributes=employer.name`).
+
+
+## Description
+
+When you have relation attributes in a dataclass, use `$attributes` to define the path of attributes whose values you want to get for the related entity or entities.
+
+You can apply `$attributes` to an entity (*e.g.*, People(1)) or an entity selection (*e.g.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) .
+
+
+- If `$attributes` is not specified in a query, or if the "*" value is passed, all available attributes are extracted. **Related entity** attributes are extracted with the simple form: an object with property `__KEY` (primary key). **Related entities** attributes are not extracted.
+
+- If `$attributes` is specified for **related entity** attributes:
+ - `$attributes=relatedEntity`: the related entity is returned with simple form (deferred __KEY property (primary key)).
+ - `$attributes=relatedEntity.*`: all the attributes of the related entity are returned
+ - `$attributes=relatedEntity.attributePath1, relatedEntity.attributePath2, ...`: only those attributes of the related entity are returned.
+
+
+- If `$attributes` is specified for **related entities** attributes:
+ - `$attributes=relatedEntities.*`: all the properties of all the related entities are returned
+ - `$attributes=relatedEntities.attributePath1, relatedEntities.attributePath2, ...`: only those attributes of the related entities are returned.
+
+
+
+## Example with related entities
+
+If we pass the following REST request for our Company datastore class (which has a relation attribute "employees"):
+
+ `GET /rest/Company(1)/?$attributes=employees.lastname`
+
+**Response**:
+
+```
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__TIMESTAMP": "2018-04-25T14:41:16.237Z",
+ "__STAMP": 2,
+ "employees": {
+ "__ENTITYSET": "/rest/Company(1)/employees?$expand=employees",
+ "__GlobalStamp": 50,
+ "__COUNT": 135,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2019-12-01T20:18:26.046Z",
+ "__STAMP": 5,
+ "lastname": "ESSEAL"
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2019-12-04T10:58:42.542Z",
+ "__STAMP": 6,
+ "lastname": "JONES"
+ },
+ ...
+ }
+}
+```
+
+If you want to get all attributes from employees:
+
+ `GET /rest/Company(1)/?$attributes=employees.*`
+
+If you want to get last name and job name attributes from employees:
+
+ `GET /rest/Company(1)/?$attributes=employees.lastname,employees.jobname`
+
+
+## Example with related entity
+
+If we pass the following REST request for our Employee datastore class (which has several relation attributes, including "employer"):
+
+
+ `GET /rest/Employee(1)?$attributes=employer.name`
+
+**Response**:
+
+```
+{
+ "__entityModel": "Employee",
+ "__KEY": "1",
+ "__TIMESTAMP": "2019-12-01T20:18:26.046Z",
+ "__STAMP": 5,
+ "employer": {
+ "__KEY": "1",
+ "__TIMESTAMP": "2018-04-25T14:41:16.237Z",
+ "__STAMP": 0,
+ "name": "Adobe"
+ }
+}
+```
+
+If you want to get all attributes of the employer:
+
+ `GET /rest/Employee(1)?$attributes=employer.*`
+
+If you want to get the last names of all employees of the employer:
+
+ `GET /rest/Employee(1)?$attributes=employer.employees.lastname`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$binary.md b/website/translated_docs/pt/REST/$binary.md
new file mode 100644
index 00000000000000..c07c9699a761c6
--- /dev/null
+++ b/website/translated_docs/pt/REST/$binary.md
@@ -0,0 +1,21 @@
+---
+id: binary
+title: '$binary'
+---
+
+Pass "true" to save the BLOB as a document (must also pass `$expand={blobAttributeName}`)
+
+## Description
+
+`$binary` allows you to save the BLOB as a document. You must also use the [`$expand`]($expand.md) command in conjunction with it.
+
+When you make the following request:
+
+```
+GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt
+```
+
+You will be asked where to save the BLOB to disk:
+
+
+
diff --git a/website/translated_docs/pt/REST/$catalog.md b/website/translated_docs/pt/REST/$catalog.md
new file mode 100644
index 00000000000000..4d74512bb28bbc
--- /dev/null
+++ b/website/translated_docs/pt/REST/$catalog.md
@@ -0,0 +1,337 @@
+---
+id: catalog
+title: '$catalog'
+---
+
+
+The catalog describes all the dataclasses and attributes available in the datastore.
+
+
+## Available syntaxes
+
+| Syntax | Example | Description |
+| --------------------------------------------- | -------------------- | -------------------------------------------------------------------------------- |
+| [**$catalog**](#catalog) | `/$catalog` | Returns a list of the dataclasses in your project along with two URIs |
+| [**$catalog/$all**](#catalogall) | `/$catalog/$all` | Returns information about all of your project's dataclasses and their attributes |
+| [**$catalog/{dataClass}**](#catalogdataclass) | `/$catalog/Employee` | Returns information about a dataclass and its attributes |
+
+
+## $catalog
+Returns a list of the dataclasses in your project along with two URIs: one to access the information about its structure and one to retrieve the data in the dataclass
+
+
+### Description
+
+When you call `$catalog`, a list of the dataclasses is returned along with two URIs for each dataclass in your project's datastore.
+
+Only the exposed dataclasses are shown in this list for your project's datastore. For more information, please refer to [**Exposing tables and fields**](configuration.md#exposing-tables-and-fields) section.
+
+Here is a description of the properties returned for each dataclass in your project's datastore:
+
+
+| Property | Type | Description |
+| -------- | ------ | --------------------------------------------------------------------------------- |
+| name | String | Name of the dataclass. |
+| uri | String | A URI allowing you to obtain information about the |dataclass and its attributes. |
+| dataURI | String | A URI that allows you to view the data in the dataclass. |
+
+
+### Example
+
+`GET /rest/$catalog`
+
+**Result**:
+
+````
+{
+ dataClasses: [
+ {
+ name: "Company",
+ uri: "http://127.0.0.1:8081/rest/$catalog/Company",
+ dataURI: "http://127.0.0.1:8081/rest/Company"
+ },
+ {
+ name: "Employee",
+ uri: "http://127.0.0.1:8081/rest/$catalog/Employee",
+ dataURI: "http://127.0.0.1:8081/rest/Employee"
+ }
+ ]
+}
+````
+
+
+## $catalog/$all
+
+Returns information about all of your project's dataclasses and their attributes
+
+### Description
+
+Calling `$catalog/$all` allows you to receive detailed information about the attributes in each of the datastore classes in your project's active model. Remember that the scope for the datastore classes and their attributes must be **Public** for any information to be returned.
+
+For more information about what is returned for each datastore class and its attributes, use [`$catalog/{dataClass}`](#catalogdataClass).
+
+
+### Example
+
+`GET /rest/$catalog/$all`
+
+**Result**:
+
+````
+{
+
+ "dataClasses": [
+ {
+ "name": "Company",
+ "className": "Company",
+ "collectionName": "CompanyCollection",
+ "scope": "public",
+ "dataURI": "/rest/Company",
+ "attributes": [
+ {
+ "name": "ID",
+ "kind": "storage",
+ "scope": "public",
+ "indexed": true,
+ "type": "long",
+ "identifying": true
+ },
+ {
+ "name": "name",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "revenues",
+ "kind": "storage",
+ "scope": "public",
+ "type": "number"
+ },
+ {
+ "name": "staff",
+ "kind": "relatedEntities",
+ "matchColumn": "employees,staff",
+ "scope": "public",
+ "type": "EmployeeCollection",
+ "reversePath": true,
+ "path": "employer"
+ },
+ {
+ "name": "url",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ }
+ ],
+ "key": [
+ {
+ "name": "ID"
+ }
+ ]
+ },
+ {
+ "name": "Employee",
+ "className": "Employee",
+ "collectionName": "EmployeeCollection",
+ "scope": "public",
+ "dataURI": "/rest/Employee",
+ "attributes": [
+ {
+ "name": "ID",
+ "kind": "storage",
+ "scope": "public",
+ "indexed": true,
+ "type": "long",
+ "identifying": true
+ },
+ {
+ "name": "firstname",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "lastname",
+ "kind": "storage",
+ "scope": "public",
+ "type": "string"
+ },
+ {
+ "name": "employer",
+ "kind": "relatedEntity",
+ "scope": "public",
+ "type": "Company",
+ "path": "Company"
+ }
+ ],
+ "key": [
+ {
+ "name": "ID"
+ }
+ ]
+ }
+ ]
+}
+````
+
+
+## $catalog/{dataClass}
+
+Returns information about a dataclass and its attributes
+
+### Description
+
+Calling `$catalog/{dataClass}` for a specific dataclass will return the following information about the dataclass and the attributes it contains. If you want to retrieve this information for all the datastore classes in your project's datastore, use [`$catalog/$all`](#catalogall).
+
+The information you retrieve concerns the following:
+
+* Dataclass
+* Attribute(s)
+* Method(s) if any
+* Primary key
+
+### DataClass
+
+The following properties are returned for an exposed dataclass:
+
+
+| Property | Type | Description |
+| -------------- | ------ | -------------------------------------------------------------------------------------------------- |
+| name | String | Name of the dataclass |
+| collectionName | String | Collection name of the dataclass |
+| scope | String | Scope for the dataclass (note that only datastore classes whose **Scope** is public are displayed) |
+| dataURI | String | A URI to the data in the dataclass |
+
+
+### Attribute(s)
+
+Here are the properties for each exposed attribute that are returned:
+
+| Property | Type | Description |
+| ------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| name | String | Attribute name. |
+| kind | String | Attribute type (storage, calculated, relatedEntity, and alias). |
+| scope | String | Scope of the attribute (only those attributes whose scope is Public will appear). |
+| indexed | String | If any **Index Kind** was selected, this property will return true. Otherwise, this property does not appear. |
+| type | String | Attribute type (bool, blob, byte, date, duration, image, long, long64, number, string, uuid, or word) or the datastore class for a N->1 relation attribute. |
+| minLength | Number | This property returns the value entered for the **Min Length** property, if one was entered. |
+| maxLength | Number | This property returns the value entered for the **Max Length** property, if one was entered. |
+| autoComplete | Boolean | This property returns True if the **Autocomplete** property was checked. Otherwise, this property does not appear. |
+| identifying | Boolean | This property returns True if the **Identifying** property was checked. Otherwise, this property does not appear. |
+| multiLine | Boolean | This property returns True if the **Multiline** property was checked. Otherwise, this property does not appear. |
+| path | String | For an alias attribute, the type is a path (*e.g.*, employer.name) |
+| readOnly | Boolean | This property is True if the attribute is of type calculated or alias. |
+| defaultFormat | Object | If you define a format for the attribute in the **Default Format** property, it will appear in the "format" property. |
+
+### Method(s)
+
+Defines the project methods asociated to the dataclass, if any.
+
+### Primary Key
+
+The key object returns the **name** of the attribute defined as the **Primary Key** for the datastore class.
+
+
+### Example
+You can retrieve the information regarding a specific datastore class.
+
+`GET /rest/$catalog/Employee`
+
+**Result**:
+
+````
+{
+ name: "Employee",
+ className: "Employee",
+ collectionName: "EmployeeCollection",
+ scope: "public",
+ dataURI: "http://127.0.0.1:8081/rest/Employee",
+ defaultTopSize: 20,
+ extraProperties: {
+ panelColor: "#76923C",
+ __CDATA: "\n\n\t\t\n",
+ panel: {
+ isOpen: "true",
+ pathVisible: "true",
+ __CDATA: "\n\n\t\t\t\n",
+ position: {
+ X: "394",
+ Y: "42"
+ }
+ }
+ },
+ attributes: [
+ {
+ name: "ID",
+ kind: "storage",
+ scope: "public",
+ indexed: true,
+ type: "long",
+ identifying: true
+ },
+ {
+ name: "firstName",
+ kind: "storage",
+ scope: "public",
+ type: "string"
+ },
+ {
+ name: "lastName",
+ kind: "storage",
+ scope: "public",
+ type: "string"
+ },
+ {
+ name: "fullName",
+ kind: "calculated",
+ scope: "public",
+ type: "string",
+ readOnly: true
+ },
+ {
+ name: "salary",
+ kind: "storage",
+ scope: "public",
+ type: "number",
+ defaultFormat: {
+ format: "$###,###.00"
+ }
+ },
+ {
+ name: "photo",
+ kind: "storage",
+ scope: "public",
+ type: "image"
+ },
+ {
+ name: "employer",
+ kind: "relatedEntity",
+ scope: "public",
+ type: "Company",
+ path: "Company"
+ },
+ {
+ name: "employerName",
+ kind: "alias",
+ scope: "public",
+ type: "string",
+ path: "employer.name",
+ readOnly: true
+ },
+ {
+ name: "description",
+ kind: "storage",
+ scope: "public",
+ type: "string",
+ multiLine: true
+ },
+ ],
+ key: [
+ {
+ name: "ID"
+ }
+ ]
+}
+````
+
diff --git a/website/translated_docs/pt/REST/$compute.md b/website/translated_docs/pt/REST/$compute.md
new file mode 100644
index 00000000000000..d60c8fcfaf6a9a
--- /dev/null
+++ b/website/translated_docs/pt/REST/$compute.md
@@ -0,0 +1,84 @@
+---
+id: compute
+title: '$compute'
+---
+
+Calculate on specific attributes (*e.g.*, `Employee/salary/?$compute=sum)` or in the case of an Object attribute (*e.g.*, Employee/objectAtt.property1/?$compute=sum)
+
+
+## Description
+
+This parameter allows you to do calculations on your data.
+
+If you want to perform a calculation on an attribute, you write the following:
+
+ `GET /rest/Employee/salary/?$compute=$all`
+
+If you want to pass an Object attribute, you must pass one of its property. For example:
+
+ `GET /rest/Employee/objectAtt.property1/?$compute=$all`
+
+You can use any of the following keywords:
+
+
+| Keyword | Description |
+| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| $all | A JSON object that defines all the functions for the attribute (average, count, min, max, and sum for attributes of type Number and count, min, and max for attributes of type String |
+| average | Get the average on a numerical attribute |
+| count | Get the total number in the collection or datastore class (in both cases you must specify an attribute) |
+| min | Get the minimum value on a numerical attribute or the lowest value in an attribute of type String |
+| max | Get the maximum value on a numerical attribute or the highest value in an attribute of type String |
+| sum | Get the sum on a numerical attribute |
+
+
+## Example
+
+If you want to get all the computations for an attribute of type Number, you can write:
+
+ `GET /rest/Employee/salary/?$compute=$all`
+
+**Response**:
+
+````
+{
+ "salary": {
+ "count": 4,
+ "sum": 335000,
+ "average": 83750,
+ "min": 70000,
+ "max": 99000
+ }
+}
+````
+
+If you want to get all the computations for an attribute of type String, you can write:
+
+ `GET /rest/Employee/firstName/?$compute=$all`
+
+**Response**:
+
+````
+{
+ "salary": {
+ "count": 4,
+ "min": Anne,
+ "max": Victor
+ }
+}
+````
+
+If you want to just get one calculation on an attribute, you can write the following:
+
+ `GET /rest/Employee/salary/?$compute=sum`
+
+**Response**:
+
+`235000`
+
+If you want to perform a calculation on an Object attribute, you can write the following:
+
+ `GET /rest/Employee/objectAttribute.property1/?$compute=sum`
+
+Response:
+
+`45`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$directory.md b/website/translated_docs/pt/REST/$directory.md
new file mode 100644
index 00000000000000..b8c89255a8ae4c
--- /dev/null
+++ b/website/translated_docs/pt/REST/$directory.md
@@ -0,0 +1,182 @@
+---
+id: directory
+title: '$directory'
+---
+
+The directory handles user access through REST requests.
+
+
+## Available syntaxes
+
+| Syntax | Method | Description |
+| --------------------------------------------------------------------- | ------ | ---------------------------------------------------------------- |
+| [**$directory/currentUser**](#directorycurrentuser) | `GET` | Returns information about the current user |
+| [**$directory/currentUserBelongsTo**](#directorycurrentuserbelongsto) | `POST` | Indicates if the current user belongs to a specific group |
+| [**$directory/login**](#directorylogin) | `POST` | Opens a REST session on your 4D application and logs in the user |
+| [**$directory/logout**](#directorylogout) | `GET` | Logs out the current user |
+
+
+
+## $directory/currentUser
+Returns information about the current user
+
+
+### Description
+By calling `$directory/currentUser` after a user has logged in, you can retrieve the following information:
+
+| Property | Type | Description |
+| -------- | ------ | ------------------------------------------ |
+| userName | String | Username used to log into the application. |
+| fullName | String | Full name of the user. |
+| ID | String | UUID referencing the user. |
+
+
+### Example
+ Call `$directory/currentUser` to find out the current user of your application.
+
+`GET /rest/$directory/currentUser`
+
+**Result**:
+
+````
+{
+ "result": {
+ "userName": "jsmith",
+ "fullName": "John Smith",
+ "ID": "12F169764253481E89F0E4EA8C1D791A"
+ }
+}
+````
+
+
+If no user has been logged in, the result is:
+
+````
+{
+ "result": null
+}
+````
+
+
+## $directory/currentUserBelongsTo
+
+Indicates if the current user belongs to a specific GroupID or GroupName.
+
+### Description
+To find out if the currently logged in user belongs to a specific group, use `$directory/currentUserBelongsTo`. You can pass either the group ID (which is the group's UUID reference number) or its name as defined in the datastore directory.
+
+If we want to check to see if the current user is a member of the Sales group, we must pass either *GroupID* or *GroupName* in the `POST`.
+
+### Example
+Below is an example of how to pass either the GroupID or GroupName in the `POST` data.
+
+`POST /rest/$directory/currentUserBelongsTo`
+
+**POST data**:
+
+`["88BAF858143D4B13B26AF48C7A5A7A68"]`
+
+or
+
+`["Sales"]`
+
+**Result**:
+
+If the current user is in the group specified in the array, the response will be:
+
+````
+{
+ "result": true
+}
+````
+
+Otherwise, it will return:
+
+````
+{
+ "result": false
+}
+````
+
+
+## $directory/login
+
+Opens a REST session on your 4D application and logs in the user.
+
+### Description
+Use `$directory/login` to open a session in your 4D application through REST and login a user. You can also modify the default 4D session timeout.
+
+All parameters must be passed in **headers** of a POST method:
+
+| Header key | Header value |
+| ------------------ | ---------------------------------------------------------------------------- |
+| username-4D | User - Not mandatory |
+| password-4D | Password - Not mandatory |
+| hashed-password-4D | Hashed password - Not mandatory |
+| session-4D-length | Session inactivity timeout (minutes). Cannot be less than 60 - Not mandatory |
+
+
+### Example
+
+```code4d
+C_TEXT($response;$body_t)
+ARRAY TEXT($hKey;3)
+ARRAY TEXT($hValues;3)
+$hKey{1}:="username-4D"
+$hKey{2}:="hashed-password-4D"
+$hKey{3}:="session-4D-length"
+$hValues{1}:="john"
+$hValues{2}:=Generate digest("123";4D digest)
+$hValues{3}:=120
+$httpStatus:=HTTP Request(HTTP POST method;"database.example.com:9000";$body_t;$response;$hKey;$hValues)
+```
+
+**Result**:
+
+If the login was successful, the result will be:
+
+```
+{
+ "result": true
+}
+```
+
+Otherwise, the response will be:
+
+```
+{
+ "result": false
+}
+```
+
+
+## $directory/logout
+
+
+Logs out the current user.
+
+### Description
+To log out the current user from your application, use `$directory/logout`.
+
+### Example
+You call `$directory/logout` to log the current user out of the application.
+
+`GET /rest/$directory/logout`
+
+**Result**:
+
+If the logout was successful, the result will be:
+
+````
+{
+ "result": true
+}
+````
+
+Otherwise, the response will be:
+
+````
+{
+ "result": false
+}
+````
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$distinct.md b/website/translated_docs/pt/REST/$distinct.md
new file mode 100644
index 00000000000000..6c6c98ab886a47
--- /dev/null
+++ b/website/translated_docs/pt/REST/$distinct.md
@@ -0,0 +1,29 @@
+---
+id: distinct
+title: '$distinct'
+---
+
+
+Returns the distinct values for a specific attribute in a collection (*e.g.*, `Company/name?$filter="name=a*"&$distinct=true`)
+
+
+## Description
+
+`$distinct` allows you to return a collection containing the distinct values for a query on a specific attribute. Only one attribute in the dataclass can be specified. Generally, the String type is best; however, you can also use it on any attribute type that could contain multiple values.
+
+You can also use `$skip` and `$top/$limit` as well, if you'd like to navigate the selection before it's placed in an array.
+
+## Example
+In our example below, we want to retrieve the distinct values for a company name starting with the letter "a":
+
+ `GET /rest/Company/name?$filter="name=a*"&$distinct=true`
+
+**Response**:
+
+````
+[
+ "Adobe",
+ "Apple"
+]
+````
+
diff --git a/website/translated_docs/pt/REST/$entityset.md b/website/translated_docs/pt/REST/$entityset.md
new file mode 100644
index 00000000000000..a898f38f9968c3
--- /dev/null
+++ b/website/translated_docs/pt/REST/$entityset.md
@@ -0,0 +1,98 @@
+---
+id: entityset
+title: '$entityset'
+---
+
+After creating an entity set by using `$method=entityset`, you can then use it subsequently.
+
+
+## Available syntaxes
+
+| Syntax | Example | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------ |
+| [**$entityset/{entitySetID}**](#entitysetentitySetID) | `/People/$entityset/0ANUMBER` | Retrieves an existing entity set |
+| [**$entityset/{entitySetID}?$operator...&$otherCollection**](#entitysetentitysetidoperatorothercollection) | `/Employee/$entityset/0ANUMBER?$logicOperator=AND &$otherCollection=C0ANUMBER` | Creates a new entity set from comparing existing entity sets |
+
+
+
+
+## $entityset/{entitySetID}
+
+Retrieves an existing entity set (*e.g.*, `People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`)
+
+
+### Description
+
+This syntax allows you to execue any operation on a defined entity set.
+
+Because entity sets have a time limit on them (either by default or after calling `$timeout` with your own limit), you can call `$savedfilter` and `$savedorderby` to save the filter and order by statements when you create an entity set.
+
+When you retrieve an existing entity set stored in 4D Server's cache, you can also apply any of the following to the entity set: [`$expand`]($expand.md), [`$filter`]($filter), [`$orderby`]($orderby), [`$skip`]($skip.md), and [`$top/$limit`](top_$limit.md).
+
+### Example
+
+After you create an entity set, the entity set ID is returned along with the data. You call this ID in the following manner:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7`
+
+
+## $entityset/{entitySetID}?$operator...&$otherCollection
+
+Create another entity set based on previously created entity sets
+
+| Parameter | Type | Description |
+| ---------------- | ------ | -------------------------------------------------------------- |
+| $operator | String | One of the logical operators to test with the other entity set |
+| $otherCollection | String | Entity set ID |
+
+
+
+### Description
+
+After creating an entity set (entity set #1) by using `$method=entityset`, you can then create another entity set by using the `$entityset/{entitySetID}?$operator... &$otherCollection` syntax, the `$operator` property (whose values are shown below), and another entity set (entity set #2) defined by the `$otherCollection` property. The two entity sets must be in the same datastore class.
+
+You can then create another entity set containing the results from this call by using the `$method=entityset` at the end of the REST request.
+
+Here are the logical operators:
+
+| Operator | Description |
+| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| AND | Returns the entities in common to both entity sets |
+| OR | Returns the entities in both entity sets |
+| EXCEPT | Returns the entities in entity set #1 minus those in entity set #2 |
+| INTERSECT | Returns either true or false if there is an intersection of the entities in both entity sets (meaning that least one entity is common in both entity sets) |
+> The logical operators are not case-sensitive, so you can write "AND" or "and".
+
+Below is a representation of the logical operators based on two entity sets. The red section is what is returned.
+
+**AND**
+
+
+
+**OR**
+
+
+
+**EXCEPT**
+
+
+
+
+The syntax is as follows:
+
+ `GET /rest/dataClass/$entityset/entitySetID?$logicOperator=AND&$otherCollection=entitySetID`
+
+### Example
+In the example below, we return the entities that are in both entity sets since we are using the AND logical operator:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=AND&$otherCollection=C05A0D887C664D4DA1B38366DD21629B`
+
+If we want to know if the two entity sets intersect, we can write the following:
+
+ `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=intersect&$otherCollection=C05A0D887C664D4DA1B38366DD21629B`
+
+If there is an intersection, this query returns true. Otherwise, it returns false.
+
+In the following example we create a new entity set that combines all the entities in both entity sets:
+
+`GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=OR&$otherCollection=C05A0D887C664D4DA1B38366DD21629B&$method=entityset`
diff --git a/website/translated_docs/pt/REST/$expand.md b/website/translated_docs/pt/REST/$expand.md
new file mode 100644
index 00000000000000..37e2ce4803fcda
--- /dev/null
+++ b/website/translated_docs/pt/REST/$expand.md
@@ -0,0 +1,25 @@
+---
+id: expand
+title: '$expand'
+---
+
+
+Expands an image stored in an Image attribute (*e.g.*, `Employee(1)/photo?$imageformat=best&$expand=photo`) or Expands an BLOB attribute to save it.
+
+> **Compatibility**: For compatibility reasons, $expand can be used to expand a relational attribute (*e.g.*, `Company(1)?$expand=staff` or `Employee/?$filter="firstName BEGIN a"&$expand=employer`). It is however recommended to use [`$attributes`]($attributes.md) for this feature.
+
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your datastore class, you can write the following by also passing "true" to $binary:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$filter.md b/website/translated_docs/pt/REST/$filter.md
new file mode 100644
index 00000000000000..70c96d705a56a1
--- /dev/null
+++ b/website/translated_docs/pt/REST/$filter.md
@@ -0,0 +1,100 @@
+---
+id: filter
+title: '$filter'
+---
+
+
+
+Allows to query the data in a dataclass or method *(e.g.*, `$filter="firstName!='' AND salary>30000"`)
+
+
+## Description
+
+This parameter allows you to define the filter for your dataclass or method.
+
+### Using a simple filter
+
+A filter is composed of the following elements:
+
+**{attribute} {comparator} {value}**
+
+For example: `$filter="firstName=john"` where `firstName` is the **attribute**, `=` is the **comparator** and `john` is the **value**.
+
+### Using a complex filter
+
+A more compex filter is composed of the following elements, which joins two queries:
+
+**{attribute} {comparator} {value} {AND/OR/EXCEPT} {attribute} {comparator} {value}**
+
+
+For example: `$filter="firstName=john AND salary>20000"` where `firstName` and `salary` are attributes in the Employee datastore class.
+
+### Using the params property
+
+You can also use 4D's params property.
+
+**{attribute} {comparator} {placeholder} {AND/OR/EXCEPT} {attribute} {comparator} {placeholder}&$params='["{value1}","{value2}"]"'**
+
+For example: `$filter="firstName=:1 AND salary>:2"&$params='["john",20000]'"` where firstName and salary are attributes in the Employee datastore class.
+
+For more information regarding how to query data in 4D, refer to the [dataClass.query()](https://doc.4d.com/4Dv18/4D/18/dataClassquery.305-4505887.en.html) documentation.
+> When inserting quotes (') or double quotes ("), you must escape them using using their character code:
+>
+> Quotes ('): \u0027 Double quotes ("): \u0022
+>
+> For example, you can write the following when passing a value with a quote when using the *params* property: `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"`
+
+## Attribute
+
+If the attribute is in the same dataclass, you can just pass it directly (*e.g.*, `firstName`). However, if you want to query another dataclass, you must include the relation attribute name plus the attribute name, i.e. the path (*e.g.*, employer.name). The attribute name is case-sensitive (`firstName` is not equal to `FirstName`).
+
+You can also query attributes of type Object by using dot-notation. For example, if you have an attribute whose name is "objAttribute" with the following structure:
+
+```
+{
+ prop1: "this is my first property",
+ prop2: 9181,
+ prop3: ["abc","def","ghi"]
+}
+```
+
+You can search in the object by writing the following:
+
+`GET /rest/Person/?filter="objAttribute.prop2 == 9181"`
+
+## Comparator
+
+The comparator must be one of the following values:
+
+| Comparator | Description |
+| ---------- | ------------------------ |
+| = | equals to |
+| != | not equal to |
+| > | greater than |
+| >= | greater than or equal to |
+| < | less than |
+| <= | less than or equal to |
+| begin | begins with |
+
+## Examples
+
+In the following example, we look for all employees whose last name begins with a "j":
+
+```
+ GET /rest/Employee?$filter="lastName begin j"
+```
+
+In this example, we search the Employee datastore class for all employees whose salary is greater than 20,000 and who do not work for a company named Acme:
+
+```
+ GET /rest/Employee?$filter="salary>20000 AND
+ employer.name!=acme"&$orderby="lastName,firstName"
+```
+
+In this example, we search the Person datastore class for all the people whose number property in the anotherobj attribute of type Object is greater than 50:
+
+```
+ GET /rest/Person/?filter="anotherobj.mynum > 50"
+```
diff --git a/website/translated_docs/pt/REST/$imageformat.md b/website/translated_docs/pt/REST/$imageformat.md
new file mode 100644
index 00000000000000..ef61f166a921f0
--- /dev/null
+++ b/website/translated_docs/pt/REST/$imageformat.md
@@ -0,0 +1,29 @@
+---
+id: imageformat
+title: '$imageformat'
+---
+
+Defines which image format to use for retrieving images (*e.g.*, `$imageformat=png`)
+
+## Description
+
+Define which format to use to display images. By default, the best format for the image will be chosen. You can, however, select one of the following formats:
+
+| Type | Description |
+| ---- | ------------------------------ |
+| GIF | GIF format |
+| PNG | PNG format |
+| JPEG | JPEG format |
+| TIFF | TIFF format |
+| best | Best format based on the image |
+
+Once you have defined the format, you must pass the image attribute to [`$expand`]($expand.md) to load the photo completely.
+
+If there is no image to be loaded or the format doesn't allow the image to be loaded, the response will be empty.
+
+## Example
+
+The following example defines the image format to JPEG regardless of the actual type of the photo and passes the actual version number sent by the server:
+
+`GET /rest/Employee(1)/photo?$imageformat=jpeg&$version=3&$expand=photo`
+
diff --git a/website/translated_docs/pt/REST/$info.md b/website/translated_docs/pt/REST/$info.md
new file mode 100644
index 00000000000000..7815fcc7d19cce
--- /dev/null
+++ b/website/translated_docs/pt/REST/$info.md
@@ -0,0 +1,147 @@
+---
+id: info
+title: '$info'
+---
+
+Returns information about the entity sets currently stored in 4D Server's cache as well as user sessions
+
+## Description
+When you call this request for your project, you retrieve information in the following properties:
+
+| Property | Type | Description |
+| -------------- | ------ | ---------------------------------------------------------------------------------------------- |
+| cacheSize | Number | Wakanda Server's cache size. |
+| usedCache | Number | How much of Wakanda Server's cache has been used. |
+| entitySetCount | Number | Number of entity sets. |
+| entitySet | Array | An array in which each object contains information about each entity set. |
+| ProgressInfo | Array | An array containing information about progress indicator information. |
+| sessionInfo | Array | An array in which each object contains information about each user session. |
+| jsContextInfo | Array | An array containing one object that returns the information about the JavaScript context pool. |
+
+### entitySet
+For each entity set currently stored in 4D Server's cache, the following information is returned:
+
+
+| Property | Type | Description |
+| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| id | String | A UUID that references the entity set. |
+| tableName | String | Name of the datastore class. |
+| selectionSize | Number | Number of entities in the entity set. |
+| sorted | Boolean | Returns true if the set was sorted (using `$orderby`) or false if it's not sorted. |
+| refreshed | Date | When the entity set was created or the last time it was used. |
+| expires | Date | When the entity set will expire (this date/time changes each time when the entity set is refreshed). The difference between refreshed and expires is the timeout for an entity set. This value is either two hours by default or what you defined using `$timeout`. |
+
+For information about how to create an entity set, refer to `$method=entityset`. If you want to remove the entity set from 4D Server's cache, use `$method=release`.
+> 4D also creates its own entity sets for optimization purposes, so the ones you create with `$method=entityset` are not the only ones returned.
+> **IMPORTANT** If your project is in **Controlled Admin Access Mode**, you must first log into the project as a user in the Admin group.
+
+### sessionInfo
+
+For each user session, the following information is returned in the *sessionInfo* array:
+
+| Property | Type | Description |
+| ---------- | ------ | ------------------------------------------------------------ |
+| sessionID | String | A UUID that references the session. |
+| userID | String | A UUID that references the user who runs the session. |
+| userName | String | The name of the user who runs the session. |
+| lifeTime | Number | The lifetime of a user session in seconds (3600 by default). |
+| expiration | Date | The current expiration date and time of the user session. |
+
+### jsContextInfo
+
+The object in the **jsContextInfo** array details the JavaScript context pool:
+
+
+| Property | Type | Description |
+| --------------------- | ------- | ------------------------------------------------------------------------------------- |
+| contextPoolSize | Number | Maximum number of reusable contexts that can be stored in the JS pool (50 by default) |
+| activeDebugger | Boolean | Debugger state (false by default) |
+| usedContextCount | Number | Number of used contexts |
+| usedContextMaxCount | Number | Maximum number of contexts that have been used simultaneously |
+| reusableContextCount | Number | Number of reusable contexts (both used and unused) |
+| unusedContextCount | Number | Number of unused contexts |
+| createdContextCount | Number | Number of contexts created since the project was started |
+| destroyedContextCount | Number | Number of contexts destroyed since the project was started |
+
+## Example
+
+Retrieve information about the entity sets currently stored in 4D Server's cache as well as user sessions:
+
+`GET /rest/$info`
+
+**Result**:
+
+```
+{
+cacheSize: 209715200,
+usedCache: 3136000,
+entitySetCount: 4,
+entitySet: [
+ {
+ id: "1418741678864021B56F8C6D77F2FC06",
+ tableName: "Company",
+ selectionSize: 1,
+ sorted: false,
+ refreshed: "2011-11-18T10:30:30Z",
+ expires: "2011-11-18T10:35:30Z"
+ },
+ {
+ id: "CAD79E5BF339462E85DA613754C05CC0",
+ tableName: "People",
+ selectionSize: 49,
+ sorted: true,
+ refreshed: "2011-11-18T10:28:43Z",
+ expires: "2011-11-18T10:38:43Z"
+ },
+ {
+ id: "F4514C59D6B642099764C15D2BF51624",
+ tableName: "People",
+ selectionSize: 37,
+ sorted: false,
+ refreshed: "2011-11-18T10:24:24Z",
+ expires: "2011-11-18T12:24:24Z"
+ }
+],
+ProgressInfo: [
+ {
+ UserInfo: "flushProgressIndicator",
+ sessions: 0,
+ percent: 0
+ },
+ {
+ UserInfo: "indexProgressIndicator",
+ sessions: 0,
+ percent: 0
+ }
+],
+sessionInfo: [
+ {
+ sessionID: "6657ABBCEE7C3B4089C20D8995851E30",
+ userID: "36713176D42DB045B01B8E650E8FA9C6",
+ userName: "james",
+ lifeTime: 3600,
+ expiration: "2013-04-22T12:45:08Z"
+ },
+ {
+ sessionID: "A85F253EDE90CA458940337BE2939F6F",
+ userID: "00000000000000000000000000000000",
+ userName: "default guest",
+ lifeTime: 3600,
+ expiration: "2013-04-23T10:30:25Z"
+}
+],
+jsContextInfo: [
+ {
+ "contextPoolSize": 50,
+ "activeDebugger": false,
+ "usedContextCount": 1,
+ "usedContextMaxCount": 1,
+ "reusableContextCount": 1,
+ "unusedContextCount": 0,
+ "createdContextCount": 4,
+ "destroyedContextCount": 3
+ }
+]
+}
+```
+> The progress indicator information listed after the entity sets is used internally by 4D.
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$method.md b/website/translated_docs/pt/REST/$method.md
new file mode 100644
index 00000000000000..7f2684df95ac74
--- /dev/null
+++ b/website/translated_docs/pt/REST/$method.md
@@ -0,0 +1,420 @@
+---
+id: method
+title: '$method'
+---
+
+This parameter allows you to define the operation to execute with the returned entity or entity selection.
+
+## Available syntaxes
+
+| Syntax | Example | Description |
+| ----------------------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| [**$method=delete**](#methoddelete) | `POST /Employee?$filter="ID=11"& $method=delete` | Deletes the current entity, entity collection, or entity selection |
+| [**$method=entityset**](#methodentityset) | `GET /People/?$filter="ID>320"& $method=entityset& $timeout=600` | Creates an entity set in 4D Server's cache based on the collection of entities defined in the REST request |
+| [**$method=release**](#methodrelease) | `GET /Employee/$entityset/4CANUMBER?$method=release` | Releases an existing entity set stored in 4D Server's cache |
+| [**$method=subentityset**](#methodsubentityset) | `GET /Company(1)/staff?$expand=staff& $method=subentityset& $subOrderby=lastName ASC` | Creates an entity set based on the collection of related entities defined in the REST request |
+| [**$method=update**](#methodupdate) | `POST /Person/?$method=update` | Updates and/or creates one or more entities |
+| [**$method=validate**](#methodvalidate) | `POST /Employee/?$method=validate` | Validates the request when adding and/or modifying entities |
+
+
+
+
+
+## $method=delete
+
+Deletes the current entity, entity collection, or entity selection (created through REST)
+
+
+### Description
+
+With `$method=delete`, you can delete an entity or an entire entity collection. You can define the collection of entities by using, for example, [`$filter`]($filter.md) or specifying one directly using [`{dataClass}({key})`](%7BdataClass%7D.html#dataclasskey) *(e.g.*, /Employee(22)).
+
+You can also delete the entities in an entity set, by calling [`$entityset/{entitySetID}`]($entityset.md#entitysetentitysetid).
+
+## Example
+You can then write the following REST request to delete the entity whose key is 22:
+
+ `POST /rest/Employee(22)/?$method=delete`
+
+You can also do a query as well using $filter:
+
+ `POST /rest/Employee?$filter="ID=11"&$method=delete`
+
+You can also delete an entity set using $entityset/{entitySetID}:
+
+ `POST /rest/Employee/$entityset/73F46BE3A0734EAA9A33CA8B14433570?$method=delete`
+
+Response:
+
+```
+{
+ "ok": true
+}
+```
+
+
+
+## $method=entityset
+
+Creates an entity set in 4D Server's cache based on the collection of entities defined in the REST request
+
+### Description
+
+When you create a collection of entities in REST, you can also create an entity set that will be saved in 4D Server's cache. The entity set will have a reference number that you can pass to `$entityset/{entitySetID}` to access it. By default, it is valid for two hours; however, you can modify that amount of time by passing a value (in seconds) to $timeout.
+
+If you have used `$savedfilter` and/or `$savedorderby` (in conjunction with `$filter` and/or `$orderby`) when you created your entity set, you can recreate it with the same reference ID even if it has been removed from 4D Server's cache.
+
+### Example
+
+To create an entity set, which will be saved in 4D Server's cache for two hours, add `$method=entityset` at the end of your REST request:
+
+ `GET /rest/People/?$filter="ID>320"&$method=entityset`
+
+You can create an entity set that will be stored in 4D Server's cache for only ten minutes by passing a new timeout to `$timeout`:
+
+ `GET /rest/People/?$filter="ID>320"&$method=entityset&$timeout=600`
+
+You can also save the filter and order by, by passing true to `$savedfilter` and `$savedorderby`.
+> `$skip` and `$top/$limit` are not taken into consideration when saving an entity set.
+
+After you create an entity set, the first element, `__ENTITYSET`, is added to the object returned and indicates the URI to use to access the entity set:
+
+`__ENTITYSET: "http://127.0.0.1:8081/rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7"`
+
+
+
+
+## $method=release
+
+Releases an existing entity set stored in 4D Server's cache.
+
+### Description
+
+You can release an entity set, which you created using [`$method=entityset`](#methodentityset), from 4D Server's cache.
+
+### Example
+
+Release an existing entity set:
+
+`GET /rest/Employee/$entityset/4C51204DD8184B65AC7D79F09A077F24?$method=release`
+
+#### Response:
+
+If the request was successful, the following response is returned:
+
+```
+{
+ "ok": true
+}
+If the entity set wasn't found, an error is returned:
+
+{
+ "__ERROR": [
+ {
+ "message": "Error code: 1802\nEntitySet \"4C51204DD8184B65AC7D79F09A077F24\" cannot be found\ncomponent: 'dbmg'\ntask 22, name: 'HTTP connection handler'\n",
+ "componentSignature": "dbmg",
+ "errCode": 1802
+ }
+ ]
+}
+```
+
+
+## $method=subentityset
+
+Creates an entity set in 4D Server's cache based on the collection of related entities defined in the REST request
+
+
+### Description
+
+`$method=subentityset` allows you to sort the data returned by the relation attribute defined in the REST request.
+
+To sort the data, you use the `$subOrderby` property. For each attribute, you specify the order as ASC (or asc) for ascending order and DESC (desc) for descending order. By default, the data is sorted in ascending order.
+
+If you want to specify multiple attributes, you can delimit them with a comma, µ, `$subOrderby="lastName desc, firstName asc"`.
+
+### Example
+
+If you want to retrieve only the related entities for a specific entity, you can make the following REST request where staff is the relation attribute in the Company dataclass linked to the Employee dataclass:
+
+`GET /rest/Company(1)/staff?$expand=staff&$method=subentityset&$subOrderby=lastName ASC`
+
+#### Response:
+
+```
+{
+
+ "__ENTITYSET": "/rest/Employee/$entityset/FF625844008E430B9862E5FD41C741AB",
+ "__entityModel": "Employee",
+ "__COUNT": 2,
+ "__SENT": 2,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "firstName": "Linda",
+ "lastName": "Jones",
+ "birthday": "1970-10-05T14:23:00Z",
+ "employer": {
+ "__deferred": {
+ "uri": "/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ },
+ {
+ "__KEY": "1",
+ "__STAMP": 3,
+ "ID": 1,
+ "firstName": "John",
+ "lastName": "Smith",
+ "birthday": "1985-11-01T15:23:00Z",
+ "employer": {
+ "__deferred": {
+ "uri": "/rest/Company(1)",
+ "__KEY": "1"
+ }
+ }
+ }
+ ]
+
+}
+```
+
+
+## $method=update
+
+
+Updates and/or creates one or more entities
+
+### Description
+
+`$method=update` allows you to update and/or create one or more entities in a single **POST**. If you update and/or create one entity, it is done in an object with each property an attribute with its value, *e.g.*, `{ lastName: "Smith" }`. If you update and/or create multiple entities, you must create an array of objects.
+
+To update an entity, you must pass the `__KEY` and `__STAMP` parameters in the object along with any modified attributes. If both of these parameters are missing, an entity will be added with the values in the object you send in the body of your **POST**.
+
+All triggers, calculated attributes, and events are executed immediately when saving the entity to the server. The response contains all the data as it exists on the server.
+
+You can also put these requests to create or update entities in a transaction by calling `$atomic/$atonce`. If any errors occur during data validation, none of the entities are saved. You can also use $method=validate to validate the entities before creating or updating them.
+
+If a problem arises while adding or modifying an entity, an error will be returned to you with that information.
+> Notes for specific attribute types:
+>
+> * **Dates** must be expressed in JS format: YYYY-MM-DDTHH:MM:SSZ (e.g., "2010-10-05T23:00:00Z"). If you have selected the Date only property for your Date attribute, the time zone and time (hour, minutes, and seconds) will be removed. In this case, you can also send the date in the format that it is returned to you dd!mm!yyyy (e.g., 05!10!2013).
+> * **Booleans** are either true or false.
+> * Uploaded files using `$upload` can be applied to an attribute of type Image or BLOB by passing the object returned in the following format { "ID": "D507BC03E613487E9B4C2F6A0512FE50"}
+
+### Example
+
+To update a specific entity, you use the following URL:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+{
+ __KEY: "340",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Miller"
+}
+```
+
+The firstName and lastName attributes in the entity indicated above will be modified leaving all other attributes (except calculated ones based on these attributes) unchanged.
+
+If you want to create an entity, you can POST the attributes using this URL:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+{
+ firstName: "John",
+ lastName: "Smith"
+}
+```
+
+You can also create and update multiple entities at the same time using the same URL above by passing multiple objects in an array to the POST:
+
+ `POST /rest/Person/?$method=update`
+
+**POST data:**
+
+```
+[{
+ "__KEY": "309",
+ "__STAMP": 5,
+ "ID": "309",
+ "firstName": "Penelope",
+ "lastName": "Miller"
+}, {
+ "firstName": "Ann",
+ "lastName": "Jones"
+}]
+```
+
+**Response:**
+
+When you add or modify an entity, it is returned to you with the attributes that were modified. For example, if you create the new employee above, the following will be returned:
+
+```
+{
+ "__KEY": "622",
+ "__STAMP": 1,
+ "uri": "http://127.0.0.1:8081/rest/Employee(622)",
+ "ID": 622,
+ "firstName": "John",
+ "firstName": "Smith",
+ "fullName": "John Smith"
+}
+```
+> The only reason the fullName attribute is returned is because it is a calculated attribute based on both firstName and lastName.
+
+If, for example, the stamp is not correct, the following error is returned:
+
+```
+{
+ "__ENTITIES": [
+ {
+ "__KEY": "309",
+ "__STAMP": 1,
+ "ID": 309,
+ "firstName": "Betty",
+ "lastName": "Smith",
+ "fullName": "Betty Smith",
+ "__ERROR": [
+ {
+ "message": "Given stamp does not match current one for record# 308 of table Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1263
+ },
+ {
+ "message": "Cannot save record 308 in table Employee of database Widgets",
+ "componentSignature": "dbmg",
+ "errCode": 1046
+ },
+ {
+ "message": "The entity# 308 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+ },
+ {
+ "__KEY": "612",
+ "__STAMP": 4,
+ "uri": "http://127.0.0.1:8081/rest/Employee(612)",
+ "ID": 612,
+ "firstName": "Ann",
+ "lastName": "Jones",
+ "fullName": "Ann Jones"
+ }
+ ]
+}
+```
+
+If, for example, the user does not have the appropriate permissions to update an entity, the following error is returned:
+
+```
+{
+ "__KEY": "2",
+ "__STAMP": 4,
+ "ID": 2,
+ "firstName": "Paula",
+ "lastName": "Miller",
+ "fullName": "Paula Miller",
+ "telephone": "408-555-5555",
+ "salary": 56000,
+ "employerName": "Adobe",
+ "employer": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)",
+ "__KEY": "1"
+ }
+ },
+ "__ERROR": [
+ {
+ "message": "No permission to update for dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1558
+ },
+ {
+ "message": "The entity# 1 of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1517
+ }
+ ]
+}
+```
+
+
+## $method=validate
+
+Validates the request when adding and/or modifying entities
+
+### Description
+
+Before actually saving a new or modified entity with `$method=update`, you can first try to validate the actions with `$method=validate`.
+
+### Example
+
+In this example, we **POST** the following request to $method=validate:
+
+ `POST /rest/Employee/?$method=validate`
+
+**POST data**:
+
+```
+[{
+ "__KEY": "1",
+ "__STAMP": 8,
+ "firstName": "Pete",
+ "lastName": "Jones",
+ "salary": 75000
+}, {
+ "firstName": "Betty",
+ "lastName": "Miller",
+}]
+```
+
+**Response**:
+
+If the request is successful, the following response is returned:
+
+```
+{
+ "ok": true
+}
+```
+
+Otherwise, you receive an error. In our case, we got an error because our salary field must be inferior to 60000:
+
+```
+{
+ "__ENTITIES": [
+ {
+ "__ERROR": [
+ {
+ "message": "Value cannot be greater than 60000",
+ "componentSignature": "dbmg",
+ "errCode": 1569
+ },
+ {
+ "message": "Entity fails validation",
+ "componentSignature": "dbmg",
+ "errCode": 1570
+ },
+ {
+ "message": "The new entity of the datastore class \"Employee\" cannot be saved",
+ "componentSignature": "dbmg",
+ "errCode": 1534
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/pt/REST/$orderby.md b/website/translated_docs/pt/REST/$orderby.md
new file mode 100644
index 00000000000000..17481423abd973
--- /dev/null
+++ b/website/translated_docs/pt/REST/$orderby.md
@@ -0,0 +1,51 @@
+---
+id: orderby
+title: '$orderby'
+---
+
+
+Sorts the data returned by the attribute and sorting order defined (*e.g.*, `$orderby="lastName desc, salary asc"`)
+
+## Description
+
+`$orderby` orders the entities returned by the REST request. For each attribute, you specify the order as `ASC` (or `asc`) for ascending order and `DESC` (`desc`) for descending order. By default, the data is sorted in ascending order. If you want to specify multiple attributes, you can delimit them with a comma, *e.g.*, `$orderby="lastName desc, firstName asc"`.
+
+
+## Example
+
+In this example, we retrieve entities and sort them at the same time:
+
+ `GET /rest/Employee/?$filter="salary!=0"&$orderby="salary DESC,lastName ASC,firstName ASC"`
+
+The example below sorts the entity set by lastName attribute in ascending order:
+
+ `GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$orderby="lastName"`
+
+**Result**:
+
+```
+{
+ __entityModel: "Employee",
+ __COUNT: 10,
+ __SENT: 10,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith",
+ salary: 90000
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary",
+ salary: 80000
+ },
+// more entities
+ ]
+}
+```
+
diff --git a/website/translated_docs/pt/REST/$querypath.md b/website/translated_docs/pt/REST/$querypath.md
new file mode 100644
index 00000000000000..666c5dc9513b1c
--- /dev/null
+++ b/website/translated_docs/pt/REST/$querypath.md
@@ -0,0 +1,110 @@
+---
+id: querypath
+title: '$querypath'
+---
+
+Returns the query as it was executed by 4D Server (*e.g.*, `$querypath=true`)
+
+## Description
+
+`$querypath` returns the query as it was executed by 4D Server. If, for example, a part of the query passed returns no entities, the rest of the query is not executed. The query requested is optimized as you can see in this `$querypath`.
+
+For more information about query paths, refer to [queryPlan and queryPath](genInfo.md#querypath-and-queryplan).
+
+In the steps collection, there is an object with the following properties defining the query executed:
+
+| Property | Type | Description |
+| ------------- | ---------- | --------------------------------------------------------------------------- |
+| description | String | Actual query executed or "AND" when there are multiple steps |
+| time | Number | Number of milliseconds needed to execute the query |
+| recordsfounds | Number | Number of records found |
+| steps | Collection | An collection with an object defining the subsequent step of the query path |
+
+## Example
+
+If you passed the following query:
+
+ `GET /rest/Employee/$filter="employer.name=acme AND lastName=Jones"&$querypath=true`
+
+And no entities were found, the following query path would be returned, if you write the following:
+
+`GET /rest/$querypath`
+
+**Response**:
+
+```
+__queryPath: {
+
+ steps: [
+ {
+ description: "AND",
+ time: 0,
+ recordsfounds: 0,
+ steps: [
+ {
+ description: "Join on Table : Company : People.employer = Company.ID",
+ time: 0,
+ recordsfounds: 0,
+ steps: [
+ {
+ steps: [
+ {
+ description: "Company.name = acme",
+ time: 0,
+ recordsfounds: 0
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+
+}
+```
+
+If, on the other hand, the first query returns more than one entity, the second one will be executed. If we execute the following query:
+
+ `GET /rest/Employee/$filter="employer.name=a* AND lastName!=smith"&$querypath=true`
+
+If at least one entity was found, the following query path would be returned, if you write the following:
+
+ `GET /rest/$querypath`
+
+**Respose**:
+
+```
+"__queryPath": {
+ "steps": [
+ {
+ "description": "AND",
+ "time": 1,
+ "recordsfounds": 4,
+ "steps": [
+ {
+ "description": "Join on Table : Company : Employee.employer = Company.ID",
+ "time": 1,
+ "recordsfounds": 4,
+ "steps": [
+ {
+ "steps": [
+ {
+ "description": "Company.name LIKE a*",
+ "time": 0,
+ "recordsfounds": 2
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Employee.lastName # smith",
+ "time": 0,
+ "recordsfounds": 4
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/pt/REST/$queryplan.md b/website/translated_docs/pt/REST/$queryplan.md
new file mode 100644
index 00000000000000..6032a4a3aa2093
--- /dev/null
+++ b/website/translated_docs/pt/REST/$queryplan.md
@@ -0,0 +1,42 @@
+---
+id: queryplan
+title: '$queryplan'
+---
+
+
+Returns the query as it was passed to 4D Server (*e.g.*, `$queryplan=true`)
+
+## Description
+$queryplan returns the query plan as it was passed to 4D Server.
+
+| Property | Type | Description |
+| -------- | ------ | ------------------------------------------------------------------------------------------- |
+| item | String | Actual query executed |
+| subquery | Array | If there is a subquery, an additional object containing an item property (as the one above) |
+
+For more information about query plans, refer to [queryPlan and queryPath](genInfo.md#querypath-and-queryplan).
+
+## Example
+If you pass the following query:
+
+ `GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true`
+
+#### Response:
+
+```
+__queryPlan: {
+ And: [
+ {
+ item: "Join on Table : Company : People.employer = Company.ID",
+ subquery: [
+ {
+ item: "Company.name = acme"
+ }
+ ]
+ },
+ {
+ item: "People.lastName = Jones"
+ }
+ ]
+}
+```
diff --git a/website/translated_docs/pt/REST/$savedfilter.md b/website/translated_docs/pt/REST/$savedfilter.md
new file mode 100644
index 00000000000000..0c144247101d85
--- /dev/null
+++ b/website/translated_docs/pt/REST/$savedfilter.md
@@ -0,0 +1,26 @@
+---
+id: savedfilter
+title: '$savedfilter'
+---
+
+Saves the filter defined by $filter when creating an entity set (*e.g.*, `$savedfilter="{filter}"`)
+
+## Description
+
+When you create an entity set, you can save the filter that you used to create it as a measure of security. If the entity set that you created is removed from 4D Server's cache (due to the timeout, the server's need for space, or your removing it by calling [`$method=release`]($method.md#methodrelease)).
+
+You use `$savedfilter` to save the filter you defined when creating your entity set and then pass `$savedfilter` along with your call to retrieve the entity set each time.
+
+If the entity set is no longer in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+If you have used both `$savedfilter` and [`$savedorderby`]($savedorderby.md) in your call when creating an entity set and then you omit one of them, the new entity set, which will have the same reference number, will reflect that.
+
+## Example
+
+In our example, we first call ``$savedfilter` with the initial call to create an entity set as shown below:
+
+`GET /rest/People/?$filter="employer.name=Apple"&$savedfilter="employer.name=Apple"&$method=entityset`
+
+Then, when you access your entity set, you write the following to ensure that the entity set is always valid:
+
+`GET /rest/People/$entityset/AEA452C2668B4F6E98B6FD2A1ED4A5A8?$savedfilter="employer.name=Apple"`
diff --git a/website/translated_docs/pt/REST/$savedorderby.md b/website/translated_docs/pt/REST/$savedorderby.md
new file mode 100644
index 00000000000000..180b3ff16b7bce
--- /dev/null
+++ b/website/translated_docs/pt/REST/$savedorderby.md
@@ -0,0 +1,23 @@
+---
+id: savedorderby
+title: '$savedorderby'
+---
+
+Saves the order by defined by `$orderby` when creating an entity set (*e.g.*, `$savedorderby="{orderby}"`)
+
+## Description
+
+When you create an entity set, you can save the sort order along with the filter that you used to create it as a measure of security. If the entity set that you created is removed from 4D Server's cache (due to the timeout, the server's need for space, or your removing it by calling [`$method=release`]($method.md#methodrelease)).
+
+You use `$savedorderby` to save the order you defined when creating your entity set, you then pass `$savedorderby` along with your call to retrieve the entity set each time.
+
+If the entity set is no longer in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. If you have used both [`$savedfilter`]($savedfilter.md) and `$savedorderby` in your call when creating an entity set and then you omit one of them, the new entity set, having the same reference number, will reflect that.
+
+## Example
+You first call `$savedorderby` with the initial call to create an entity set:
+
+ `GET /rest/People/?$filter="lastName!=''"&$savedfilter="lastName!=''"&$orderby="salary"&$savedorderby="salary"&$method=entityset`
+
+Then, when you access your entity set, you write the following (using both $savedfilter and $savedorderby) to ensure that the filter and its sort order always exists:
+
+`GET /rest/People/$entityset/AEA452C2668B4F6E98B6FD2A1ED4A5A8?$savedfilter="lastName!=''"&$savedorderby="salary"`
diff --git a/website/translated_docs/pt/REST/$skip.md b/website/translated_docs/pt/REST/$skip.md
new file mode 100644
index 00000000000000..1feb4d28be386e
--- /dev/null
+++ b/website/translated_docs/pt/REST/$skip.md
@@ -0,0 +1,19 @@
+---
+id: skip
+title: '$skip'
+---
+
+Starts the entity defined by this number in the collection (*e.g.*, `$skip=10`)
+
+
+## Description
+
+`$skip` defines which entity in the collection to start with. By default, the collection sent starts with the first entity. To start with the 10th entity in the collection, pass 10.
+
+`$skip` is generally used in conjunction with [`$top/$limit`]($top_$limit.md) to navigate through an entity collection.
+
+## Example
+
+In the following example, we go to the 20th entity in our entity set:
+
+ `GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$skip=20`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$timeout.md b/website/translated_docs/pt/REST/$timeout.md
new file mode 100644
index 00000000000000..2eac9ac71f3f27
--- /dev/null
+++ b/website/translated_docs/pt/REST/$timeout.md
@@ -0,0 +1,21 @@
+---
+id: timeout
+title: '$timeout'
+---
+
+
+Defines the number of seconds to save an entity set in 4D Server's cache (*e.g.*, `$timeout=1800`)
+
+## Description
+
+To define a timeout for an entity set that you create using [`$method=entityset`]($method.md#methodentityset), pass the number of seconds to `$timeout`. For example, if you want to set the timeout to 20 minutes, pass 1200. By default, the timeout is two (2) hours.
+
+Once the timeout has been defined, each time an entity set is called upon (by using `$method=entityset`), the timeout is recalculated based on the current time and the timeout.
+
+If an entity set is removed and then recreated using `$method=entityset` along with [`$savedfilter`]($savedfilter.md), the new default timeout is 10 minutes regardless of the timeout you defined when calling `$timeout`.
+
+## Example
+
+In our entity set that we're creating, we define the timeout to 20 minutes:
+
+`GET /rest/Employee/?$filter="salary!=0"&$method=entityset&$timeout=1200`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$top_$limit.md b/website/translated_docs/pt/REST/$top_$limit.md
new file mode 100644
index 00000000000000..12395f717e0e77
--- /dev/null
+++ b/website/translated_docs/pt/REST/$top_$limit.md
@@ -0,0 +1,18 @@
+---
+id: top_$limit
+title: '$top/$limit'
+---
+
+Limits the number of entities to return (e.g., `$top=50`)
+
+## Description
+
+`$top/$limit` defines the limit of entities to return. By default, the number is limited to 100. You can use either keyword: `$top` or `$limit`.
+
+When used in conjunction with [`$skip`]($skip.md), you can navigate through the entity collection returned by the REST request.
+
+## Example
+
+In the following example, we request the next ten entities after the 20th entity:
+
+`GET /rest/Employee/$entityset/CB1BCC603DB0416D939B4ED379277F02?$skip=20&$top=10`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/$upload.md b/website/translated_docs/pt/REST/$upload.md
new file mode 100644
index 00000000000000..9b8159b841e27e
--- /dev/null
+++ b/website/translated_docs/pt/REST/$upload.md
@@ -0,0 +1,60 @@
+---
+id: upload
+title: '$upload'
+---
+
+
+Returns an ID of the file uploaded to the server
+
+## Description
+Post this request when you have a file that you want to upload to the Server. If you have an image, you pass `$rawPict=true`. For all other files, you pass `$binary=true`.
+
+You can modify the timeout, which by default is 120 seconds, by passing a value to the `$timeout parameter`.
+
+## Image upload example
+To upload an image, you must first select the file object on the client using the HTML 5 built-in API for using file from a web application. 4D uses the MIME type attribute of the file object so it can handle it appropriately.
+
+Then, we upload the selected image to 4D Server:
+
+ `POST /rest/$upload?$rawPict=true`
+
+**Result**:
+
+`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50" }`
+
+ Afterwards, you use this ID to add it to an attribute using [`$method=update`]($method.md#methodupdate) to add the image to an entity:
+
+ `POST /rest/Employee/?$method=update`
+
+**POST data**:
+
+````
+{
+ __KEY: "12",
+ __STAMP: 4,
+ photo: { "ID": "D507BC03E613487E9B4C2F6A0512FE50" }
+}
+````
+
+**Response**:
+
+The modified entity is returned:
+
+````
+{
+ "__KEY": "12",
+ "__STAMP": 5,
+ "uri": "http://127.0.0.1:8081/rest/Employee(12)",
+ "ID": 12,
+ "firstName": "John",
+ "firstName": "Smith",
+ "photo":
+ {
+ "__deferred":
+ {
+ "uri": "/rest/Employee(12)/photo?$imageformat=best&$version=1&$expand=photo",
+ "image": true
+ }
+ },}
+````
+
diff --git a/website/translated_docs/pt/REST/$version.md b/website/translated_docs/pt/REST/$version.md
new file mode 100644
index 00000000000000..e80c60a3b08c92
--- /dev/null
+++ b/website/translated_docs/pt/REST/$version.md
@@ -0,0 +1,18 @@
+---
+id: version
+title: '$version'
+---
+
+Image version number
+
+## Description
+
+`$version` is the image's version number returned by the server. The version number, which is sent by the server, works around the browser's cache so that you are sure to retrieve the correct image.
+
+The value of the image's version parameter is modified by the server.
+
+## Example
+
+The following example defines the image format to JPEG regardless of the actual type of the photo and passes the actual version number sent by the server:
+
+ `GET /rest/Employee(1)/photo?$imageformat=jpeg&$version=3&$expand=photo`
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/REST_requests.md b/website/translated_docs/pt/REST/REST_requests.md
new file mode 100644
index 00000000000000..13b08637cf3854
--- /dev/null
+++ b/website/translated_docs/pt/REST/REST_requests.md
@@ -0,0 +1,57 @@
+---
+id: REST_requests
+title: About REST Requests
+---
+
+
+The following structures are supported for REST requests:
+
+| URI | Resource | {Subresource} | {Querystring} |
+| -------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------- |
+| http://{servername}:{port}/rest/ | [{dataClass}](%7BdataClass%7D.html)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | |
+| | [{dataClass}](%7BdataClass%7D.html)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | [{method}](%7BdataClass%7D.html#dataclassmethod) |
+| | | | [$entityset/{entitySetID}](entityset.html#entitysetentitysetid) |
+| | | | [?$filter]($filter.md) |
+| | | | [$entityset/{entitySetID}](entityset.html#entitysetentitysetid) |
+| | | [{attribute}](manData.html#selecting-attributes-to-get)/ | [?$compute]($compute.md) |
+| | [{dataClass}({key})](%7BdataClass%7D.html#dataclasskey)/ | [{attribute1, attribute2, ...}](manData.html#selecting-attributes-to-get)/ | |
+| | [{dataClass}:{attribute}(value)](%7BdataClass%7D%7Battribute%7D_value.html) | | |
+| | [$catalog]($catalog.md) | | |
+| | [$directory]($directory.md) | | |
+| | [$info]($info.md) | | |
+
+
+While all REST requests must contain the URI and Resource parameters, the Subresource (which filters the data returned) is optional.
+
+As with all URIs, the first parameter is delimited by a “?” and all subsequent parameters by a “&”. For example:
+
+ `GET /rest/Person/?$filter="lastName!=Jones"&$method=entityset&$timeout=600`
+> You can place all values in quotes in case of ambiguity. For example, in our above example, we could've put the value for the last name in quotes "Jones".
+
+The parameters allow you to manipulate data in dataclasses in your 4D project. Besides retrieving data using `GET` HTTP methods, you can also add, update, and delete entities in a datastore class using `POST` HTTP methods.
+
+If you want the data to be returned in an array instead of JSON, use the [`$asArray`]($asArray.md) parameter.
+
+
+## REST Status and Response
+With each REST request, the server returns the status and a response (with or without an error).
+
+### Request Status
+With each REST request, you get the status along with the response. Below are a few of the statuses that can arise:
+
+| Status | Description |
+| ------------------------- | -------------------------------------------------------------------------- |
+| 0 | Request not processed (server might not be started). |
+| 200 OK | Request processed without error. |
+| 401 Unauthorized | Permissions error (check user's permissions). |
+| 404 Not Found | The data class is not accessible via REST or the entity set doesn't exist. |
+| 500 Internal Server Error | Error processing the REST request. |
+
+### Response
+
+The response (in JSON format) varies depending on the request.
+
+If an error arises, it will be sent along with the response from the server or it will be the response from the server.
+
+
+
diff --git a/website/translated_docs/pt/REST/authUsers.md b/website/translated_docs/pt/REST/authUsers.md
new file mode 100644
index 00000000000000..5da6171774a437
--- /dev/null
+++ b/website/translated_docs/pt/REST/authUsers.md
@@ -0,0 +1,25 @@
+---
+id: authUsers
+title: Sessions and Users
+---
+
+## Session cookie
+
+Each REST request is handled through a specific session on the 4D server.
+
+When a first valid REST request is received, the server creates the session and sends a **session cookie** named `WASID4D`, containing the session UUID, for example:
+
+```
+WASID4D=EA0400C4D58FF04F94C0A4XXXXXX3
+```
+
+In the subsequent REST requests, make sure this cookie is included in the header so that you will reuse the same session. Otherwise, a new session will be opened, and another license used.
+
+
+
+## Authenticating users
+
+Once you have set up users and groups in your project's directory, you will need to have users log into the project to access and manipulate data.
+
+You can log in a user to your application by passing the user's name and password to [`$directory/login`](directory_login). Once logged in, you can retrieve the user's name by using [`$directory/currentUser`](directory_currentUser) and can find out if he/she belongs to a specific group by using [`$directory/currentUserBelongsTo`](directory_currentUserBelongsTo). To log out the current user, call [`$directory/logout`](directory_logout).
+
diff --git a/website/translated_docs/pt/REST/configuration.md b/website/translated_docs/pt/REST/configuration.md
new file mode 100644
index 00000000000000..3a55d697175561
--- /dev/null
+++ b/website/translated_docs/pt/REST/configuration.md
@@ -0,0 +1,89 @@
+---
+id: configuration
+title: Server Configuration
+---
+
+Using standard HTTP requests, the 4D REST Server allows external applications to access the data of your database directly, *i.e.* to retrieve information about the dataclasses in your project, manipulate data, log into your web application, and much more.
+
+To start using the REST features, you need to start and configure the 4D REST server.
+
+> - On 4D Server, opening a REST session requires that a free 4D client licence is available.
+> - On 4D single-user, you can open up to three REST sessions for testing purposes. You need to manage the [session cookie](authUsers.md#session-cookie) to use the same session for your requesting application.
+
+
+
+## Starting the REST Server
+
+For security reasons, by default, 4D does not respond to REST requests. If you want to start the REST Server, you must check the **Expose as REST server** option in the "Web/REST resource" page of the database settings in order for REST requests to be processed.
+
+
+
+> REST services use the 4D HTTP server, so you need to make sure that the 4D Web server is started.
+
+The warning message "Caution, check the access privileges" is displayed when you check this option to draw your attention to the fact that when REST services are activated, by default access to database objects is free as long as the REST accesses have not been configured.
+
+
+## Configuring REST access
+
+By default, REST accesses are open to all users which is obviously not recommended for security reasons, and also to control client licenses usage.
+
+You can configuring REST accesses with one of the following means:
+- assigning a **Read/Write** user group to REST services in the "Web/REST resource" page of the Database Settings;
+- writing an `On REST Authentication` database method to intercept and handle every initial REST request.
+
+> You cannot use both features simultaneously. Once an `On REST Authentication` database method has been defined, 4D fully delegates control of REST requests to it: any setting made using the "Read/Write" menu on the Web/REST resource page of the Database Settings is ignored.
+
+
+### Using the Database settings
+
+The **Read/Write** menu in the "Web/REST resource" page of the database settings specifies a group of 4D users that is authorized to establish the link to the 4D database using REST queries.
+
+By default, the menu displays ****, which means that REST accesses are open to all users. Once you have specified a group, only a 4D user account that belongs to this group may be used to [access 4D by means of a REST request](authUsers.md). If an account is used that does not belong to this group, 4D returns an authentication error to the sender of the request.
+
+> In order for this setting to take effect, the `On REST Authentication` database method must not be defined. If it exists, 4D ignores access settings defined in the Database Settings.
+
+### Using the On REST Authentication database method
+The `On REST Authentication` database method provides you with a custom way of controlling the opening of REST sessions on 4D. This database method is automatically called when a new session is opened through a REST request. When a [request to open a REST session](authUsers.md) is received, the connection identifiers are provided in the header of the request. The `On REST Authentication` database method is called so that you can evaluate these identifiers. You can use the list of users for the 4D database or you can use your own table of identifiers. For more information, refer to the `On REST Authentication` database method [documentation](https://doc.4d.com/4Dv18/4D/18/On-REST-Authentication-database-method.301-4505004.en.html).
+
+
+
+## Exposing tables and fields
+
+Once REST services are enabled in the 4D database, by default a REST session can access all tables and fields of the datastore, and thus use their data. For example, if your database contains an [Employee] table, it is possible to write:
+
+```
+http://127.0.0.1:8044/rest/Employee/?$filter="salary>10000"
+
+```
+This request will return all employees whose salary field is higher than 10000.
+
+> 4D tables and/or fields that have the "Invisible" attribute are also exposed in REST by default.
+
+If you want to customize the datastore objects accessible through REST, you must disable the exposure of each table and/or field that you want to hide. When a REST request attempts to access an unauthorized resource, 4D returns an error.
+
+### Exposing tables
+
+By default, all tables are exposed in REST.
+
+For security reasons, you may want to only expose certain tables of your datastore to REST calls. For instance, if you created a [Users] table storing user names and passwords, it would be better not to expose it.
+
+To remove the REST exposure for a table:
+
+1. Display the Table Inspector in the Structure editor and select the table you want to modify.
+
+2. Uncheck the **Expose as REST resource** option:  Do this for each table whose exposure needs to be modified.
+
+
+### Exposing fields
+
+By default, all 4D database fields are exposed in REST.
+
+You may not want to expose certain fields of your tables to REST. For example, you may not want to expose the [Employees]Salary field.
+
+To remove the REST exposure for a field:
+
+1. Display the Field Inspector in the Structure editor and select the field you want to modify.
+
+2. Uncheck the **Expose as REST resource** for the field.  Repeat this for each field whose exposure needs to be modified.
+
+> In order for a field to be accessible through REST, the parent table must be as well. If the parent table is not exposed, none of its fields will be, regardless of their status.
diff --git a/website/translated_docs/pt/REST/genInfo.md b/website/translated_docs/pt/REST/genInfo.md
new file mode 100644
index 00000000000000..f0733a46c9c7c2
--- /dev/null
+++ b/website/translated_docs/pt/REST/genInfo.md
@@ -0,0 +1,36 @@
+---
+id: genInfo
+title: Getting Server Information
+---
+
+You can get several information from the REST server:
+
+- the exposed datastores and their attributes
+- the REST server cache contents, including user sessions.
+
+## Catalog
+
+Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed datastore classes and their attributes](configuration.md#exposing-tables-and-fields).
+
+To get the collection of all exposed dataclasses along with their attributes:
+
+`GET /rest/$catalog/$all`
+
+
+## Cache info
+
+Use the [`$info`]($info.md) parameter to get information about the entity selections currently stored in 4D Server's cache as well as running user sessions.
+
+## queryPath and queryPlan
+
+Entity selections that are generated through queries can have the following two properties: `queryPlan` and `queryPath`. To calculate and return these properties, you just need to add [`$queryPlan`]($queryplan.md) and/or [`$queryPath`]($querypath.md) in the REST request.
+
+For example:
+
+`GET /rest/People/$filter="employer.name=acme AND lastName=Jones"&$queryplan=true&$querypath=true`
+
+These properties are objects that contain information about how the server performs composite queries internally through dataclasses and relations:
+- **queryPlan**: object containing the detailed description of the query just before it was executed (i.e., the planned query).
+- **queryPath**: object containing the detailed description of the query as it was actually performed.
+
+The information recorded includes the query type (indexed and sequential) and each necessary subquery along with conjunction operators. Query paths also contain the number of entities found and the time required to execute each search criterion. You may find it useful to analyze this information while developing your application. Generally, the description of the query plan and its path are identical but they can differ because 4D can implement dynamic optimizations when a query is executed in order to improve performance. For example, the 4D engine can dynamically convert an indexed query into a sequential one if it estimates that it is faster. This particular case can occur when the number of entities being searched for is low.
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/gettingStarted.md b/website/translated_docs/pt/REST/gettingStarted.md
new file mode 100644
index 00000000000000..8a6d571357409c
--- /dev/null
+++ b/website/translated_docs/pt/REST/gettingStarted.md
@@ -0,0 +1,138 @@
+---
+id: gettingStarted
+title: Getting Started
+---
+
+4D provides you with a powerful REST server, that allows direct access to data stored in your 4D databases.
+
+The REST server is included in the the 4D and 4D Server applications, it is automatically available in your 4D databases [once it is configured](configuration.md).
+
+This section is intended to help familiarize you with REST functionality by means of a simple example. We are going to:
+- create and configure a basic 4D database
+- access data from the 4D database through REST using a standard browser.
+
+To keep the example simple, we’re going to use a 4D application and a browser that are running on the same machine. Of course, you could also use a remote architecture.
+
+
+
+## Creating and configuring the 4D database
+
+1. Launch your 4D or 4D Server application and create a new database. You can name it "Emp4D", for example.
+
+2. In the Structure editor, create an [Employees] table and add the following fields to it:
+ - Lastname (Alpha)
+ - Firstname (Alpha)
+ - Salary (Longint)
+
+
+
+> The "Expose a REST resource" option is checked by default for the table and every field; do not change this setting.
+
+3. Create forms, then create a few employees:
+
+
+
+4. Display the **Web/REST resource** page of the Database Settings dialog box and [check the Expose as REST server](configuration.md#starting-the-rest-server) option.
+
+5. In the **Run** menu, select **Start Web Server** (if necessary), then select **Test Web Server**.
+
+4D displays the default home page of the 4D Web Server.
+
+
+## Accessing 4D data through the browser
+
+You can now read and edit data within 4D only through REST requests.
+
+Any 4D REST URL request starts with `/rest`, to be inserted after the `address:port` area. For example, to see what's inside the 4D datastore, you can write:
+
+```
+http://127.0.01/rest/$catalog
+```
+
+The REST server replies:
+
+```
+{
+ "__UNIQID": "96A49F7EF2ABDE44BF32059D9ABC65C1",
+ "dataClasses": [
+ {
+ "name": "Employees",
+ "uri": "/rest/$catalog/Employees",
+ "dataURI": "/rest/Employees"
+ }
+ ]
+}
+```
+
+It means that the datastore contains the Employees dataclass. You can see the dataclass attributes by typing:
+
+```
+/rest/$catalog/Employees
+```
+
+If you want to get all entities of the Employee dataclass, you write:
+
+```
+/rest/Employees
+```
+
+**Response:**
+
+```
+{
+ "__entityModel": "Employees",
+ "__GlobalStamp": 0,
+ "__COUNT": 3,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__TIMESTAMP": "2020-01-07T17:07:52.467Z",
+ "__STAMP": 2,
+ "ID": 1,
+ "Lastname": "Brown",
+ "Firstname": "Michael",
+ "Salary": 25000
+ },
+ {
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "ID": 2,
+ "Lastname": "Jones",
+ "Firstname": "Maryanne",
+ "Salary": 35000
+ },
+ {
+ "__KEY": "3",
+ "__TIMESTAMP": "2020-01-07T17:08:34.844Z",
+ "__STAMP": 2,
+ "ID": 3,
+ "Lastname": "Smithers",
+ "Firstname": "Jack",
+ "Salary": 41000
+ }
+ ],
+ "__SENT": 3
+}
+```
+
+You have many possibilities to filter data to receive. For example, to get only the "Lastname" attribute value from the 2nd entity, you can just write:
+
+```
+/rest/Employees(2)/Lastname
+```
+
+**Response:**
+
+```
+{
+ "__entityModel": "Employees",
+ "__KEY": "2",
+ "__TIMESTAMP": "2020-01-07T17:08:14.387Z",
+ "__STAMP": 2,
+ "Lastname": "Jones"
+}
+```
+
+The 4D [REST API](REST_requests.md) provides various commands to interact with the 4D database.
\ No newline at end of file
diff --git a/website/translated_docs/pt/REST/manData.md b/website/translated_docs/pt/REST/manData.md
new file mode 100644
index 00000000000000..4571016a1a7517
--- /dev/null
+++ b/website/translated_docs/pt/REST/manData.md
@@ -0,0 +1,249 @@
+---
+id: manData
+title: Manipulating Data
+---
+
+All [exposed datastore classes, attributes](configuration.md#exposing-tables-and-fields) and methods can be accessed through REST. Dataclass, attribute, and method names are case-sensitive; however, the data for queries is not.
+
+## Querying data
+
+To query data directly, you can do so using the [`$filter`]($filter.md) function. For example, to find a person named "Smith", you could write:
+
+`http://127.0.0.1:8081/rest/Person/?$filter="lastName=Smith"`
+
+
+
+
+## Adding, Modifying, and Deleting Entities
+
+With the REST API, you can perform all the manipulations to data as you can in 4D.
+
+To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Before saving data, you can also validate it beforehand by calling [`$method=validate`]($method.md#methodvalidate). If you want to delete one or more entities, you can use [`$method=delete`]($method.md#methoddelete).
+
+Besides retrieving one attribute in a dataclass using [{dataClass}({key})](%7BdataClass%7D_%7Bkey%7D.html), you can also write a method in your datastore class and call it to return an entity selection (or a collection) by using [{dataClass}/{method}](%7BdataClass%7D.html#dataclassmethod).
+
+Before returning the collection, you can also sort it by using [`$orderby`]($orderby.md) one one or more attributes (even relation attributes).
+
+
+## Navigating Data
+
+Add the [`$skip`]($skip.md) (to define with which entity to start) and [`$top/$limit`]($top_$limit.md) (to define how many entities to return) REST requests to your queries or entity selections to navigate the collection of entities.
+
+
+
+## Creating and Managing Entity Set
+
+An entity set (aka *entity selection*) is a collection of entities obtained through a REST request that is stored in 4D Server's cache. Using an entity set prevents you from continually querying your application for the same results. Accessing an entity set is much quicker and can improve the speed of your application.
+
+To create an entity set, call [`$method=entityset`]($method.md#methodentityset) in your REST request. As a measure of security, you can also use [`$savedfilter`]($savedfilter.md) and/or [`$savedorderby`]($savedorderby.md) when you call [`$filter`]($filter.md) and/or [`$orderby`]($orderby.md) so that if ever the entity set timed out or was removed from the server, it can be quickly retrieved with the same ID as before.
+
+To access the entity set, you must use `$entityset/{entitySetID}`, for example:
+
+`/rest/People/$entityset/0AF4679A5C394746BFEB68D2162A19FF`
+
+
+By default, an entity set is stored for two hours; however, you can change the timeout by passing a new value to [`$timeout`]($timeout.md). The timeout is continually being reset to the value defined for its timeout (either the default one or the one you define) each time you use it.
+
+If you want to remove an entity set from 4D Server's cache, you can use [`$method=release`]($method.md#methodrelease).
+
+If you modify any of the entity's attributes in the entity set, the values will be updated. However, if you modify a value that was a part of the query executed to create the entity set, it will not be removed from the entity set even if it no longer fits the search criteria. Any entities you delete will, of course, no longer be a part of the entity set.
+
+If the entity set no longer exists in 4D Server's cache, it will be recreated with a new default timeout of 10 minutes. The entity set will be refreshed (certain entities might be included while others might be removed) since the last time it was created, if it no longer existed before recreating it.
+
+Using [`$entityset/{entitySetID}?$logicOperator... &$otherCollection`]($entityset.md#entitysetentitysetidoperatorothercollection), you can combine two entity sets that you previously created. You can either combine the results in both, return only what is common between the two, or return what is not common between the two.
+
+A new selection of entities is returned; however, you can also create a new entity set by calling [`$method=entityset`]($method.md#methodentityset) at the end of the REST request.
+
+
+
+## Calculating Data
+
+By using [`$compute`]($compute.md), you can compute the **average**, **count**, **min**, **max**, or **sum** for a specific attribute in a dataclass. You can also compute all values with the $all keyword.
+
+For example, to get the highest salary:
+
+`/rest/Employee/salary/?$compute=sum`
+
+To compute all values and return a JSON object:
+
+`/rest/Employee/salary/?$compute=$all`
+
+
+
+
+## Selecting attributes to get
+
+You can always define which attributes to return in the REST response after an initial request by passing their path in the request (*e.g.*, `Company(1)/name,revenues/`)
+
+You can apply this filter in the following ways:
+
+| Object | Syntax | Example |
+| ---------------------- | --------------------------------------------------- | ------------------------------------------------------------- |
+| Dataclass | {dataClass}/{att1,att2...} | /People/firstName,lastName |
+| Collection of entities | {dataClass}/{att1,att2...}/?$filter="{filter}" | /People/firstName,lastName/?$filter="lastName='a*'" |
+| Specific entity | {dataClass}({ID})/{att1,att2...} | /People(1)/firstName,lastName |
+| | {dataClass}:{attribute}(value)/{att1,att2...}/ | /People:firstName(Larry)/firstName,lastName/ |
+| Entity selection | {dataClass}/{att1,att2...}/$entityset/{entitySetID} | /People/firstName/$entityset/528BF90F10894915A4290158B4281E61 |
+
+The attributes must be delimited by a comma, *i.e.*, `/Employee/firstName,lastName,salary`. Storage or relation attributes can be passed.
+
+
+### Examples
+Here are a few examples, showing you how to specify which attributes to return depending on the technique used to retrieve entities.
+
+You can apply this technique to:
+
+- Dataclasses (all or a collection of entities in a dataclass)
+- Specific entities
+- Dataclass methods
+- Entity sets
+
+#### Dataclass Example
+
+The following requests returns only the first name and last name from the People datastore class (either the entire datastore class or a selection of entities based on the search defined in `$filter`).
+
+ `GET /rest/People/firstName,lastName/`
+
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 4,
+ __SENT: 4,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "1",
+ __STAMP: 1,
+ firstName: "John",
+ lastName: "Smith"
+ },
+ {
+ __KEY: "2",
+ __STAMP: 2,
+ firstName: "Susan",
+ lastName: "O'Leary"
+ },
+ {
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+ },
+ {
+ __KEY: "4",
+ __STAMP: 1,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+`GET /rest/People/firstName,lastName/?$filter="lastName='A*'"/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __COUNT: 1,
+ __SENT: 1,
+ __FIRST: 0,
+ __ENTITIES: [
+ {
+ __KEY: "4",
+ __STAMP: 4,
+ firstName: "Beth",
+ lastName: "Adams"
+ }
+ ]
+}
+````
+
+
+#### Entity Example
+The following request returns only the first name and last name attributes from a specific entity in the People dataclass:
+
+ `GET /rest/People(3)/firstName,lastName/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ firstName: "Pete",
+ lastName: "Marley"
+}
+````
+
+
+ `GET /rest/People(3)/`
+
+**Result**:
+
+````
+{
+ __entityModel: "People",
+ __KEY: "3",
+ __STAMP: 2,
+ ID: 3,
+ firstName: "Pete",
+ lastName: "Marley",
+ salary: 30000,
+ employer: {
+ __deferred: {
+ uri: "http://127.0.0.1:8081/rest/Company(3)",
+ __KEY: "3"
+ }
+ },
+ fullName: "Pete Marley",
+ employerName: "microsoft"
+
+}
+````
+
+#### Method Example
+
+If you have a dataclass method, you can define which attributes to return as shown below before passing the dataclass method:
+
+ `GET /rest/People/firstName,lastName/getHighSalaries`
+
+or
+
+ `GET /rest/People/getHighSalaries/firstName,lastName`
+
+#### Entity Set Example
+
+Once you have created an entity set, you can filter the information in it by defining which attributes to return:
+
+ `GET /rest/People/firstName,employer.name/$entityset/BDCD8AABE13144118A4CF8641D5883F5?$expand=employer
+
+
+## Viewing an image attribute
+
+If you want to view an image attribute in its entirety, write the following:
+
+ `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo`
+
+For more information about the image formats, refer to [`$imageformat`]($imageformat.md). For more information about the version parameter, refer to [`$version`]($version.md).
+
+## Saving a BLOB attribute to disk
+
+If you want to save a BLOB stored in your dataclass, you can write the following:
+
+ `GET /rest/Company(11)/blobAtt?$binary=true&$expand=blobAtt`
+
+
+## Retrieving only one entity
+
+You can use the [`{dataClass}:{attribute}(value)`](%7BdataClass%7D.html#dataclassattributevalue) syntax when you want to retrieve only one entity. It's especially useful when you want to do a related search that isn't created on the dataclass's primary key. For example, you can write:
+
+ `GET /rest/Company:companyCode("Acme001")`
+
+
diff --git a/website/translated_docs/pt/REST/{dataClass}.md b/website/translated_docs/pt/REST/{dataClass}.md
new file mode 100644
index 00000000000000..9d590c1261e640
--- /dev/null
+++ b/website/translated_docs/pt/REST/{dataClass}.md
@@ -0,0 +1,276 @@
+---
+id:
+ - dataClass
+title:
+ - dataClass
+---
+
+
+
+Dataclass names can be used directly in the REST requests to work with entities, entity selections, or methods of the dataclass.
+
+## Available syntaxes
+
+| Syntax | Example | Description |
+| -------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------- |
+| [**{dataClass}**](#dataClass) | `/Employee` | Returns all the data (by default the first 100 entities) for the dataclass |
+| [**{dataClass}({key})**](#dataclasskey) | `/Employee(22)` | Returns the data for the specific entity defined by the dataclass's primary key |
+| [**{dataClass}:{attribute}(value)**](#dataclassattributevalue) | `/Employee:firstName(John)` | Returns the data for one entity in which the attribute's value is defined |
+| [**{dataClass}/{method}**](#dataclassmethod) | `/Employee/getHighSalaries` or `/Employee/name/getAge` | Returns an entity selection or a collection based on a dataclass method |
+
+
+
+## {dataClass}
+
+Returns all the data (by default the first 100 entities) for a specific dataclass (*e.g.*, `Company`)
+
+### Description
+
+When you call this parameter in your REST request, the first 100 entities are returned unless you have specified a value using [`$top/$limit`]($top_$limit.md).
+
+Here is a description of the data returned:
+
+| Property | Type | Description |
+| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| __entityModel | String | Name of the datastore class. |
+| __COUNT | Number | Number of entities in the datastore class. |
+| __SENT | Number | Number of entities sent by the REST request.This number can be the total number of entities if it is less than the value defined in the Default Top Size property (in the Properties for the datastore class) or `$top/$limit` or the value in `$top/$limit`. |
+| __FIRST | Number | Entity number that the selection starts at. Either 0 by default or the value defined by `$skip`. |
+| __ENTITIES | Array | This array of objects contains an object for each entity with all the Public attributes. All relational attributes are returned as objects with a URI to obtain information regarding the parent. |
+
+For each entity, there is a **__KEY** and a **__STAMP** property. The **__KEY** property contains the value of the primary key defined for the datastore class. The **__STAMP** is an internal stamp that is needed when you modify any of the values in the entity when using `$method=update`.
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). For example:
+
+ `GET /rest/Company/name,address`
+
+
+
+### Example
+
+Return all the data for a specific datastore class.
+
+ `GET /rest/Employee`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__COUNT": 250,
+ "__SENT": 100,
+ "__FIRST": 0,
+ "__ENTITIES": [
+ {
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Adobe",
+ "address": null,
+ "city": "San Jose",
+ "country": "USA",
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "2",
+ "__STAMP": 1,
+ "ID": 2,
+ "name": "Apple",
+ "address": null,
+ "city": "Cupertino",
+ "country": "USA",
+ "revenues": 890000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(2)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "3",
+ "__STAMP": 2,
+ "ID": 3,
+ "name": "4D",
+ "address": null,
+ "city": "Clichy",
+ "country": "France",
+ "revenues": 700000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(3)/staff?$expand=staff"
+ }
+ }
+ },
+ {
+ "__KEY": "4",
+ "__STAMP": 1,
+ "ID": 4,
+ "name": "Microsoft",
+ "address": null,
+ "city": "Seattle",
+ "country": "USA",
+ "revenues": 650000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(4)/staff?$expand=staff"
+ }
+ }
+ }
+.....//more entities here
+ ]
+}
+````
+
+
+## {dataClass}({key})
+
+Returns the data for the specific entity defined by the dataclass's primary key, *e.g.*, `Company(22) or Company("IT0911AB2200")`
+
+### Description
+
+By passing the dataclass and a key, you can retrieve all the public information for that entity. The key is the value in the attribute defined as the Primary Key for your datastore class. For more information about defining a primary key, refer to the **Modifying the Primary Key** section in the **Data Model Editor**.
+
+For more information about the data returned, refer to [{datastoreClass}](#datastoreclass).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). For example:
+
+ `GET /rest/Company(1)/name,address`
+
+If you want to expand a relation attribute using `$expand`, you do so by specifying it as shown below:
+
+ `GET /rest/Company(1)/name,address,staff?$expand=staff`
+
+### Example
+
+The following request returns all the public data in the Company datastore class whose key is 1.
+
+ `GET /rest/Company(1)`
+
+**Result**:
+
+````
+{
+ "__entityModel": "Company",
+ "__KEY": "1",
+ "__STAMP": 1,
+ "ID": 1,
+ "name": "Apple",
+ "address": Infinite Loop,
+ "city": "Cupertino",
+ "country": "USA",
+ "url": http://www.apple.com,
+ "revenues": 500000,
+ "staff": {
+ "__deferred": {
+ "uri": "http://127.0.0.1:8081/rest/Company(1)/staff?$expand=staff"
+ }
+ }
+}
+````
+
+
+
+## {dataClass}:{attribute}(value)
+
+Returns the data for one entity in which the attribute's value is defined
+
+### Description
+
+By passing the *dataClass* and an *attribute* along with a value, you can retrieve all the public information for that entity. The value is a unique value for attribute, but is not the primary key.
+
+ `GET /rest/Company:companyCode(Acme001)`
+
+For more information about the data returned, refer to [{dataClass}](dataClass.md).
+
+If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md##selecting-attributes-to-get). For example:
+
+ `GET /rest/Company:companyCode(Acme001)/name,address`
+
+If you want to use a relation attribute using [$attributes]($attributes.md), you do so by specifying it as shown below:
+
+ `GET /rest/Company:companyCode(Acme001)?$attributes=name,address,staff.name`
+
+### Example
+
+The following request returns all the public data of the employee named "Jones".
+
+ `GET /rest/Employee:lastname(Jones)`
+
+
+## {dataClass}/{method}
+
+Returns an entity selection or a collection based on a dataclass method
+
+### Description
+
+Dataclass methods must be applied to either a dataclass or an entity selection, and must return either an entity selection or a collection. When returning a collection, however, you cannot define which attributes are returned.
+
+The method must has been declared as "Available through REST server" in 4D for you to be able to call it in a REST request:
+
+`GET /rest/Employee/getHighSalaries` or `GET /rest/Employee/firstName/getHighSalaries`
+
+If you do not have the permissions to execute the method, you will receive the following error:
+
+```
+{
+ "__ERROR": [
+ {
+ "message": "No permission to execute method getHighSalaries in dataClass Employee",
+ "componentSignature": "dbmg",
+ "errCode": 1561
+ }
+ ]
+}
+```
+
+### Passing Parameters to a Method
+You can also pass parameters to a method either in a GET or in a POST.
+
+In a GET, you write the following:
+
+`GET /rest/Employee/addEmployee(John,Smith)`
+
+In a POST, you write the following :
+
+`POST /rest/Employee/addEmployee`
+
+**POST data:** ["John","Smith"]
+
+### Manipulating the Data Returned by a Method
+You can define which attributes you want to return, by passing the following:
+
+`GET /rest/Employee/firstName/getEmployees` Or `GET /rest/Employee/getEmployees/firstName`
+
+You can also apply any of the following functions to a method: [$filter]($filter.md), [$orderby]($orderby.md), [$skip]($skip.md), [$expand]($expand.md), and [$top/$limit]($top_$limit.md).
+
+
+### Example
+
+In the example below, we call our method, but also browse through the collection by returning the next ten entities from the sixth one:
+
+`GET /rest/Employee?$attributes=lastName,employer.name&$top=10&$skip=1/getHighSalaries` or `GET /rest/Employee/getHighSalaries?$attributes=lastName,employer.name&$top=10&$skip=1`
+
+If you want to retrieve an attribute and an extended relation attribute, you can write the following REST request:
+
+`GET /rest/Employee/firstName,employer/getHighSalaries?$expand=employer`
+
+In the example below, the getCities dataclass method returns a collection of cities:
+
+`GET /rest/Employee/getCities`
+
+Result:
+
+```
+{
+ "result": [
+ "Paris",
+ "Florence",
+ "New York"
+ ]
+}
+```
|