Skip to content

Commit 95d62d3

Browse files
authored
Merge pull request #422 from doc4d/main
update translations
2 parents d639431 + 9fb7275 commit 95d62d3

File tree

802 files changed

+4742
-3642
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

802 files changed

+4742
-3642
lines changed

docs/API/TCPConnectionClass.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ In the *options* parameter, pass an object that can contain the following proper
176176
|onError|Formula|Callback triggered in case of an error|Undefined|
177177
|onTerminate|Formula|Callback triggered just before the TCPConnection is released|Undefined|
178178
|noDelay|Boolean|**Read-only** Disables Nagle's algorithm if `true`|False|
179+
|connectionTimeout|Real| Maximum time (in seconds) to establish the connection. If exceeded, the connection attempt is aborted| System-defined, generally ≥ 30 |
179180

180181

181182
#### Callback functions

docs/Notes/updates.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,17 @@ title: Release Notes
44
---
55

66

7+
## 4D 20 R10
8+
9+
Read [**What’s new in 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), the blog post that lists all new features and enhancements in 4D 20 R10.
10+
11+
#### Highlights
12+
13+
- New `connectionTimeout` option in the [`options`](../API/TCPConnectionClass.md#options-parameter) parameter of the [`4D.TCPConnection.new()`](../API/TCPConnectionClass.md#4dtcpconnectionnew) function.
14+
715
## 4D 20 R9
816

9-
Read [**What’s new in 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-v20-R9/), the blog post that lists all new features and enhancements in 4D 20 R9.
17+
Read [**What’s new in 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), the blog post that lists all new features and enhancements in 4D 20 R9.
1018

1119
#### Highlights
1220

@@ -19,14 +27,14 @@ Read [**What’s new in 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-v20-R
1927
- Interpreted components can now be [edited from the host project](../Extensions/develop-components.md#editing-components-from-the-host).
2028
- [Licenses](../Admin/licenses.md) are now automatically refreshed at startup.
2129
- New [4D AIKit component](../aikit/overview.md) enabling interaction with third-party AI APIs.
22-
- The following VP command callbacks now wait for all 4D custom functions to complete their calculations: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-form-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), and [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md).
30+
- The following VP command callbacks now wait for all 4D custom functions to complete their calculations: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), and [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md).
2331
- New [4D Netkit](https://developer.4d.com/4D-NetKit/) features to manage Google and Microsoft 365 calendars; ability to use the host web server for OAuth 2.0 authentication.
2432
- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R9): list of all bugs that have been fixed in 4D 20 R9.
2533

2634

2735
## 4D 20 R8
2836

29-
Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R8/), the blog post that lists all new features and enhancements in 4D 20 R8.
37+
Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), the blog post that lists all new features and enhancements in 4D 20 R8.
3038

3139
#### Highlights
3240

@@ -56,7 +64,7 @@ Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R
5664

5765
## 4D 20 R7
5866

59-
Read [**What’s new in 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-v20-R7/), the blog post that lists all new features and enhancements in 4D 20 R7.
67+
Read [**What’s new in 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), the blog post that lists all new features and enhancements in 4D 20 R7.
6068

6169
#### Highlights
6270

docs/ORDA/privileges.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,52 @@ The `roles.json` file syntax is the following:
210210

211211
:::
212212

213+
#### Assigning permissions to ORDA class functions
214+
215+
When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax:
216+
217+
```json
218+
<DataclassName>.<functionName>
219+
```
220+
For example, if you want to apply a permission to the following function:
221+
222+
```4d
223+
// cs.CityEntity class
224+
Class extends Entity
225+
Function getPopulation() : Integer
226+
...
227+
```
228+
... you have to write:
229+
230+
```json
231+
"applyTo":"City.getPopulation"
232+
```
233+
234+
It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. You can then write in the "roles.json" file:
235+
236+
```json
237+
"permissions": {
238+
"allowed": [
239+
{
240+
"applyTo": "City.dropEntity",
241+
"type": "method",
242+
"promote": [
243+
"name"
244+
]
245+
},
246+
{
247+
"applyTo": "City.dropSelection",
248+
"type": "method",
249+
"promote": [
250+
"name"
251+
]
252+
}
253+
]
254+
```
255+
256+
257+
258+
213259
### `Roles_Errors.json` file
214260

215261
The `roles.json` file is parsed by 4D at startup. You need to restart the application if you want modifications in this file to be taken into account.

docs/commands-legacy/call-form.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ displayed_sidebar: docs
1515

1616
<!-- END REF-->
1717

18-
## Error management
18+
## Description
1919

2020
<!--REF #_command_.CALL FORM.Summary-->The **CALL FORM** command executes the 4D code designated in *formula* with the optional *param*(s) in the context of a form displayed in a *window*, regardless of the process owning the window.<!-- END REF-->
2121

22-
Just like in the worker-based interprocess communication feature (see *About workers*), a message box is associated with the window and can be used when the window displays a form (after the On Load form event). **CALL FORM** encapsulates the formula and its arguments in a message that is posted in the window's message box. The form then executes the message in its own process. The calling process can be cooperative or preemptive, thus this feature allows a preemptive process to exchange information with forms.
22+
Just like in the [worker-based interprocess communication feature](../Develop/processes.md#worker-processes), a message box is associated with the window and can be used when the window displays a form (after the [On Load](../Events/onLoad.md) form event). **CALL FORM** encapsulates the formula and its arguments in a message that is posted in the window's message box. The form then executes the message in its own process. The calling process can be cooperative or preemptive, thus this feature allows a preemptive process to exchange information with forms.
2323

2424
In *window*, you pass the window reference number of the window displaying the called form.
2525

docs/commands-legacy/multi-sort-array.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ displayed_sidebar: docs
1212
| --- | --- | --- | --- |
1313
| array | Array | &#8594; | Array(s) to be sorted |
1414
| sort | * | &#8594; | ">" to sort by increasing order or "<" to sort by decreasing order If omitted no sort |
15-
| MULTI SORT ARRAY ( ptrArrayName ; sortArrayName ) |
16-
| Parameter | Type | Description |
1715
| ptrArrayName | Pointer array | &#8594; | Array of array pointers |
1816
| sortArrayName | Array integer | &#8594; | Sort order array (1 = sort by increasing order, -1 = sort by decreasing order, 0 = synchronization with previous sorts) |
1917

docs/commands-legacy/object-get-auto-spellcheck.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ displayed_sidebar: docs
1919

2020
<!--REF #_command_.OBJECT Get auto spellcheck.Summary-->The **OBJECT Get auto spellcheck** command returns the status of the Auto spellcheck option for the object(s) designated by the *object* and *\** parameters for the current process.<!-- END REF-->
2121

22+
This command supports objects of the following types:
23+
24+
- Text-based [inputs](../FormObjects/input_overview.md)
25+
- [4D Write Pro areas](../FormObjects/writeProArea_overview.md).
26+
2227
If you pass the optional *\** parameter, this indicates that the *object* parameter is an object name (a string). If you do not pass this parameter, this indicates that the *object* is a variable or a field. In this case, you pass a reference instead of a name.
2328

2429
The command returns **True** when automatic spell-checking is enabled for the *object* and **False** when it is not.

docs/commands-legacy/object-set-auto-spellcheck.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,17 @@ displayed_sidebar: docs
1717

1818
## Description
1919

20-
<!--REF #_command_.OBJECT SET AUTO SPELLCHECK.Summary-->The **OBJECT SET AUTO SPELLCHECK** command sets or dynamically modifies the status of the **Auto spellcheck** option for the object(s) designated by the *object* and *\** parameters for the current process.<!-- END REF--> This option enables or disables the automatic spellcheck when data is entered for the object (Text type objects only).
20+
<!--REF #_command_.OBJECT SET AUTO SPELLCHECK.Summary-->The **OBJECT SET AUTO SPELLCHECK** command sets or dynamically modifies the status of the **Auto spellcheck** option for the object(s) designated by the *object* and *\** parameters for the current process.<!-- END REF--> This option enables or disables the automatic spellcheck when data is entered for the object.
21+
22+
This command supports objects of the following types:
23+
24+
- Text-based [inputs](../FormObjects/input_overview.md)
25+
- [4D Write Pro areas](../FormObjects/writeProArea_overview.md).
26+
2127

2228
If you pass the optional *\** parameter, this indicates that the *object* parameter is an object name (a string). If you do not pass this parameter, this indicates that the *object* is a variable or a field. In this case, you pass a reference instead of a name.
2329

30+
2431
Pass **True** in *autoSpellcheck* to enable this function for the object, and **False** to disable it.
2532

2633
## See also

docs/commands/theme/Language.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ slug: /commands/theme/Language
88
||
99
|---|
1010
|[<!-- INCLUDE #_command_.Action info.Syntax -->](../../commands-legacy/action-info.md)<br/>|
11-
|[<!-- INCLUDE #_command_.Call chain.Syntax -->](../../commands-legacy/call-chain.md)<br/>|
11+
|[<!-- INCLUDE #_command_.Call chain.Syntax -->](../call-chain.md)<br/>|
1212
|[<!-- INCLUDE #_command_.Command name.Syntax -->](../../commands/command-name.md)<br/>|
1313
|[<!-- INCLUDE #_command_.Copy parameters.Syntax -->](../../commands-legacy/copy-parameters.md)<br/>|
1414
|[<!-- INCLUDE #_command_.Count parameters.Syntax -->](../../commands-legacy/count-parameters.md)<br/>|

i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,7 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046
10731073
| formula | 4D.Function | -> | Objeto fórmula |
10741074
| methodName | Text | -> | Nombre de un método |
10751075
| param | any | -> | Parámetro(s) a pasar a la *formula* o *methodName* |
1076-
| Resultado | Integer | <- | Conjunción |
1076+
| Resultado | Integer | <- | Índice del primer valor encontrado, o -1 si no se encuentra |
10771077

10781078
<!-- END REF -->
10791079

@@ -1527,7 +1527,7 @@ En *index*, pase la posición donde quiere insertar el elemento en la colección
15271527

15281528
> **Atención**: recuerde que los elementos de la colección están numerados desde 0.
15291529
1530-
- Ejemplo 1
1530+
- Si *index* la longitud de la colección, el índice inicial real se fijará en la longitud de la colección.
15311531
- Si *index* <0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección).
15321532
- Si el valor calculado es negativo, index toma el valor 0.
15331533

@@ -1665,17 +1665,24 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar:
16651665

16661666
*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos).
16671667

1668-
Ejemplo 2
1668+
Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*.
16691669

16701670
- Si *startFrom* >= la longitud de la colección menos uno (coll.length-1), se busca en toda la colección (por defecto).
16711671
- Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, se devuelve -1 (no se busca en la colección).
16721672
**Nota:** incluso si *startFrom* es negativo, la colección se sigue buscando de derecha a izquierda.
1673-
- Descripción
1673+
- Si *startFrom* = 0, se devuelve -1 lo que significa que la colección no se busca.
16741674

16751675
#### Ejemplo
16761676

16771677
```4d
1678-
Tipo
1678+
var $col : Collection
1679+
var $pos1;$pos2;$pos3;$pos4;$pos5 : Integer
1680+
$col:=Split string("a,b,c,d,e,f,g,h,i,j,e,k,e";",") //$col.length=13
1681+
$pos1:=$col.lastIndexOf("e") //devuelve 12
1682+
$pos2:=$col.lastIndexOf("e";6) //devuelve 4
1683+
$pos3:=$col.lastIndexOf("e";15) //devuelve 12
1684+
$pos4:=$col.lastIndexOf("e";-2) //devuelve 10
1685+
$pos5:=$col.lastIndexOf("x") //devuelve -1
16791686
```
16801687

16811688
<!-- END REF -->
@@ -1794,13 +1801,13 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum())
17941801

17951802
#### Descripción
17961803

1797-
Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*).
1804+
La función `.max()` <!-- REF #collection.max().Summary -->devuelve el elemento con el valor más alto de la colección<!-- END REF --> (el último elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)).
17981805

17991806
> Esta función no modifica la colección original.
18001807
1801-
La función `.max()` <!-- REF #collection.max().Summary -->devuelve el elemento con el valor más alto de la colección <!-- END REF --> (el último elemento de la colección, ya que sería ordenado en orden ascendente usando el [`.sort()`](#sort) función).
1808+
Si la colección contiene diferentes tipos de valores, la función `.max()` devolverá el valor máximo dentro del último tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)).
18021809

1803-
Lanzamiento
1810+
Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor máximo desea obtener.
18041811

18051812
Si la colección está vacía, `.max()` devuelve *Undefined*.
18061813

@@ -2685,9 +2692,9 @@ Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite,
26852692

26862693
La retrollamada recibe los siguientes parámetros:
26872694

2688-
- La nueva colección
2689-
- Se puede insertar cualquier tipo de elemento aceptado por una colección, incluso otra colección.
2690-
- Esta función modifica la colección original.
2695+
- en *$1.value*: valor del elemento a procesar
2696+
- en *$2: param*
2697+
- en *$N...*: *paramN...*
26912698

26922699
La retrollamada define los siguientes parámetros:
26932700

@@ -2770,9 +2777,9 @@ Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite,
27702777

27712778
La retrollamada recibe los siguientes parámetros:
27722779

2773-
- La nueva colección
2774-
- Se puede insertar cualquier tipo de elemento aceptado por una colección, incluso otra colección.
2775-
- Esta función modifica la colección original.
2780+
- en *$1.value*: valor del elemento a procesar
2781+
- en *$2: param*
2782+
- en *$N...*: *paramN...*
27762783

27772784
La retrollamada define los siguientes parámetros:
27782785

@@ -3077,7 +3084,7 @@ La colección devuelta contiene el elemento especificado por *startFrom* y todos
30773084

30783085
#### Descripción
30793086

3080-
Lanzamiento
3087+
La función `.some()` <!-- REF #collection.some().Summary --> devuelve true si al menos un elemento de la colección ha pasado con éxito una prueba implementada en el código *formula* o *methodName* suministrado<!-- END REF -->.
30813088

30823089
Se designa el código 4D de retrollamada (callback) a ejecutar para evaluar los elementos de la colección utilizando:
30833090

@@ -3088,16 +3095,16 @@ La retrollamada se llama con los parámetros pasados en *param* (opcional). La r
30883095

30893096
La retrollamada recibe los siguientes parámetros:
30903097

3091-
- La nueva colección
3092-
- Se puede insertar cualquier tipo de elemento aceptado por una colección, incluso otra colección.
3093-
- Esta función modifica la colección original.
3098+
- en *$1.value*: valor del elemento a procesar
3099+
- en *$2: param*
3100+
- en *$N...*: *paramN...*
30943101

30953102
Puede definir los siguientes parámetros:
30963103

30973104
- Expresión a buscar en la colección
30983105
- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado.
30993106

3100-
Descripción
3107+
En todo caso, en el momento en que la función `.some()` encuentra el primer elemento de la colección que devuelve true, deja de llamar a la llamada de retorno y devuelve **true**.
31013108

31023109
Por defecto, `.some()` comprueba toda la colección. Opcionalmente, puede pasar el índice de un elemento desde el cual iniciar la prueba en *startFrom*.
31033110

@@ -3179,7 +3186,7 @@ La retrollamada recibe los siguientes parámetros:
31793186
- *$1.value2* (todo tipo): valor del segundo elemento a comparar
31803187
- $2...$N (cualquier tipo): parámetros adicionales
31813188

3182-
Resultado
3189+
If you used a method, you must set the folllowing parameter:
31833190

31843191
- Elemento a insertar en la colección
31853192

@@ -3203,7 +3210,10 @@ Resultado
32033210
#### Ejemplo 3
32043211

32053212
```4d
3206-
Descripción
3213+
var $col; $col2; $col3 : Collection
3214+
$col:=New collection(33;4;66;1111;222)
3215+
$col2:=$col.sort() //numerical sort: [4,33,66,222,1111]
3216+
$col3:=$col.sort(Formula(String($1.value)<String($1.value2))) //alphabetical sort: [1111,222,33,4,66]
32073217
```
32083218

32093219
<!-- END REF -->
@@ -3239,7 +3249,7 @@ Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran
32393249

32403250
Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta.
32413251

3242-
Esta función no modifica la colección original.
3252+
`.sum()` devuelve 0 si:
32433253

32443254
- la colección está vacía,
32453255
- la colección no contiene elementos numéricos,

i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,7 @@ El valor resultante se incluye entre 0 y la longitud de la selección de entidad
866866

867867
#### Descripción
868868

869-
True si la entidad acaba de ser creada y aún no se ha guardado. .
869+
La función `.isNew()` <!-- REF #EntityClass.isNew().Summary --> devuelve True si la entidad a la que se aplica acaba de ser creada y aún no ha sido guardada en el datastore<!-- END REF -->. .
870870

871871
#### Ejemplo
872872

0 commit comments

Comments
 (0)