diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md index 859f9cf7a11167..4431e2440854ce 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md @@ -3,15 +3,15 @@ id: UDPSocketClass title: UDPSocket --- -The `UDPSocket` class allows you to send and receive UDP packets. UDP (User Datagram Protocol) is an easy-to-implement protocol for sending data. It is faster and simpler than TCP (only 8 bytes of header as opposed to at least 20 bytes in TCP), but it does not offer the same level of reliability. It is useful for applications where data must arrive at their destination quickly. However, it does not allow verification of delivery, nor does it allow error-checking or recovery of data that was not delivered correctly. +La clase `UDPSocket` permite enviar y recibir paquetes UDP. UDP (User Datagram Protocol) es un protocolo de fácil implementación para el envío de datos. Es más rápido y sencillo que TCP (sólo 8 bytes de encabezado frente a los al menos 20 bytes en TCP), pero no ofrece el mismo nivel de fiabilidad. Es útil para aplicaciones en las que los datos deben llegar rápidamente a su destino. Sin embargo, no permite verificar la entrega, ni comprobar errores o recuperar datos que no se hayan entregado correctamente. -The `UDPSocket` class is available from the `4D` class store. You can create a UDP connection using the [4D.UDPSocket.new()](#4dudpsocketnew) function, which returns a [UDPSocket object](#udpsocket-object). +La clase `UDPSocket` está disponible en el class store `4D`. Puede crear una conexión UDP utilizando la función [4D.UDPSocket.new()](#4dudpsocketnew), que devuelve un [objeto UDPSocket](#udpsocket-object). -Thanks to the standard 4D object *refcounting*, a UDPSocket is automatically released when it is no longer referenced, i.e. when no more references to them exist in memory. Esto ocurre típicamente, por ejemplo, al final de una ejecución de un método para variables locales. Consequently, the associated resources are properly cleaned up without requiring explicit closure. However, if you want to "force" the closure of a socket at any moment, [**nullify** its references by setting them to **Null**](../Concepts/dt_object.md#resources). +Gracias al *refcounting* de los objetos 4D estándar, un socket UDPSocket se libera automáticamente cuando deja de estar referenciado, es decir, cuando no existen más referencias a ellos en memoria. Esto ocurre típicamente, por ejemplo, al final de una ejecución de un método para variables locales. En consecuencia, los recursos asociados se limpian adecuadamente sin necesidad de un cierre explícito. Sin embargo, si quieres "forzar" el cierre de un socket en cualquier momento, [**nulifica** sus referencias poniéndolas **Null**](../Concepts/dt_object.md#resources). :::info 4DTCPUDPLog.txt file -For debugging and monitoring, you can use the [4DTCPUDPLog.txt log file](../Debugging/debugLogFiles.md#4dtcpudplogtxt) that records events related to UDP sockets. Los eventos incluyen transmisión de datos, errores e información del ciclo de vida de la conexión. +Para depuración y monitorización, puede utilizar el fichero de registro [4DTCPUDPLog.txt](../Debugging/debugLogFiles.md#4dtcpudplogtxt) que registra los eventos relacionados con los sockets UDP. Los eventos incluyen transmisión de datos, errores e información del ciclo de vida de la conexión. ::: @@ -29,7 +29,7 @@ For debugging and monitoring, you can use the [4DTCPUDPLog.txt log file](../Debu Un objeto UDPSocket no es modificable y no es streamable. -UDPSocket objects provide the following properties and functions: +Los objetos UDPSocket ofrecen las siguientes propiedades y funciones: | | | --------------------------------------------------------------------------------------------------- | @@ -45,21 +45,21 @@ UDPSocket objects provide the following properties and functions: -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | --------------------------- | ---------------------------------------------------------------------------------------------- | -| port | Integer | -> | Local port used for UDP socket (0 or omitted = find any unused port to use) | -| options | Object | -> | Configuration [options](#options-parameter) for the socket | -| Resultado | UDPSocket | <- | Nuevo objeto UDPSocket | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| port | Integer | -> | Puerto local utilizado para el socket UDP (0 u omitido = buscar cualquier puerto no utilizado para utilizar) | +| options | Object | -> | Configuración [opciones](#options-parameter) para el socket | +| Resultado | UDPSocket | <- | Nuevo objeto UDPSocket | #### Descripción -The `4D.UDPSocket.new()` function creates a new UDP socket using the defined *options* (if any) on the specified *port* (if any) or on a random unused port, and returns a `4D.UDPSocket` object. +La función `4D.UDPSocket.new()` crea un nuevo socket UDP utilizando las *options* definidas (si las hay) en el *port* especificado (si lo hay) o en un puerto aleatorio no utilizado, y devuelve un objeto `4D.UDPSocket`. #### Parámetro *options* -In the *options* parameter, you can pass an object that contains the following properties: +En el parámetro *options*, puede pasar un objeto que contenga las siguientes propiedades: | Propiedad | Tipo | Descripción | Por defecto | | ----------- | ------- | ------------------------------------------------ | ----------- | @@ -80,11 +80,11 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onData` se activa cada vez que se reciben datos. 2. `onError` se activa si se produce un error. -3. `onTerminate` is always triggered just before the port is released (socket is closed or an error occured). +3. `onTerminate` siempre se activa justo antes de que el puerto se libere (el socket se cierra o se produce un error). #### Objeto UDPEvent -A [`UDPEvent`](UDPEventClass.md) object is returned when a [callback function](#callback-functions) is called. +Un objeto [`UDPEvent`](UDPEventClass.md) es devuelto cuando se llama una [función de retrollamada](#callback-functions). @@ -96,7 +96,7 @@ A [`UDPEvent`](UDPEventClass.md) object is returned when a [callback function](# #### Descripción -The `.errors` property contains a collection of error objects associated with the socket. Cada objeto de error incluye el código de error, una descripción y la firma del componente que causó el error. +La propiedad `.errors` contiene una colección de objetos de error asociados al socket. Cada objeto de error incluye el código de error, una descripción y la firma del componente que causó el error. | Propiedad | | Tipo | Descripción | | --------- | ----------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------- | @@ -115,7 +115,7 @@ The `.errors` property contains a collecti #### Descripción -The `.port` property contains the port number to listen to. Esta propiedad es de **solo lectura**. +La propiedad `.port` contiene el número de puerto a escuchar. Esta propiedad es de **solo lectura**. @@ -137,11 +137,11 @@ The `.port` property contains the port numbe #### Descripción -The `send()` function sends *data* to the remote *hostName* server on the specified *remotePort*. +La función `send()` envía *data* al servidor remoto *hostName* en el *remotePort* especificado. -*hostName* is the name or IP address of the server where the data will be sent. +*hostName* es el nombre o la dirección IP del servidor al que se enviarán los datos. -*remotePort* is the number of the port to be connected to. Si pasa 0, se utilizará cualquier puerto disponible. +*remotePort* es el número del puerto al que hay que conectarse. Si pasa 0, se utilizará cualquier puerto disponible. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md index b28e8d1fd4ae6b..3f5bc13e658e9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md @@ -3,15 +3,15 @@ id: labels title: Etiquetas --- -4D’s Label editor provides a convenient way to print a wide variety of labels. Con ella, puede hacer lo siguiente: +El editor de etiquetas de 4D ofrece una forma práctica de imprimir una amplia variedad de etiquetas. Con ella, puede hacer lo siguiente: -- Design labels for mailings, file folders and file cards, and for many other needs, -- Create and insert decorative items in label templates, -- Specify the font, font size, and style to be used for the labels, -- Specify the number of labels across and down on each page, +- Diseñe etiquetas para envíos postales, carpetas y fichas de archivo, y para muchas otras necesidades, +- crear e insertar elementos decorativos en un modelo de etiquetas, +- definir la fuente, el tamaño y el estilo de la fuente a utilizar para las etiquetas, +- determinar el número de etiquetas a lo largo y a lo ancho de cada página, - Especifique cuántas etiquetas imprimir por registro, - Especifique los márgenes de la página de etiquetas, -- Designate a method to execute when printing each label or record, +- designar un método a ejecutar al imprimir cada etiqueta o registro, - Crea una vista previa e imprime las etiquetas. :::note @@ -20,110 +20,110 @@ Las etiquetas también se pueden crear usando el [Editor de formularios](../Form ::: -You use the Label editor to create, format, and print labels. The Label editor contains settings for designing labels and positioning the labels on label paper. For example, when producing mailing labels, you might want a label design that includes the person’s first and last name on the first line, the street address on the second line, and so on. As part of the design, the Label editor enables you to specify the number of labels on the page and the margins of the label paper so that the label text is centered within the labels. -When you create a satisfactory label design, you can save it to disk so that you can reuse it. +El editor de etiquetas permite crear, formatear e imprimir las etiquetas. El editor de etiquetas contiene los parámetros para diseñar etiquetas y colocarlas en el papel de etiquetas. Por ejemplo, al producir etiquetas de correo, es posible que desee un diseño de etiqueta que incluya el nombre y apellidos de la persona en la primera línea, la dirección postal en la segunda línea, etc. Como parte del diseño, el editor de etiquetas le permite especificar el número de etiquetas de la página y los márgenes del papel de etiquetas para que el texto de las etiquetas quede centrado dentro de las mismas. +Cuando crea un diseño de etiqueta satisfactorio, puede guardarlo en disco para poder reutilizarlo. Para abrir el editor de etiquetas: -- In the Design environment, choose **Labels...** from the **Tools** menu or from the menu associated with the "Tools" button in the 4D tool bar. +- En el entorno Diseño, elija **Etiquetas...** en el menú **Herramientas** o en el menú asociado al botón "Herramientas" en la barra de herramientas de 4D. O - En una aplicación, llame al comando [`PRINT LABEL`](../commands-legacy/print-label.md). ![](../assets/en/Desktop/label-wizard.png) -You use the Label page to specify the contents of the label and the Layout page to define the size and position of the labels on the page. +Utilice la página Etiqueta para especificar el contenido de la etiqueta y la página Diseño para definir el tamaño y la posición de las etiquetas en la página. ![](../assets/en/Desktop/label-buttons.png) ## Página Etiqueta -The Label page contains several areas with settings for designing and formatting labels. +La página Etiqueta contiene varias áreas con opciones para diseñar y dar formato a las etiquetas. ### Lista de campos -Displays the names of the fields in the current table in a hierarchical list. If this table is related to other tables, the foreign key fields have a plus sign (on Windows) or an arrow (on macOS). You can display fields from the related table by expanding the related fields. Los campos de la tabla relacionada están indentados. To use a field from this list in the label template, you just drag it onto the label preview area to the right of the list. +Muestra los nombres de los campos de la tabla actual en una lista jerárquica. Si esta tabla está relacionada con otras tablas, los campos de clave externa tienen un signo más (en Windows) o una flecha (en macOS). Puede visualizar los campos de la tabla relacionada expandiendo los campos relacionados. Los campos de la tabla relacionada están indentados. Para utilizar un campo de esta lista en la plantilla de etiquetas, basta con arrastrarlo a la zona de vista previa de etiquetas situada a la derecha de la lista. :::note Notas -- Only tables and fields which are visible appear in the Label editor. -- [Object type](../Concepts/dt_object.md) fields are not supported by the Label editor. +- Sólo las tablas y los campos visibles aparecen en el editor de etiquetas. +- Los campos de [tipo Objeto](../Concepts/dt_object.md) no son compatibles con el editor de etiquetas. ::: -The search area allows you to narrow the list of fields displayed to those containing the entered string: +El área de búsqueda le permite limitar la lista de campos mostrados a aquellos que contengan la cadena de caracteres introducida: ![](../assets/en/Desktop/label-filter.png) ### Vista previa de etiqueta -You use this area to design your label zone by placing and positioning all the items that you want to include in your label. El rectángulo blanco representa una sola etiqueta (su tamaño se configura en la página [Diseño](#layout-page)). +Utilice esta área para diseñar su zona de etiquetas colocando y posicionando todos los elementos que desee incluir en su etiqueta. El rectángulo blanco representa una sola etiqueta (su tamaño se configura en la página [Diseño](#layout-page)). - Puede arrastrar los campos a la etiqueta. -- You can also concatenate two fields by dropping the second field onto the first one. Se separan automáticamente con un espacio.
+- También puede concatenar dos campos soltando el segundo campo sobre el primero. Se separan automáticamente con un espacio.
![](../assets/en/Desktop/label-concat.png)
- If you hold down the **Shift** key, they are separated by a carriage return. This lets you create, for example, address labels using several overlapping fields (Address1, Address2, etc.), without producing a blank row when an address requires only one field. -- You can add a formula onto the label by selecting the **Formula** tool ![](../assets/en/Desktop/label-tool6.png) (or choosing **Tool>Formula** in the contextual menu) and drawing an area. The **Formula editor** is then displayed: + Si mantiene presionada la tecla **Mayús**, se separan con un retorno de carro. Esto le permite crear, por ejemplo, etiquetas de direcciones utilizando varios campos superpuestos (Dirección1, Dirección2, etc.), sin producir una línea vacía cuando una dirección sólo requiere un campo. +- Puede añadir una fórmula a la etiqueta seleccionando la herramienta **Fórmula** ![](../assets/en/Desktop/label-tool6.png) (o eligiendo **Herramienta>Fórmula** en el menú contextual) y dibujando un área. Aparecerá el **Editor de fórmulas**: ![](../assets/en/Desktop/label-formula1.png)
- For example, you can apply a format to a field using the [`String`](../commands/string.md) command:
+ Por ejemplo, puede aplicar un formato a un campo utilizando el comando [`String`](../commands/string.md):
![](../assets/en/Desktop/label-formula2.png)
:::note -Keep in mind that you can only enter methods that are "allowed" for the database in the Formula editor. Los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y del comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md). +Tenga en cuenta que sólo puede introducir métodos "permitidos" para la base de datos en el Editor de fórmulas. Los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y del comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md). ::: -- You can drag and drop picture files as well as label files (".4lbp" files) from the desktop of the OS. +- Puedes arrastrar y soltar archivos imagen, así como archivos de etiquetas (archivos ".4lbp") desde el escritorio del sistema operativo. -- To modify the area, double-click on the contents in order to switch to editing mode. When you double-click on fields or formulas, the **Formula editor** is displayed, allowing you to remove or modify items: +- Para modificar el área, haga doble clic en el contenido para pasar al modo edición. Al hacer doble clic en campos o fórmulas, aparece el **Editor de fórmulas**, que permite eliminar o modificar elementos: ![](../assets/en/Desktop/label-formula.png) ### Formulario a utilizar -This drop-down list allows you to define a table form as a label template. The form chosen must be specially adapted to the creation of labels. -En este caso, el editor de etiquetas está parcialmente deshabilitado: sólo las funciones de la [página de diseño](#layout-page) pueden ser usadas — para permitirte configurar la página basada en el formulario. The image of the form selected is displayed in the label preview area. -When you use a form, 4D executes any form or object methods associated with it. Al usar esta opción, también puede designar un método proyecto para ejecutar para cada registro o etiqueta y luego asignar variables (ver [este ejemplo](#printing-labels-using-forms-and-methods-example) más abajo). If you want to create your labels using the editor itself, you need to choose the **No Form** option. +Esta lista desplegable permite definir un formulario tabla como modelo de etiqueta. El formulario elegido debe estar especialmente adaptado a la creación de etiquetas. +En este caso, el editor de etiquetas está parcialmente deshabilitado: sólo las funciones de la [página de diseño](#layout-page) pueden ser usadas — para permitirte configurar la página basada en el formulario. La imagen del formulario seleccionado se muestra en el área de previsualización de etiquetas. +Cuando se utiliza un formulario, 4D ejecuta cualquier método de formulario u objeto asociado a él. Al usar esta opción, también puede designar un método proyecto para ejecutar para cada registro o etiqueta y luego asignar variables (ver [este ejemplo](#printing-labels-using-forms-and-methods-example) más abajo). Si desea crear sus etiquetas utilizando el propio editor, deberá elegir la opción **Sin formulario**. :::note Notas - Puede restringir los formularios listados que aparecen en este menú mediante un [archivo JSON específico](#controlling-available-forms-and-methods). -- If the database does not contain any table forms, this menu is not displayed. +- Si la base no contiene ningún formulario tabla, este menú no se muestra. ::: ### Comandos del área gráfica -The graphic area of the editor includes both a tool bar and a context menu that you can use to design your label template. +El área gráfica del editor incluye tanto una barra de herramientas como un menú contextual que puede utilizar para diseñar su plantilla de etiquetas. -The left-hand side of the tool bar includes commands for selecting and inserting objects. You can also access these tools by means of the **Tool>** command in the area's context menu. +La parte izquierda de la barra de herramientas incluye comandos para seleccionar e insertar objetos. También puede acceder a estas herramientas mediante el comando **Herramienta>** del menú contextual del área. -| Icono | Nombre de la herramienta | Descripción | -| ----------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ![](../assets/en/Desktop/label-tool1.png) | Selección | Click on a single object or draw a selection box around several objects. For a selection of non-adjacent objects, hold down **Shift** and click on each object you want to select. | -| ![](../assets/en/Desktop/label-tool2.png) | Creación de línea | | -| ![](../assets/en/Desktop/label-tool3.png) | Creación rectangular | Para creación de rectángulo o rectángulo redondeado. | -| ![](../assets/en/Desktop/label-tool4.png) | Creación de círculo | | -| ![](../assets/en/Desktop/label-tool5.png) | Inserción de texto | Dibuja un rectángulo e introduce texto en su interior. You can edit any text area, including those containing field references, by double-clicking it. | -| ![](../assets/en/Desktop/label-tool6.png) | Inserción de fórmula | Draw a rectangle to display the **Formula editor**, where you can define dynamic label contents (fields and formulas). | +| Icono | Nombre de la herramienta | Descripción | +| ----------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool1.png) | Selección | Haga clic en un solo objeto o dibuje un cuadro de selección alrededor de varios objetos. Para una selección de objetos no adyacentes, mantenga presionada **Mayús** y haga clic en cada objeto que desee seleccionar. | +| ![](../assets/en/Desktop/label-tool2.png) | Creación de línea | | +| ![](../assets/en/Desktop/label-tool3.png) | Creación rectangular | Para creación de rectángulo o rectángulo redondeado. | +| ![](../assets/en/Desktop/label-tool4.png) | Creación de círculo | | +| ![](../assets/en/Desktop/label-tool5.png) | Inserción de texto | Dibuja un rectángulo e introduce texto en su interior. Puede editar toda área de texto, incluidas las que contienen referencias a campos, haciendo doble clic en ellas. | +| ![](../assets/en/Desktop/label-tool6.png) | Inserción de fórmula | Dibuje un rectángulo para mostrar el **Editor de fórmulas**, donde puede definir el contenido dinámico de las etiquetas (campos y fórmulas). | -There are shortcuts available to move or resize objects more precisely using the keyboard arrow keys: +Hay atajos disponibles para mover o redimensionar objetos con mayor precisión utilizando las teclas de flecha del teclado: -- Keyboard arrow keys move the selection of objects 1 pixel at a time. -- **Shift** + arrow keys move the selection of objects 10 pixels at a time. -- **Ctrl** + arrow keys enlarge or reduce the selection of objects by 1 pixel. -- **Ctrl** + **Maj** + arrow keys enlarge or reduce the selection of objects by 10 pixels. +- Las teclas de flecha del teclado mueven la selección de objetos de 1 píxel a la vez. +- **Mayús** + teclas de flecha mueven la selección de objetos 10 píxeles a la vez. +- **Ctrl** + teclas de flecha agrandan o reducen la selección de objetos en 1 píxel. +- **Ctrl** + **Maj** + teclas de flecha amplían o reducen la selección de objetos en 10 píxeles. -The right-hand side of the tool bar contains commands used to modify items of the label template: +El lado derecho de la barra de herramientas contiene comandos utilizados para modificar elementos de la plantilla de etiqueta: -| Icono | Nombre de la herramienta | Descripción | -| ------------------------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/Desktop/label-tool7.png) | Color de relleno | todos los iconos de color muestran el color seleccionado | -| ![](../assets/en/Desktop/label-tool8.png) | Color de línea | | -| ![](../assets/en/Desktop/label-tool9.png) | Peso lineal | | -| ![](../assets/en/Desktop/label-tool10.png) | Menú Fuente | Sets the font and its size, as well as the text style, color and alignment for the block(s) of selected text. | -| ![](../assets/en/Desktop/label-tool11.png) | Alineación y distribución | Two or more objects must be selected for the alignment options to be available. "Distributing" objects means automatically setting the horizontal or vertical intervals between at least three objects, so that they are identical. The resulting interval is an average of all those existing in the selection. | -| ![](../assets/en/Desktop/label-tool12.png) | Nivel de los objetos | Moves objects to the front or back, or moves one or more objects up or down one level. | +| Icono | Nombre de la herramienta | Descripción | +| ------------------------------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool7.png) | Color de relleno | todos los iconos de color muestran el color seleccionado | +| ![](../assets/en/Desktop/label-tool8.png) | Color de línea | | +| ![](../assets/en/Desktop/label-tool9.png) | Peso lineal | | +| ![](../assets/en/Desktop/label-tool10.png) | Menú Fuente | Define la fuente y su tamaño, así como el estilo, el color y la alineación del texto para los bloques de texto seleccionados. | +| ![](../assets/en/Desktop/label-tool11.png) | Alineación y distribución | Deben seleccionarse dos o más objetos para que las opciones de alineación estén disponibles. "Repartir" objetos significa definir automáticamente los intervalos horizontales o verticales entre al menos tres objetos, de modo que sean idénticos. El intervalo resultante es una media de todos los existentes en la selección. | +| ![](../assets/en/Desktop/label-tool12.png) | Nivel de los objetos | Mueve los objetos a la parte frontal o atrás, o mueve uno o más objetos hacia arriba o hacia abajo de un nivel. | ## Página Diseño @@ -199,7 +199,7 @@ The Label editor includes an advanced feature allowing you to restrict which pro - en el menú **Aplicar (método)** de la página "Diseño". 1. Crea un archivo JSON llamado **labels.json** y ponlo en la [carpeta de recursos](../Project/architecture.md#resources) del proyecto. -2. In this file, add the names of forms and/or project methods that you want to be able to select in the Label editor menus. +2. En este archivo, añada los nombres de los formularios y/o métodos proyecto que desea poder seleccionar en los menús del editor de etiquetas. El contenido del archivo **labels.json** debe ser similar a: @@ -214,34 +214,34 @@ Si no se ha definido ningún archivo **labels.json** entonces no se aplica ning ## Gestión de archivos de etiquetas -4D allows you to save each label design in a file that you can open subsequently from within the wizard. By saving your label designs, you can build a label library adapted to your specific needs. Each label design stores the settings defined on the Label and Layout pages. +4D le permite guardar cada modelo de etiquetas en un archivo que podrá abrir posteriormente desde el asistente. Si guarda sus diseños de etiquetas, podrá crear una biblioteca de etiquetas adaptada a sus necesidades específicas. Cada diseño de etiqueta almacena los ajustes definidos en las páginas Etiqueta y Diseño. -You can drag and drop label files from your desktop onto the label design area. +Puede arrastrar y soltar archivos de etiquetas desde el escritorio al área de diseño de etiquetas. -Label designs are managed using the **Load** and **Save** buttons of the tool bar. +Los diseños de etiquetas se gestionan mediante los botones **Cargar** y **Guardar** de la barra de herramientas. -- To load a label design, click on the **Load** button and designate the design you want to load by means of the File Open dialog box (if a label design is already present in the wizard, 4D replaces it by the one you have loaded). -- To save a label design, click on the **Save** button and indicate the name and location of the design to be created. +- Para cargar un diseño de etiqueta, haga clic en el botón **Cargar** y designe el diseño que desea cargar mediante el cuadro de diálogo Abrir archivo (si ya existe un diseño de etiqueta en el asistente, 4D lo sustituye por el que ha cargado). +- Para guardar un diseño de etiqueta, haga clic en el botón **Guardar** e indique el nombre y la ubicación del diseño que desea crear. ### Formato del archivo -The file extension of 4D labels saved by the wizard is ".4lbp". Note that this format is open since it is written internally in XML. +La extensión de archivo de las etiquetas 4D guardadas por el asistente es ".4lbp". Tenga en cuenta que este formato es abierto, ya que está escrito internamente en XML. ### Precargando archivos de etiqueta -The Label Wizard allows you to store label files within your application, so that label designs can be selected and opened by the user directly using the **Load** button. +El editor de etiquetas le permite almacenar archivos de etiquetas dentro de su aplicación, de forma que los diseños de etiquetas puedan ser seleccionados y abiertos por el usuario directamente mediante el botón **Cargar**. -To do this, you just need to create a folder named `Labels` within the [Resources folder](../Project/architecture.md#resources) of the project and then copy your label files into it: +Para ello, basta con crear una carpeta llamada `Labels` en la [carpeta Resources](../Project/architecture.md#resources) del proyecto y copiar en ella los archivos de etiquetas: ![](../assets/en/Desktop/label-resources.png) :::note -Both standard ".4lbp" files and files generated by the former wizard (".4lb") files are supported. +Se admiten tanto los archivos ".4lbp" estándar como los generados por el asistente anterior (".4lb"). ::: -When the Label Wizard starts, if this folder is detected and contains valid label files, a pop-up icon is added to the **Load** button. Los modelos de etiquetas pueden seleccionarse a través de una línea de menú: +Cuando se inicia el Asistente de etiquetas, si se detecta esta carpeta y contiene archivos de etiquetas válidos, se añade un icono emergente al botón **Cargar**. Los modelos de etiquetas pueden seleccionarse a través de una línea de menú: ![](../assets/en/Desktop/label-resources2.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index f2161a9b6071d0..91cd60a940396c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### Ejemplo 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. Por ejemplo: +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. Por ejemplo: ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/date-time-formats.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/date-time-formats.md index 30eaf641560bb5..1205c7f43c900d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/date-time-formats.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/date-time-formats.md @@ -94,7 +94,7 @@ La siguiente tabla muestra todos los patrones soportados para formatos de fecha | | Zona horaria: ISO8601 hm básico, sin Z | xx | -0800, +0000 | | | Zona horaria: ISO8601 hm extendido, sin Z | xxx | -08:00 | | | Zona horaria: ISO8601 hms básico, sin Z | xxxx | -0800, -075258 | -| | Time Zone: ISO8601 extended hms?, without Z | xxxxx | -08:00, -07:52:58 | +| | Time Zone: ISO8601 extended hms?, sin Z | xxxxx | -08:00, -07:52:58 | | O | Zona horaria: GMT localizada abreviada | O | GMT-8 | | | Zona horaria: localización larga GMT (=ZZZZ) | OOOO | GMT-08:00 | | z | Zona horaria: no específica | z, zz, o zzz | -0800 | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 0f995b94fe34c5..4dd76aef192ad0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -3,7 +3,7 @@ id: http-request-handler title: HTTP Request handler --- -By default, HTTP requests received by the 4D web server are handled through [built-in processing features](httpRequests.md) or the [REST server](../REST/REST_requests.md). +Por defecto, las peticiones HTTP recibidas por el servidor web 4D se gestionan a través de [funciones de procesamiento integradas](httpRequests.md) o del [servidor REST](../REST/REST_requests.md). In addition, 4D supports the implementation of **custom HTTP Request handlers**, allowing you to intercept specific incoming HTTP requests and process them using your own code. @@ -36,7 +36,7 @@ This file contains all listened URL patterns, the handled verbs, and the code to At runtime, the first pattern matching the URL is executed, the others are ignored. -Here is an example of a *HTTPHandlers.json* file contents: +Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: ```json @@ -155,50 +155,50 @@ El verbo HTTP también puede ser evaluado [utilizando la propiedad `.verb` dentr ## Ejemplo -Here is a detailed example of a HTTPHandlers.json file: +He aquí un ejemplo detallado de un archivo HTTPHandlers.json: ```json [ { - "class": "GeneralHandling", + "clase": "GeneralHandling", "method": "handle", - "pattern": "info", //URL prefix + "pattern": "info", //prefijo URL "verbs": "GET" }, { "class": "UsersHandling", "method": "manageAccount", - "pattern": "userAccount/update", //URL prefix + "pattern": "userAccount/update", //prefijo URL "verbs": "PUT,POST" }, { "class": "FinancialHandling", "method": "handleInvoices", - "regexPattern": "/docs/invoices/(past|today)", //URL prefix given as a regex + "regexPattern": "/docs/invoices/(past|today)", //prefijo de URL dado como regex "verbs": "GET" }, { "class": "DocsHandling", "method": "handleDocs", - "regexPattern": "/docs/myPage.html", //URL prefix given as a regex + "regexPattern": "/docs/myPage.html", //prefijo de URL dado como regex "verbs": "GET" }, { "class": "InvoicesHandling", "method": "handleTheInvoice", - "pattern": "docs/invoices/details/theInvoice", // The most specific URL first + "pattern": "docs/invoices/details/theInvoice", // La URL más específica primero "verbs": "GET,POST" }, { "class": "InvoicesHandling", "method": "handleDetails", - "pattern": "docs/invoices/details", // The general URLs after + "pattern": "docs/invoices/details", // Las URL generales después de "verbs": "GET" }, { "class": "InvoicesHandling", - "method": "handleInvoices", // The general URLs after + "method": "handleInvoices", // Las URL generales después de "pattern": "docs/invoices", "verbs": "GET" } @@ -212,28 +212,28 @@ En este ejemplo, debe implementar las siguientes funciones: - *manageAccount* en la clase *UsersHandling* - *handleInvoices* en la clase *FinancialHandling* - *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* in the *InvoicesHandling* class +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: -`IP:port/info/` with a GET verb -`IP:port/info/general` with a GET verb +`IP:port/info/` con un verbo GET +`IP:port/info/general` con un verbo GET -`IP:port/userAccount/update/` with a POST verb -`IP:port/userAccount/update/profile` with a POST verb +`IP:port/userAccount/update/` con un verbo POST +`IP:port/userAccount/update/profile` con un verbo POST -`IP:port/docs/invoices/past` with a GET verb -`IP:port/docs/invoices/today/latest` with a GET verb +`IP:port/docs/invoices/past` con un verbo GET +`IP:port/docs/invoices/today/latest` con un verbo GET `IP:port//docs/myPage.html` con un verbo GET -`IP:port//docs/invoices/` with a GET verb, calls *handleInvoices* function (*InvoicesHandling* class) -`IP:port//docs/invoices/details/` with a GET verb, calls *handleDetails* function (*InvoicesHandling* class) -`IP:port//docs/invoices/details/theInvoice/xxxxxx` with a GET verb, calls *handleTheInvoice* function (*InvoiceslHandling* class) +`IP:port//docs/invoices/` con un verbo GET, llama a la función *handleInvoices* (clase *InvoicesHandling*) +`IP:port//docs/invoices/details/` con un verbo GET, llama a la función *handleDetails* (clase *InvoicesHandling*) +`IP:port//docs/invoices/details/theInvoice/xxxxxx` con un verbo GET, llama a la función *handleTheInvoice* (clase *InvoiceslHandling*) ## Código del gestor de peticiones -### Function configuration +### Configuración de funciones The HTTP Request handler code must be implemented in a function of a [**Shared**](../Concepts/classes.md#shared-singleton) [**singleton class**](../Concepts/classes.md#singleton-classes). @@ -243,7 +243,7 @@ Request handler functions are not necessarily shared, unless some request handle :::note -It is **not recommended** to expose request handler functions to external REST calls using [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) or [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keywords. +**no es recomendado** exponer las funciones del gestor de solicitudes a llamadas REST externas usando las palabras claves [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) o [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md index fee5267a0d39e3..9d10fa7eb81856 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md @@ -8,13 +8,13 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ----------- | ------ | --------------------------- | ----------------------------------------------------------------- | -| targetObj | Object | → | Rango o elemento o documento 4D Write Pro | -| formula | Object | → | Objeto de fórmula U Objeto con propiedades de fórmula y de nombre | -| mode | Number | → | Modo de inserción | -| rangeUpdate | Number | → | Includes or excludes the inserted content within the range | -| Resultado | Object | ← | Text range object reprsenting the result of the formula | +| Parámetros | Tipo | | Descripción | +| ----------- | ------ | --------------------------- | ------------------------------------------------------------------ | +| targetObj | Object | → | Rango o elemento o documento 4D Write Pro | +| formula | Object | → | Objeto de fórmula U Objeto con propiedades de fórmula y de nombre | +| mode | Number | → | Modo de inserción | +| rangeUpdate | Number | → | Incluye o excluye el contenido insertado dentro del intervalo | +| Resultado | Object | ← | Objeto de rango de texto que representa el resultado de la fórmula | @@ -25,7 +25,7 @@ El comando **WP Insert formula** En el parámetro *targetObj*, puede pasar: - un rango, o -- an element (table / row / cell(s) / paragraph / body / header / footer / section / subsection / inline picture), or +- un elemento (tabla / línea / celda(s) / párrafo / cuerpo / encabezado / pie / sección / subsección / imagen en línea), o bien - un documento 4D Write Pro. En el parámetro *formula*, pase la fórmula 4D a evaluar. Puede pasar: @@ -33,14 +33,14 @@ En el parámetro *formula*, pase la fórmula 4D a evaluar. Puede pasar: - o un [objeto de la fórmula](../../commands/formula.md-objects) creado por el comando [**Formula**](../../commands/formula.md) o [**Formula from string**](../../commands/formula.md-from-string), - o un objeto que contiene dos propiedades: -| **Propiedad** | **Tipo** | **Description** | -| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | Nombre que se mostrará para la fórmula en el documento | -| formula | Object | The [formula object](../../commands/formula.md-objects) created by the [**Formula**](../../commands/formula.md) or [**Formula from string**](../../commands/formula.md-from-string) command | +| **Propiedad** | **Tipo** | **Description** | +| ------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | Text | Nombre que se mostrará para la fórmula en el documento | +| formula | Object | El [objeto de la fórmula](../../commands/formula.md-objects) creado por el comando [**Formula**](../../commands/formula.md) o [**Formula from string**](../../commands/formula.md-from-string), | -When you use an object with a formula *name*, this name is displayed in the document instead of the formula reference when formulas are displayed as reference, and in the formula tip when displayed as value or symbols. If the *name* property contains an empty string or is omitted, it is removed from the object and the formula is displayed by default. Para más información, vea la página [Gestión de formulas](../managing-formulas.md). +Cuando se utiliza un objeto con una fórmula *name*, este nombre se muestra en el documento en lugar de la referencia de fórmula cuando las fórmulas se muestran como referencia, y en el consejo de fórmula cuando se muestran como valor o símbolos. Si la propiedad *name* contiene una cadena vacía o se omite, se elimina del objeto y la fórmula se muestra por defecto. Para más información, vea la página [Gestión de formulas](../managing-formulas.md). -In the *mode* parameter, pass one of the following constants to indicate the insertion mode to be used: +En el parámetro *mode*, pase una de las siguientes constantes para indicar el modo de inserción que se va a utilizar: | Constante | Tipo | Valor | Comentario | | ---------- | ------- | ----- | ----------------------------------------------- | @@ -48,20 +48,20 @@ In the *mode* parameter, pass one of the following constants to indicate the ins | wk prepend | Integer | 1 | Insertar el contenido al principio del objetivo | | wk replace | Integer | 0 | Sustituir contenido de destino | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted *formula* is included in the resulting range: +- Si *targetObj* es un rango, puede utilizar el parámetro opcional *rangeUpdate* para pasar una de las siguientes constantes para especificar si la *formula* insertada se incluye o no en el rango resultante: | Constante | Tipo | Valor | Comentario | | --------------------- | ------- | ----- | ------------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Contenido insertado no incluido en el rango actualizado | | wk include in range | Integer | 0 | Contenido insertado incluido en el rango actualizado (por defecto) | -If you do not pass a *rangeUpdate* parameter, by default the inserted *formula* is included in the resulting range. +Si no pasa un parámetro *rangeUpdate*, por defecto la *formula* insertada se incluye en el rango resultante. - Si *targetObj* no es un rango, *rangeUpdate* se ignora. :::note -Keep in mind that, when called, the formula object is evaluated within the context of the database or component that created it. +Tenga en cuenta que, cuando se llama, el objeto fórmula se evalúa dentro del contexto de la base de datos o del componente que lo creó. ::: @@ -73,19 +73,19 @@ Para reemplazar todas las fórmulas de fecha actuales con cadenas formateadas: var $_formulas : Collection var $find;$newFormula : Object - // define the formula to find + // definir la fórmula a buscar $find:=Formula(Current date) - // define the replacement formula + // definir la fórmula de sustitución $newFormula:=Formula(String(Current date;System date long)) - // find all formulas in the document + // encontrar todas las fórmulas en el documento $_formulas:=WP Get formulas(WriteProArea) - // query the collection from WP Get formulas + // consultar la colección desde WP Get formulas $_formulas:=$_formulas.query("formula.source =:1";$find.source) - // then replace each formula + // luego reemplazar cada fórmula For each($formula;$_formulas) WP Insert formula($formula.range;$newFormula;wk replace) End for each @@ -93,19 +93,19 @@ Para reemplazar todas las fórmulas de fecha actuales con cadenas formateadas: ## Ejemplo 2 -You want to use a formula name for the customer name: +Desea utilizar un nombre de fórmula para el nombre del cliente: ```4d - //add some data + //añade algunos datos $data:=New object("customer";New object("lastname";"Smith";"firstname";"John")) WP SET DATA CONTEXT(WPArea;$data) - //create a formula object with a name + //crea un objeto fórmula con un nombre $o:=New object $o.formula:=Formula(This.data.customer.firstname+" "+This.data.customer.lastname) $o.name:="Customer name" - //inserts as text + //inserta como texto $range:=WP Text range(WPArea;wk start text;wk end text) WP SET TEXT($range;"Dear ";wk append) WP Insert formula($range;$o;wk append) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md index bd17d461c1e5b8..5201a0d503757f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md @@ -37,9 +37,9 @@ var $blob:=$image.asBlob() **asPicture**() : Picture -| Parámetros | Tipo | Descripción | -| ---------- | ------- | ----------------------------------------------------------------------- | -| Resultado | Picture | Creates a picture object from the blob converted image. | +| Parámetros | Tipo | Descripción | +| ---------- | ------- | ------------------------------------------------------------------------------- | +| Resultado | Picture | Crea un objeto imagen a partir de la imagen convertida en blob. | #### Ejemplo de Uso diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md index 2665873771c7ba..d76cf6b148b73b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md @@ -8,12 +8,12 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ---------- | ------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| aTable | Tabla | → | Tabla propia del formulario o Si se omite: tabla por defecto o uso del formulario del proyecto | -| form | Text, Object | → | Name (string) of table or project form, or a POSIX path (string) to a .json file describing the form, or an object describing the form | -| formData | Object | → | Datos a asociar al formulario | -| \* | Operador | → | Usar el mismo proceso | +| Parámetros | Tipo | | Descripción | +| ---------- | ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| aTable | Tabla | → | Tabla propia del formulario o Si se omite: tabla por defecto o uso del formulario del proyecto | +| form | Text, Object | → | Nombre (string) de la tabla o formulario proyecto, o una ruta POSIX (string) a un archivo .json que describa el formulario, o un objeto que describa el formulario | +| formData | Object | → | Datos a asociar al formulario | +| \* | Operador | → | Usar el mismo proceso | @@ -21,80 +21,75 @@ displayed_sidebar: docs The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). -This command is designed to work with customized and advanced user interfaces based on forms. You can use it to display information coming from the database or other locations, or to provide data entry features. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. +Este comando está diseñado para trabajar con interfaces de usuario personalizadas y avanzadas basadas en formularios. Puede utilizarlo para mostrar información procedente de la base de datos o de otras ubicaciones, o para proporcionar funciones de entrada de datos. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. Este comando suele invocarse junto con el comando [Open form window](../commands-legacy/open-form-window.md) para mostrar formularios sofisticados, como se muestra en el siguiente ejemplo: ![](../assets/en/commands/pict3541609.en.png) -The **DIALOG** command can also be used instead of [ALERT](../commands-legacy/alert.md), [CONFIRM](../commands-legacy/confirm.md) or [Request](../commands-legacy/request.md) when the information to be presented or gathered is more complex than those commands can manage. +El comando **DIALOG** también puede utilizarse en lugar de [ALERT](../commands-legacy/alert.md), [CONFIRM](../commands-legacy/confirm.md) o [Request](../commands-legacy/request.md) cuando la información a presentar o recopilar es más compleja de lo que esos comandos pueden gestionar. En el parámetro *form*, puede pasar: - el nombre de un formulario (formulario proyecto o formulario tabla) a utilizar; -- the path (in POSIX syntax) to a valid .json file containing a description of the form to use; -- an object containing a description of the form to use. +- la ruta (en sintaxis POSIX) a un archivo .json válido que contenga una descripción del formulario a utilizar; +- un objeto que contiene la descripción del formulario a utilizar. -Opcionalmente, puede pasar uno o varios parámetros al *form* utilizando un objeto "form data". Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. For example, if you use a form data object containing {"version";"12"}, you will be able to get or set the value of the "version" property in the form by calling: +Opcionalmente, puede pasar uno o varios parámetros al *form* utilizando un objeto "form data". Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Por ejemplo, si utiliza un objeto de datos de formulario que contenga {"version"; "12"}, podrá obtener o definir el valor de la propiedad "version" en el formulario llamando a: ```4d $v:=Form.version //"12" Form.version:=13 ``` -To fill the "form data" object, you have two possibilities: +Para llenar el objeto "form data", tiene dos posibilidades: -- usar el parámetro *formData*. Using a local variable for *formData* allows you to safely pass parameters to your forms, whatever the calling context. In particular, if the same form is called from different places in the same process, you will always be able to access its specific values by simply calling [Form](form.md).myProperty. Moreover, since objects are passed by reference, if the user modifies a property value in the form, it will automatically be saved in the object itself. +- usar el parámetro *formData*. Usar una variable local para *formData* le permite pasar con seguridad parámetros a sus formularios, sea cual sea el contexto de llamada. En particular, si el mismo formulario se llama desde diferentes lugares en el mismo proceso, siempre podrá acceder a sus valores específicos simplemente llamando a [Form](form.md).myProperty. Además, como los objetos se pasan por referencia, si el usuario modifica el valor de una propiedad en el formulario, se guardará automáticamente en el propio objeto. - [asociar una clase usuario al formulario](../FormEditor/properties_FormProperties.md#form-class), en cuyo caso 4D instanciará automáticamente un objeto de esta clase cuando se cargará el formulario. Las propiedades y funciones del objeto estarán automáticamente disponibles a través del objeto devuelto por [Form](form.md). Puede escribir por ejemplo `Form.myFunction()`. :::note - El parámetro *formData* tiene prioridad sobre una clase de formulario (el objeto de clase no es instanciado si se pasa un parámetro *formData*). -- If you do not pass the *formData* parameter (or if you pass an undefined object) and no user class is associated to the form, **DIALOG** creates a new empty object bound to the *form*. +- Si no pasa el parámetro *formData* (o si pasa un objeto no definido) y no hay ninguna clase de usuario asociada al formulario, **DIALOG** crea un nuevo objeto vacío vinculado al *form*. ::: -The dialog is closed by the user either with an "accept" action (triggered by the ak accept standard action, the Enter key, or the [ACCEPT](../commands-legacy/accept.md) command), or with a "cancel" action (triggered by the ak cancel standard action, the Escape key, or the [CANCEL](../commands-legacy/cancel.md) command). An accept action will set the OK system variable to 1, while a cancel action will set OK to 0\. +El diálogo es cerrado por el usuario ya sea con una acción "aceptar" (activada por la acción estándar ak accept, la tecla Intro, o el comando [ACCEPT](../commands-legacy/accept.md)), o con una acción de "cancelar" (activada por la acción estándar ak cancel, la tecla Escape, o el comando [CANCEL](../commands-legacy/cancel.md)). Una acción de aceptación pondrá la variable sistema OK en 1, mientras que una acción de cancelación pondrá OK en 0\. Tenga en cuenta que la validación no es igual al guardado: si el diálogo incluye campos, debe llamar explícitamente al comando [SAVE RECORD](../commands-legacy/save-record.md) para guardar cualquier dato que haya sido modificado. -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. Si el proceso actual termina, los formularios creados de este modo se cierran automáticamente del mismo modo que si se hubiera llamado a un comando [CANCEL](../commands-legacy/cancel.md). This opening mode is particularly useful for displaying a floating palette with a document, without necessarily requiring another process. +Si se pasa el parámetro opcional *\**, el formulario se carga y se muestra en la última ventana abierta del proceso actual y el comando finaliza su ejecución dejando el formulario activo en la pantalla.\ +Este formulario reacciona entonces "normalmente" a las acciones del usuario y se cierra utilizando una acción estándar o cuando el código 4D relacionado con el formulario (método objeto o método formulario) llama al comando [CANCEL](../commands-legacy/cancel.md) o [ACCEPT](../commands-legacy/accept.md). Si el proceso actual termina, los formularios creados de este modo se cierran automáticamente del mismo modo que si se hubiera llamado a un comando [CANCEL](../commands-legacy/cancel.md). Este modo de apertura es especialmente útil para mostrar una paleta flotante con un documento, sin necesidad de otro proceso. **Notas:** - Puede combinar el uso de la sintaxis **DIALOG**(form;\*) con el comando [CALL FORM](../commands-legacy/call-form.md) para establecer la comunicación entre los formularios. -- You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. En caso contrario, se genera el error -9909. -- When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. +- Debe crear una ventana antes de llamar a la instrucción **DIALOG**(form;\*). No es posible utilizar la ventana de diálogo actual en el proceso ni la ventana creada por defecto para cada proceso. En caso contrario, se genera el error -9909. +- Cuando se utiliza el parámetro *\**, la ventana se cierra automáticamente tras una acción estándar o una llamada al comando [CANCEL](../commands-legacy/cancel.md) o [ACCEPT](../commands-legacy/accept.md). No tiene que gestionar el cierre de la propia ventana. ## Ejemplo 1 -The following example can be used to create a tool palette: +El siguiente ejemplo permite crear una paleta de herramientas: ```4d - //Display tool palette + //Mostrar paleta de herramientas $palette_window:=Open form window("tools";Palette form window) - DIALOG("tools";*) //Give back the control immediately - //Display main document windowl + DIALOG("tools";*) //Devolver el control inmediatamente + //Mostrar ventana de documento principall $document_window:=Open form window("doc";Plain form window) DIALOG("doc") ``` ## Ejemplo 2 -In a form displaying the record of a person, a "Check children" button opens a dialog to verify/modify the names and ages of their children: +En un formulario que muestra el registro de una persona, un botón "Check children" abre un cuadro de diálogo para verificar/modificar los nombres y edades de sus hijos: ![](../assets/en/commands/pict3542015.en.png) -**Note:** The "Children" object field is represented only to show its structure for this example. +**Nota:** el campo objeto "Children" se representa sólo para mostrar su estructura en este ejemplo. -In the verification form, you have assigned some [Form](form.md) object properties to variables: +En el formulario de verificación, ha asignado algunas propiedades del objeto [Form](form.md) a variables: ![](../assets/en/commands/pict3541682.en.png) @@ -104,21 +99,21 @@ Este es el código del botón "Check children": var $win;$n;$i : Integer var $save : Boolean ARRAY OBJECT($children;0) - OB GET ARRAY([Person]Children;"children";$children) //get the children collection - $save:=False //initialize the save variable + OB GET ARRAY([Person]Children; "children";$children) //obtener la colección children + $save:=False //inicializar la variable save - $n:=Size of array($children) + $n:=Tamaño del array($children) If($n>0) $win:=Open form window("Edit_Children";Movable form dialog box) SET WINDOW TITLE("Check children for "+[Person]Name) - For($i;1;$n) //for each child - DIALOG("Edit_Children";$children{$i}) //displays dialog filled with values - If(OK=1) //the user clicked OK + For($i;1;$n) //para cada hijo + DIALOG("Edit_Children";$children{$i}) //muestra el diálogo lleno de valores + If(OK=1) //el usuario ha pulsado OK $save:=True End if End for If($save=True) - [Person]Children:=[Person]Children //forces object field update + [Person]Children:=[Person]Children //forza la actualización del campo objeto End if CLOSE WINDOW($win) Else @@ -130,7 +125,7 @@ El formulario muestra información sobre cada niño: ![](../assets/en/commands/pict3515152.en.png) -If values are edited and the OK button is clicked, the field is updated (the parent record must be saved afterwards). +Si se editan los valores y se presiona el botón OK, se actualiza el campo (después hay que guardar el registro principal). ## Ejemplo 3 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-load.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-load.md index 615b9cc54c46fe..598cedb207fbd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-load.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-load.md @@ -31,7 +31,7 @@ When the command is executed from a component, it loads the component forms by d ### formData -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). El objeto de datos del formulario está disponible en el [evento de formulario `On Load`](../Events/onLoad.md). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md index bab60cd5c9a13b..c40d5e22b60266 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md @@ -67,11 +67,11 @@ In the context of an input form displayed from an output form (i.e. after a doub ## Ejemplo -In a form displaying the record of a person, a "Check children" button opens a dialog to verify/modify the names and ages of their children: +En un formulario que muestra el registro de una persona, un botón "Check children" abre un cuadro de diálogo para verificar/modificar los nombres y edades de sus hijos: ![](../assets/en/commands/pict3542015.en.png) -**Note:** The "Children" object field is represented only to show its structure for this example. +**Nota:** el campo objeto "Children" se representa sólo para mostrar su estructura en este ejemplo. In the verification form, you have assigned some Form object properties to inputs: @@ -83,21 +83,21 @@ Este es el código del botón "Check children": var $win;$n;$i : Integer var $save : Boolean ARRAY OBJECT($children;0) - OB GET ARRAY([Person]Children;"children";$children) //get the children collection - $save:=False //initialize the save variable + OB GET ARRAY([Person]Children; "children";$children) //obtener la colección children + $save:=False //inicializar la variable save - $n:=Size of array($children) + $n:=Tamaño del array($children) If($n>0) $win:=Open form window("Edit_Children";Movable form dialog box) SET WINDOW TITLE("Check children for "+[Person]Name) - For($i;1;$n) //for each child - DIALOG("Edit_Children";$children{$i}) //displays dialog filled with values - If(OK=1) //the user clicked OK + For($i;1;$n) //para cada hijo + DIALOG("Edit_Children";$children{$i}) //muestra el diálogo lleno de valores + If(OK=1) //el usuario ha pulsado OK $save:=True End if End for If($save=True) - [Person]Children:=[Person]Children //forces object field update + [Person]Children:=[Person]Children //forza la actualización del campo objeto End if CLOSE WINDOW($win) Else @@ -109,7 +109,7 @@ El formulario muestra información sobre cada niño: ![](../assets/en/commands/pict3515152.en.png) -If values are edited and the OK button is clicked, the field is updated (the parent record must be saved afterwards). +Si se editan los valores y se presiona el botón OK, se actualiza el campo (después hay que guardar el registro principal). ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-end.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-end.md index 8f824ca6e661d7..45bade8b4dce54 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-end.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-end.md @@ -25,17 +25,17 @@ displayed_sidebar: docs ## Descripción -The **Trim end** command removes **whitespace** from the end of the *aString* parameter and returns a new string, without modifying the original one. **Whitespace** includes spaces, tabs, LF, CR, etc. +El comando **Trim end** elimina el **whitespace** del final del parámetro *aString* y devuelve una nueva cadena, sin modificar la original. **Whitespace** incluyen espacios, tabulaciones, LF, CR, etc. -To return a new string with whitespace trimmed from both ends, use [`Trim`](./trim.md). To return a new string with whitespace trimmed from the beginning of *aString*, use [`Trim start`](./trim-start.md). +Para devolver una nueva cadena con los whitespace recortados de ambos extremos, utilice [`Trim`](./trim.md). Para devolver una nueva cadena con los espacios en blanco recortados del principio de *aString*, utilice [`Trim start`](./trim-start.md). -In the *aString* parameter, you can pass any text expression. Será dejado sin tocar por el comando. +En el parámetro *aString*, puede pasar cualquier expresión de tipo texto. Será dejado sin tocar por el comando. -The command returns the trimmed version of the *aString* string. If there is no whitespace at the end of *aString*, the returned string is identical as the one passed in parameter. +El comando devuelve la versión recortada de la cadena *aString*. Si no hay espacios en blanco al final de *aString*, la cadena devuelta es idéntica a la pasada como parámetro. :::note -This command is based upon the [`trimEnd` Ecmascript specification](https://tc39.es/ecma262/multipage/text-processing.html#sec-string.prototype.trimend). +Este comando se basa en la especificación [`trimEnd` Ecmascript](https://tc39.es/ecma262/multipage/text-processing.html#sec-string.prototype.trimend). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-start.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-start.md index 1b9b535abce134..78b9c476984e85 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-start.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim-start.md @@ -25,17 +25,17 @@ displayed_sidebar: docs ## Descripción -The **Trim start** command removes **whitespace** from the beginning of the *aString* parameter and returns a new string, without modifying the original one. **Whitespace** includes spaces, tabs, LF, CR, etc. +El comando **Trim start** elimina los **whitespace** del principio del parámetro *aString* y devuelve una nueva cadena, sin modificar la original. **Whitespace** incluyen espacios, tabulaciones, LF, CR, etc. -To return a new string with whitespace trimmed from both ends, use [`Trim`](./trim.md). To return a new string with whitespace trimmed from the end of *aString*, use [`Trim end`](./trim-end.md). +Para devolver una nueva cadena con los whitespace recortados de ambos extremos, utilice [`Trim`](./trim.md). Para devolver una nueva cadena con los espacios en blanco recortados del final de *aString*, utilice [`Trim end`](./trim-end.md). -In the *aString* parameter, you can pass any text expression. Será dejado sin tocar por el comando. +En el parámetro *aString*, puede pasar cualquier expresión de tipo texto. Será dejado sin tocar por el comando. -The command returns the trimmed version of the *aString* string. If there is no whitespace at the beginning of *aString*, the returned string is identical as the one passed in parameter. +El comando devuelve la versión recortada de la cadena *aString*. Si no hay whitespace al principio de *aString*, la cadena devuelta es idéntica a la pasada como parámetro. :::note -This command is based upon the [`trimStart` Ecmascript specification](https://tc39.es/ecma262/multipage/text-processing.html#sec-string.prototype.trimstart). +Este comando se basa en la especificación [Ecmascript `trimStart`](https://tc39.es/ecma262/multipage/text-processing.html#sec-string.prototype.trimstart). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md index 3ea180e47c229e..4f3813dd3a1678 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md @@ -25,13 +25,13 @@ displayed_sidebar: docs ## Descripción -The **Trim** command removes **whitespace** from both ends of the *aString* parameter and returns a new string, without modifying the original one. **Whitespace** includes spaces, tabs, LF, CR, etc. +The **Trim** command removes **whitespace** from both ends of the *aString* parameter and returns a new string, without modifying the original one. **Whitespace** incluyen espacios, tabulaciones, LF, CR, etc. To return a new string with whitespace trimmed from just one end, use [`Trim start`](./trim-start.md) or [`Trim end`](./trim-end.md). -In the *aString* parameter, you can pass any text expression. Será dejado sin tocar por el comando. +En el parámetro *aString*, puede pasar cualquier expresión de tipo texto. Será dejado sin tocar por el comando. -The command returns the trimmed version of the *aString* string. If there is no whitespace at any end of *aString*, the returned string is identical as the one passed in parameter. +El comando devuelve la versión recortada de la cadena *aString*. If there is no whitespace at any end of *aString*, the returned string is identical as the one passed in parameter. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md index c13240fd52e0d3..275ea0de29e3c5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md @@ -1182,7 +1182,7 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades: | Constante | Valor | Comentario | | ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). the entity has been dropped and replaced by another one with another primary key (the stamp has changed and a new entity now uses the memory space). Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    ***Associated statusText***: "Other error" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    ***statusText asociado***: "Other error" | #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/UDPSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/UDPSocketClass.md index 859f9cf7a11167..4431e2440854ce 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/UDPSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/UDPSocketClass.md @@ -3,15 +3,15 @@ id: UDPSocketClass title: UDPSocket --- -The `UDPSocket` class allows you to send and receive UDP packets. UDP (User Datagram Protocol) is an easy-to-implement protocol for sending data. It is faster and simpler than TCP (only 8 bytes of header as opposed to at least 20 bytes in TCP), but it does not offer the same level of reliability. It is useful for applications where data must arrive at their destination quickly. However, it does not allow verification of delivery, nor does it allow error-checking or recovery of data that was not delivered correctly. +La clase `UDPSocket` permite enviar y recibir paquetes UDP. UDP (User Datagram Protocol) es un protocolo de fácil implementación para el envío de datos. Es más rápido y sencillo que TCP (sólo 8 bytes de encabezado frente a los al menos 20 bytes en TCP), pero no ofrece el mismo nivel de fiabilidad. Es útil para aplicaciones en las que los datos deben llegar rápidamente a su destino. Sin embargo, no permite verificar la entrega, ni comprobar errores o recuperar datos que no se hayan entregado correctamente. -The `UDPSocket` class is available from the `4D` class store. You can create a UDP connection using the [4D.UDPSocket.new()](#4dudpsocketnew) function, which returns a [UDPSocket object](#udpsocket-object). +La clase `UDPSocket` está disponible en el class store `4D`. Puede crear una conexión UDP utilizando la función [4D.UDPSocket.new()](#4dudpsocketnew), que devuelve un [objeto UDPSocket](#udpsocket-object). -Thanks to the standard 4D object *refcounting*, a UDPSocket is automatically released when it is no longer referenced, i.e. when no more references to them exist in memory. Esto ocurre típicamente, por ejemplo, al final de una ejecución de un método para variables locales. Consequently, the associated resources are properly cleaned up without requiring explicit closure. However, if you want to "force" the closure of a socket at any moment, [**nullify** its references by setting them to **Null**](../Concepts/dt_object.md#resources). +Gracias al *refcounting* de los objetos 4D estándar, un socket UDPSocket se libera automáticamente cuando deja de estar referenciado, es decir, cuando no existen más referencias a ellos en memoria. Esto ocurre típicamente, por ejemplo, al final de una ejecución de un método para variables locales. En consecuencia, los recursos asociados se limpian adecuadamente sin necesidad de un cierre explícito. Sin embargo, si quieres "forzar" el cierre de un socket en cualquier momento, [**nulifica** sus referencias poniéndolas **Null**](../Concepts/dt_object.md#resources). :::info 4DTCPUDPLog.txt file -For debugging and monitoring, you can use the [4DTCPUDPLog.txt log file](../Debugging/debugLogFiles.md#4dtcpudplogtxt) that records events related to UDP sockets. Los eventos incluyen transmisión de datos, errores e información del ciclo de vida de la conexión. +Para depuración y monitorización, puede utilizar el fichero de registro [4DTCPUDPLog.txt](../Debugging/debugLogFiles.md#4dtcpudplogtxt) que registra los eventos relacionados con los sockets UDP. Los eventos incluyen transmisión de datos, errores e información del ciclo de vida de la conexión. ::: @@ -29,7 +29,7 @@ For debugging and monitoring, you can use the [4DTCPUDPLog.txt log file](../Debu Un objeto UDPSocket no es modificable y no es streamable. -UDPSocket objects provide the following properties and functions: +Los objetos UDPSocket ofrecen las siguientes propiedades y funciones: | | | --------------------------------------------------------------------------------------------------- | @@ -45,21 +45,21 @@ UDPSocket objects provide the following properties and functions: -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | --------------------------- | ---------------------------------------------------------------------------------------------- | -| port | Integer | -> | Local port used for UDP socket (0 or omitted = find any unused port to use) | -| options | Object | -> | Configuration [options](#options-parameter) for the socket | -| Resultado | UDPSocket | <- | Nuevo objeto UDPSocket | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| port | Integer | -> | Puerto local utilizado para el socket UDP (0 u omitido = buscar cualquier puerto no utilizado para utilizar) | +| options | Object | -> | Configuración [opciones](#options-parameter) para el socket | +| Resultado | UDPSocket | <- | Nuevo objeto UDPSocket | #### Descripción -The `4D.UDPSocket.new()` function creates a new UDP socket using the defined *options* (if any) on the specified *port* (if any) or on a random unused port, and returns a `4D.UDPSocket` object. +La función `4D.UDPSocket.new()` crea un nuevo socket UDP utilizando las *options* definidas (si las hay) en el *port* especificado (si lo hay) o en un puerto aleatorio no utilizado, y devuelve un objeto `4D.UDPSocket`. #### Parámetro *options* -In the *options* parameter, you can pass an object that contains the following properties: +En el parámetro *options*, puede pasar un objeto que contenga las siguientes propiedades: | Propiedad | Tipo | Descripción | Por defecto | | ----------- | ------- | ------------------------------------------------ | ----------- | @@ -80,11 +80,11 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onData` se activa cada vez que se reciben datos. 2. `onError` se activa si se produce un error. -3. `onTerminate` is always triggered just before the port is released (socket is closed or an error occured). +3. `onTerminate` siempre se activa justo antes de que el puerto se libere (el socket se cierra o se produce un error). #### Objeto UDPEvent -A [`UDPEvent`](UDPEventClass.md) object is returned when a [callback function](#callback-functions) is called. +Un objeto [`UDPEvent`](UDPEventClass.md) es devuelto cuando se llama una [función de retrollamada](#callback-functions). @@ -96,7 +96,7 @@ A [`UDPEvent`](UDPEventClass.md) object is returned when a [callback function](# #### Descripción -The `.errors` property contains a collection of error objects associated with the socket. Cada objeto de error incluye el código de error, una descripción y la firma del componente que causó el error. +La propiedad `.errors` contiene una colección de objetos de error asociados al socket. Cada objeto de error incluye el código de error, una descripción y la firma del componente que causó el error. | Propiedad | | Tipo | Descripción | | --------- | ----------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------- | @@ -115,7 +115,7 @@ The `.errors` property contains a collecti #### Descripción -The `.port` property contains the port number to listen to. Esta propiedad es de **solo lectura**. +La propiedad `.port` contiene el número de puerto a escuchar. Esta propiedad es de **solo lectura**. @@ -137,11 +137,11 @@ The `.port` property contains the port numbe #### Descripción -The `send()` function sends *data* to the remote *hostName* server on the specified *remotePort*. +La función `send()` envía *data* al servidor remoto *hostName* en el *remotePort* especificado. -*hostName* is the name or IP address of the server where the data will be sent. +*hostName* es el nombre o la dirección IP del servidor al que se enviarán los datos. -*remotePort* is the number of the port to be connected to. Si pasa 0, se utilizará cualquier puerto disponible. +*remotePort* es el número del puerto al que hay que conectarse. Si pasa 0, se utilizará cualquier puerto disponible. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md index 3dd5e6b5ed6273..b5b048c933db40 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md @@ -3,15 +3,15 @@ id: labels title: Etiquetas --- -4D’s Label editor provides a convenient way to print a wide variety of labels. Con ella, puede hacer lo siguiente: +El editor de etiquetas de 4D ofrece una forma práctica de imprimir una amplia variedad de etiquetas. Con ella, puede hacer lo siguiente: -- Design labels for mailings, file folders and file cards, and for many other needs, -- Create and insert decorative items in label templates, -- Specify the font, font size, and style to be used for the labels, -- Specify the number of labels across and down on each page, +- Diseñe etiquetas para envíos postales, carpetas y fichas de archivo, y para muchas otras necesidades, +- crear e insertar elementos decorativos en un modelo de etiquetas, +- definir la fuente, el tamaño y el estilo de la fuente a utilizar para las etiquetas, +- determinar el número de etiquetas a lo largo y a lo ancho de cada página, - Especifique cuántas etiquetas imprimir por registro, - Especifique los márgenes de la página de etiquetas, -- Designate a method to execute when printing each label or record, +- designar un método a ejecutar al imprimir cada etiqueta o registro, - Crea una vista previa e imprime las etiquetas. :::note @@ -20,49 +20,49 @@ Las etiquetas también se pueden crear usando el [Editor de formularios](../Form ::: -You use the Label editor to create, format, and print labels. The Label editor contains settings for designing labels and positioning the labels on label paper. For example, when producing mailing labels, you might want a label design that includes the person’s first and last name on the first line, the street address on the second line, and so on. As part of the design, the Label editor enables you to specify the number of labels on the page and the margins of the label paper so that the label text is centered within the labels. -When you create a satisfactory label design, you can save it to disk so that you can reuse it. +El editor de etiquetas permite crear, formatear e imprimir las etiquetas. El editor de etiquetas contiene los parámetros para diseñar etiquetas y colocarlas en el papel de etiquetas. Por ejemplo, al producir etiquetas de correo, es posible que desee un diseño de etiqueta que incluya el nombre y apellidos de la persona en la primera línea, la dirección postal en la segunda línea, etc. Como parte del diseño, el editor de etiquetas le permite especificar el número de etiquetas de la página y los márgenes del papel de etiquetas para que el texto de las etiquetas quede centrado dentro de las mismas. +Cuando crea un diseño de etiqueta satisfactorio, puede guardarlo en disco para poder reutilizarlo. Para abrir el editor de etiquetas: -- In the Design environment, choose **Labels...** from the **Tools** menu or from the menu associated with the "Tools" button in the 4D tool bar. +- En el entorno Diseño, elija **Etiquetas...** en el menú **Herramientas** o en el menú asociado al botón "Herramientas" en la barra de herramientas de 4D. O - En una aplicación, llame al comando [`PRINT LABEL`](../commands-legacy/print-label.md). ![](../assets/en/Desktop/label-wizard.png) -You use the Label page to specify the contents of the label and the Layout page to define the size and position of the labels on the page. +Utilice la página Etiqueta para especificar el contenido de la etiqueta y la página Diseño para definir el tamaño y la posición de las etiquetas en la página. ![](../assets/en/Desktop/label-buttons.png) ## Página Etiqueta -The Label page contains several areas with settings for designing and formatting labels. +La página Etiqueta contiene varias áreas con opciones para diseñar y dar formato a las etiquetas. ### Lista de campos -Displays the names of the fields in the current table in a hierarchical list. If this table is related to other tables, the foreign key fields have a plus sign (on Windows) or an arrow (on macOS). You can display fields from the related table by expanding the related fields. Los campos de la tabla relacionada están indentados. To use a field from this list in the label template, you just drag it onto the label preview area to the right of the list. +Muestra los nombres de los campos de la tabla actual en una lista jerárquica. Si esta tabla está relacionada con otras tablas, los campos de clave externa tienen un signo más (en Windows) o una flecha (en macOS). Puede visualizar los campos de la tabla relacionada expandiendo los campos relacionados. Los campos de la tabla relacionada están indentados. Para utilizar un campo de esta lista en la plantilla de etiquetas, basta con arrastrarlo a la zona de vista previa de etiquetas situada a la derecha de la lista. :::note Notas -- Only tables and fields which are visible appear in the Label editor. -- [Object type](../Concepts/dt_object.md) fields are not supported by the Label editor. +- Sólo las tablas y los campos visibles aparecen en el editor de etiquetas. +- Los campos de [tipo Objeto](../Concepts/dt_object.md) no son compatibles con el editor de etiquetas. ::: -The search area allows you to narrow the list of fields displayed to those containing the entered string: +El área de búsqueda le permite limitar la lista de campos mostrados a aquellos que contengan la cadena de caracteres introducida: ![](../assets/en/Desktop/label-filter.png) ### Vista previa de etiqueta -You use this area to design your label zone by placing and positioning all the items that you want to include in your label. El rectángulo blanco representa una sola etiqueta (su tamaño se configura en la página [Diseño](#layout-page)). +Utilice esta área para diseñar su zona de etiquetas colocando y posicionando todos los elementos que desee incluir en su etiqueta. El rectángulo blanco representa una sola etiqueta (su tamaño se configura en la página [Diseño](#layout-page)). - Puede arrastrar los campos a la etiqueta. -- You can also concatenate two fields by dropping the second field onto the first one. Se separan automáticamente con un espacio.
    +- También puede concatenar dos campos soltando el segundo campo sobre el primero. Se separan automáticamente con un espacio.
    ![](../assets/en/Desktop/label-concat.png)
    - If you hold down the **Shift** key, they are separated by a carriage return. This lets you create, for example, address labels using several overlapping fields (Address1, Address2, etc.), without producing a blank row when an address requires only one field. -- You can add a formula onto the label by selecting the **Formula** tool ![](../assets/en/Desktop/label-tool6.png) (or choosing **Tool>Formula** in the contextual menu) and drawing an area. The **Formula editor** is then displayed: + Si mantiene presionada la tecla **Mayús**, se separan con un retorno de carro. Esto le permite crear, por ejemplo, etiquetas de direcciones utilizando varios campos superpuestos (Dirección1, Dirección2, etc.), sin producir una línea vacía cuando una dirección sólo requiere un campo. +- Puede añadir una fórmula a la etiqueta seleccionando la herramienta **Fórmula** ![](../assets/en/Desktop/label-tool6.png) (o eligiendo **Herramienta>Fórmula** en el menú contextual) y dibujando un área. The **Formula editor** is then displayed: ![](../assets/en/Desktop/label-formula1.png)
    For example, you can apply a format to a field using the [`String`](../commands-legacy/string.md) command:
    @@ -70,60 +70,60 @@ You use this area to design your label zone by placing and positioning all the i :::note -Keep in mind that you can only enter methods that are "allowed" for the database in the Formula editor. Los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y del comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md). +Tenga en cuenta que sólo puede introducir métodos "permitidos" para la base de datos en el Editor de fórmulas. Los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y del comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md). ::: -- You can drag and drop picture files as well as label files (".4lbp" files) from the desktop of the OS. +- Puedes arrastrar y soltar archivos imagen, así como archivos de etiquetas (archivos ".4lbp") desde el escritorio del sistema operativo. -- To modify the area, double-click on the contents in order to switch to editing mode. When you double-click on fields or formulas, the **Formula editor** is displayed, allowing you to remove or modify items: +- Para modificar el área, haga doble clic en el contenido para pasar al modo edición. Al hacer doble clic en campos o fórmulas, aparece el **Editor de fórmulas**, que permite eliminar o modificar elementos: ![](../assets/en/Desktop/label-formula.png) ### Formulario a utilizar -This drop-down list allows you to define a table form as a label template. The form chosen must be specially adapted to the creation of labels. -En este caso, el editor de etiquetas está parcialmente deshabilitado: sólo las funciones de la [página de diseño](#layout-page) pueden ser usadas — para permitirte configurar la página basada en el formulario. The image of the form selected is displayed in the label preview area. -When you use a form, 4D executes any form or object methods associated with it. Al usar esta opción, también puede designar un método proyecto para ejecutar para cada registro o etiqueta y luego asignar variables (ver [este ejemplo](#printing-labels-using-forms-and-methods-example) más abajo). If you want to create your labels using the editor itself, you need to choose the **No Form** option. +Esta lista desplegable permite definir un formulario tabla como modelo de etiqueta. El formulario elegido debe estar especialmente adaptado a la creación de etiquetas. +En este caso, el editor de etiquetas está parcialmente deshabilitado: sólo las funciones de la [página de diseño](#layout-page) pueden ser usadas — para permitirte configurar la página basada en el formulario. La imagen del formulario seleccionado se muestra en el área de previsualización de etiquetas. +Cuando se utiliza un formulario, 4D ejecuta cualquier método de formulario u objeto asociado a él. Al usar esta opción, también puede designar un método proyecto para ejecutar para cada registro o etiqueta y luego asignar variables (ver [este ejemplo](#printing-labels-using-forms-and-methods-example) más abajo). Si desea crear sus etiquetas utilizando el propio editor, deberá elegir la opción **Sin formulario**. :::note Notas - Puede restringir los formularios listados que aparecen en este menú mediante un [archivo JSON específico](#controlling-available-forms-and-methods). -- If the database does not contain any table forms, this menu is not displayed. +- Si la base no contiene ningún formulario tabla, este menú no se muestra. ::: ### Comandos del área gráfica -The graphic area of the editor includes both a tool bar and a context menu that you can use to design your label template. +El área gráfica del editor incluye tanto una barra de herramientas como un menú contextual que puede utilizar para diseñar su plantilla de etiquetas. -The left-hand side of the tool bar includes commands for selecting and inserting objects. You can also access these tools by means of the **Tool>** command in the area's context menu. +La parte izquierda de la barra de herramientas incluye comandos para seleccionar e insertar objetos. También puede acceder a estas herramientas mediante el comando **Herramienta>** del menú contextual del área. -| Icono | Nombre de la herramienta | Descripción | -| ----------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ![](../assets/en/Desktop/label-tool1.png) | Selección | Click on a single object or draw a selection box around several objects. For a selection of non-adjacent objects, hold down **Shift** and click on each object you want to select. | -| ![](../assets/en/Desktop/label-tool2.png) | Creación de línea | | -| ![](../assets/en/Desktop/label-tool3.png) | Creación rectangular | Para creación de rectángulo o rectángulo redondeado. | -| ![](../assets/en/Desktop/label-tool4.png) | Creación de círculo | | -| ![](../assets/en/Desktop/label-tool5.png) | Inserción de texto | Dibuja un rectángulo e introduce texto en su interior. You can edit any text area, including those containing field references, by double-clicking it. | -| ![](../assets/en/Desktop/label-tool6.png) | Inserción de fórmula | Draw a rectangle to display the **Formula editor**, where you can define dynamic label contents (fields and formulas). | +| Icono | Nombre de la herramienta | Descripción | +| ----------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool1.png) | Selección | Haga clic en un solo objeto o dibuje un cuadro de selección alrededor de varios objetos. Para una selección de objetos no adyacentes, mantenga presionada **Mayús** y haga clic en cada objeto que desee seleccionar. | +| ![](../assets/en/Desktop/label-tool2.png) | Creación de línea | | +| ![](../assets/en/Desktop/label-tool3.png) | Creación rectangular | Para creación de rectángulo o rectángulo redondeado. | +| ![](../assets/en/Desktop/label-tool4.png) | Creación de círculo | | +| ![](../assets/en/Desktop/label-tool5.png) | Inserción de texto | Dibuja un rectángulo e introduce texto en su interior. Puede editar toda área de texto, incluidas las que contienen referencias a campos, haciendo doble clic en ellas. | +| ![](../assets/en/Desktop/label-tool6.png) | Inserción de fórmula | Dibuje un rectángulo para mostrar el **Editor de fórmulas**, donde puede definir el contenido dinámico de las etiquetas (campos y fórmulas). | -There are shortcuts available to move or resize objects more precisely using the keyboard arrow keys: +Hay atajos disponibles para mover o redimensionar objetos con mayor precisión utilizando las teclas de flecha del teclado: -- Keyboard arrow keys move the selection of objects 1 pixel at a time. -- **Shift** + arrow keys move the selection of objects 10 pixels at a time. -- **Ctrl** + arrow keys enlarge or reduce the selection of objects by 1 pixel. -- **Ctrl** + **Maj** + arrow keys enlarge or reduce the selection of objects by 10 pixels. +- Las teclas de flecha del teclado mueven la selección de objetos de 1 píxel a la vez. +- **Mayús** + teclas de flecha mueven la selección de objetos 10 píxeles a la vez. +- **Ctrl** + teclas de flecha agrandan o reducen la selección de objetos en 1 píxel. +- **Ctrl** + **Maj** + teclas de flecha amplían o reducen la selección de objetos en 10 píxeles. -The right-hand side of the tool bar contains commands used to modify items of the label template: +El lado derecho de la barra de herramientas contiene comandos utilizados para modificar elementos de la plantilla de etiqueta: -| Icono | Nombre de la herramienta | Descripción | -| ------------------------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/Desktop/label-tool7.png) | Color de relleno | todos los iconos de color muestran el color seleccionado | -| ![](../assets/en/Desktop/label-tool8.png) | Color de línea | | -| ![](../assets/en/Desktop/label-tool9.png) | Peso lineal | | -| ![](../assets/en/Desktop/label-tool10.png) | Menú Fuente | Sets the font and its size, as well as the text style, color and alignment for the block(s) of selected text. | -| ![](../assets/en/Desktop/label-tool11.png) | Alineación y distribución | Two or more objects must be selected for the alignment options to be available. "Distributing" objects means automatically setting the horizontal or vertical intervals between at least three objects, so that they are identical. The resulting interval is an average of all those existing in the selection. | -| ![](../assets/en/Desktop/label-tool12.png) | Nivel de los objetos | Moves objects to the front or back, or moves one or more objects up or down one level. | +| Icono | Nombre de la herramienta | Descripción | +| ------------------------------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool7.png) | Color de relleno | todos los iconos de color muestran el color seleccionado | +| ![](../assets/en/Desktop/label-tool8.png) | Color de línea | | +| ![](../assets/en/Desktop/label-tool9.png) | Peso lineal | | +| ![](../assets/en/Desktop/label-tool10.png) | Menú Fuente | Define la fuente y su tamaño, así como el estilo, el color y la alineación del texto para los bloques de texto seleccionados. | +| ![](../assets/en/Desktop/label-tool11.png) | Alineación y distribución | Deben seleccionarse dos o más objetos para que las opciones de alineación estén disponibles. "Repartir" objetos significa definir automáticamente los intervalos horizontales o verticales entre al menos tres objetos, de modo que sean idénticos. El intervalo resultante es una media de todos los existentes en la selección. | +| ![](../assets/en/Desktop/label-tool12.png) | Nivel de los objetos | Mueve los objetos a la parte frontal o atrás, o mueve uno o más objetos hacia arriba o hacia abajo de un nivel. | ## Página Diseño @@ -199,7 +199,7 @@ The Label editor includes an advanced feature allowing you to restrict which pro - en el menú **Aplicar (método)** de la página "Diseño". 1. Crea un archivo JSON llamado **labels.json** y ponlo en la [carpeta de recursos](../Project/architecture.md#resources) del proyecto. -2. In this file, add the names of forms and/or project methods that you want to be able to select in the Label editor menus. +2. En este archivo, añada los nombres de los formularios y/o métodos proyecto que desea poder seleccionar en los menús del editor de etiquetas. El contenido del archivo **labels.json** debe ser similar a: @@ -214,34 +214,34 @@ Si no se ha definido ningún archivo **labels.json** entonces no se aplica ning ## Gestión de archivos de etiquetas -4D allows you to save each label design in a file that you can open subsequently from within the wizard. By saving your label designs, you can build a label library adapted to your specific needs. Each label design stores the settings defined on the Label and Layout pages. +4D le permite guardar cada modelo de etiquetas en un archivo que podrá abrir posteriormente desde el asistente. Si guarda sus diseños de etiquetas, podrá crear una biblioteca de etiquetas adaptada a sus necesidades específicas. Cada diseño de etiqueta almacena los ajustes definidos en las páginas Etiqueta y Diseño. -You can drag and drop label files from your desktop onto the label design area. +Puede arrastrar y soltar archivos de etiquetas desde el escritorio al área de diseño de etiquetas. -Label designs are managed using the **Load** and **Save** buttons of the tool bar. +Los diseños de etiquetas se gestionan mediante los botones **Cargar** y **Guardar** de la barra de herramientas. -- To load a label design, click on the **Load** button and designate the design you want to load by means of the File Open dialog box (if a label design is already present in the wizard, 4D replaces it by the one you have loaded). -- To save a label design, click on the **Save** button and indicate the name and location of the design to be created. +- Para cargar un diseño de etiqueta, haga clic en el botón **Cargar** y designe el diseño que desea cargar mediante el cuadro de diálogo Abrir archivo (si ya existe un diseño de etiqueta en el asistente, 4D lo sustituye por el que ha cargado). +- Para guardar un diseño de etiqueta, haga clic en el botón **Guardar** e indique el nombre y la ubicación del diseño que desea crear. ### Formato del archivo -The file extension of 4D labels saved by the wizard is ".4lbp". Note that this format is open since it is written internally in XML. +La extensión de archivo de las etiquetas 4D guardadas por el asistente es ".4lbp". Tenga en cuenta que este formato es abierto, ya que está escrito internamente en XML. ### Precargando archivos de etiqueta -The Label Wizard allows you to store label files within your application, so that label designs can be selected and opened by the user directly using the **Load** button. +El editor de etiquetas le permite almacenar archivos de etiquetas dentro de su aplicación, de forma que los diseños de etiquetas puedan ser seleccionados y abiertos por el usuario directamente mediante el botón **Cargar**. -To do this, you just need to create a folder named `Labels` within the [Resources folder](../Project/architecture.md#resources) of the project and then copy your label files into it: +Para ello, basta con crear una carpeta llamada `Labels` en la [carpeta Resources](../Project/architecture.md#resources) del proyecto y copiar en ella los archivos de etiquetas: ![](../assets/en/Desktop/label-resources.png) :::note -Both standard ".4lbp" files and files generated by the former wizard (".4lb") files are supported. +Se admiten tanto los archivos ".4lbp" estándar como los generados por el asistente anterior (".4lb"). ::: -When the Label Wizard starts, if this folder is detected and contains valid label files, a pop-up icon is added to the **Load** button. Los modelos de etiquetas pueden seleccionarse a través de una línea de menú: +Cuando se inicia el Asistente de etiquetas, si se detecta esta carpeta y contiene archivos de etiquetas válidos, se añade un icono emergente al botón **Cargar**. Los modelos de etiquetas pueden seleccionarse a través de una línea de menú: ![](../assets/en/Desktop/label-resources2.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md index bd82afed314c37..a8a8b3966b7eb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md @@ -98,7 +98,7 @@ En el caso de un list box basado en la selección actual de una tabla, cualquier En este tipo de list box, cada columna debe estar asociada a una expresión. El contenido de cada línea se evalúa entonces por elemento de la colección o por entidad de la selección de entidades. -Cada elemento de la colección o cada entidad está disponible como un objeto al que se puede acceder a través de la palabra clave [This](../Concepts/classes.md#this). A column expression can be a property path, a project method, a variable, or any formula, accessing each entity or collection element object through `This`, for example `This.` (or `This.value` in case of a collection of scalar values). La expresión también puede ser un método proyecto, una variable o un elemento de array. +Cada elemento de la colección o cada entidad está disponible como un objeto al que se puede acceder a través de la palabra clave [This](../Concepts/classes.md#this). A column expression can be a property path, a project method, a variable, or any formula, accessing each entity or collection element object through `This`, for example `This.` (o `This.value` en caso de una colección de valores escalares). La expresión también puede ser un método proyecto, una variable o un elemento de array. Cuando la fuente de datos es una entity selection, cualquier modificación realizada del lado del list box se guarda automáticamente en la base de datos. Por otro lado, las modificaciones realizadas en la base de datos son visibles en el list box después de que se hayan recargado las entidades modificadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index f2161a9b6071d0..91cd60a940396c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### Ejemplo 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. Por ejemplo: +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. Por ejemplo: ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/date-time-formats.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/date-time-formats.md index f7f12a59c0290f..79031da5a4075f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/date-time-formats.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/date-time-formats.md @@ -94,7 +94,7 @@ La siguiente tabla muestra todos los patrones soportados para formatos de fecha | | Zona horaria: ISO8601 hm básico, sin Z | xx | -0800, +0000 | | | Zona horaria: ISO8601 hm extendido, sin Z | xxx | -08:00 | | | Zona horaria: ISO8601 hms básico, sin Z | xxxx | -0800, -075258 | -| | Time Zone: ISO8601 extended hms?, without Z | xxxxx | -08:00, -07:52:58 | +| | Time Zone: ISO8601 extended hms?, sin Z | xxxxx | -08:00, -07:52:58 | | O | Zona horaria: GMT localizada abreviada | O | GMT-8 | | | Zona horaria: localización larga GMT (=ZZZZ) | OOOO | GMT-08:00 | | z | Zona horaria: no específica | z, zz, o zzz | -0800 | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 0f995b94fe34c5..b706baf744010a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -3,7 +3,7 @@ id: http-request-handler title: HTTP Request handler --- -By default, HTTP requests received by the 4D web server are handled through [built-in processing features](httpRequests.md) or the [REST server](../REST/REST_requests.md). +Por defecto, las peticiones HTTP recibidas por el servidor web 4D se gestionan a través de [funciones de procesamiento integradas](httpRequests.md) o del [servidor REST](../REST/REST_requests.md). In addition, 4D supports the implementation of **custom HTTP Request handlers**, allowing you to intercept specific incoming HTTP requests and process them using your own code. @@ -36,7 +36,7 @@ This file contains all listened URL patterns, the handled verbs, and the code to At runtime, the first pattern matching the URL is executed, the others are ignored. -Here is an example of a *HTTPHandlers.json* file contents: +Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: ```json @@ -155,50 +155,50 @@ El verbo HTTP también puede ser evaluado [utilizando la propiedad `.verb` dentr ## Ejemplo -Here is a detailed example of a HTTPHandlers.json file: +He aquí un ejemplo detallado de un archivo HTTPHandlers.json: ```json [ { - "class": "GeneralHandling", + "clase": "GeneralHandling", "method": "handle", - "pattern": "info", //URL prefix + "pattern": "info", //prefijo URL "verbs": "GET" }, { "class": "UsersHandling", "method": "manageAccount", - "pattern": "userAccount/update", //URL prefix + "pattern": "userAccount/update", //prefijo URL "verbs": "PUT,POST" }, { "class": "FinancialHandling", "method": "handleInvoices", - "regexPattern": "/docs/invoices/(past|today)", //URL prefix given as a regex + "regexPattern": "/docs/invoices/(past|today)", //prefijo de URL dado como regex "verbs": "GET" }, { "class": "DocsHandling", "method": "handleDocs", - "regexPattern": "/docs/myPage.html", //URL prefix given as a regex + "regexPattern": "/docs/myPage.html", //prefijo de URL dado como regex "verbs": "GET" }, { "class": "InvoicesHandling", "method": "handleTheInvoice", - "pattern": "docs/invoices/details/theInvoice", // The most specific URL first + "pattern": "docs/invoices/details/theInvoice", // La URL más específica primero "verbs": "GET,POST" }, { "class": "InvoicesHandling", "method": "handleDetails", - "pattern": "docs/invoices/details", // The general URLs after + "pattern": "docs/invoices/details", // Las URL generales después de "verbs": "GET" }, { "class": "InvoicesHandling", - "method": "handleInvoices", // The general URLs after + "method": "handleInvoices", // Las URL generales después de "pattern": "docs/invoices", "verbs": "GET" } @@ -212,24 +212,24 @@ En este ejemplo, debe implementar las siguientes funciones: - *manageAccount* en la clase *UsersHandling* - *handleInvoices* en la clase *FinancialHandling* - *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* in the *InvoicesHandling* class +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: -`IP:port/info/` with a GET verb -`IP:port/info/general` with a GET verb +`IP:port/info/` con un verbo GET +`IP:port/info/general` con un verbo GET -`IP:port/userAccount/update/` with a POST verb -`IP:port/userAccount/update/profile` with a POST verb +`IP:port/userAccount/update/` con un verbo POST +`IP:port/userAccount/update/profile` con un verbo POST -`IP:port/docs/invoices/past` with a GET verb -`IP:port/docs/invoices/today/latest` with a GET verb +`IP:port/docs/invoices/past` con un verbo GET +`IP:port/docs/invoices/today/latest` con un verbo GET `IP:port//docs/myPage.html` con un verbo GET -`IP:port//docs/invoices/` with a GET verb, calls *handleInvoices* function (*InvoicesHandling* class) -`IP:port//docs/invoices/details/` with a GET verb, calls *handleDetails* function (*InvoicesHandling* class) -`IP:port//docs/invoices/details/theInvoice/xxxxxx` with a GET verb, calls *handleTheInvoice* function (*InvoiceslHandling* class) +`IP:port//docs/invoices/` con un verbo GET, llama a la función *handleInvoices* (clase *InvoicesHandling*) +`IP:port//docs/invoices/details/` con un verbo GET, llama a la función *handleDetails* (clase *InvoicesHandling*) +`IP:port//docs/invoices/details/theInvoice/xxxxxx` con un verbo GET, llama a la función *handleTheInvoice* (clase *InvoiceslHandling*) ## Código del gestor de peticiones @@ -243,7 +243,7 @@ Request handler functions are not necessarily shared, unless some request handle :::note -It is **not recommended** to expose request handler functions to external REST calls using [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) or [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keywords. +**no es recomendado** exponer las funciones del gestor de solicitudes a llamadas REST externas usando las palabras claves [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) o [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-formula.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-formula.md index dd2bdc67ff1bdb..aabd860a7a9bec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-formula.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-formula.md @@ -8,13 +8,13 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ----------- | ------ | --------------------------- | ----------------------------------------------------------------- | -| targetObj | Object | → | Rango o elemento o documento 4D Write Pro | -| formula | Object | → | Objeto de fórmula U Objeto con propiedades de fórmula y de nombre | -| mode | Number | → | Modo de inserción | -| rangeUpdate | Number | → | Includes or excludes the inserted content within the range | -| Resultado | Object | ← | Text range object reprsenting the result of the formula | +| Parámetros | Tipo | | Descripción | +| ----------- | ------ | --------------------------- | ------------------------------------------------------------------ | +| targetObj | Object | → | Rango o elemento o documento 4D Write Pro | +| formula | Object | → | Objeto de fórmula U Objeto con propiedades de fórmula y de nombre | +| mode | Number | → | Modo de inserción | +| rangeUpdate | Number | → | Incluye o excluye el contenido insertado dentro del intervalo | +| Resultado | Object | ← | Objeto de rango de texto que representa el resultado de la fórmula | @@ -25,7 +25,7 @@ El comando **WP Insert formula** En el parámetro *targetObj*, puede pasar: - un rango, o -- an element (table / row / cell(s) / paragraph / body / header / footer / section / subsection / inline picture), or +- un elemento (tabla / línea / celda(s) / párrafo / cuerpo / encabezado / pie / sección / subsección / imagen en línea), o bien - un documento 4D Write Pro. En el parámetro *formula*, pase la fórmula 4D a evaluar. Puede pasar: @@ -33,14 +33,14 @@ En el parámetro *formula*, pase la fórmula 4D a evaluar. Puede pasar: - o un [objeto de la fórmula](../../commands/formula.md-objects) creado por el comando [**Formula**](../../commands/formula.md) o [**Formula from string**](../../commands/formula.md-from-string), - o un objeto que contiene dos propiedades: -| **Propiedad** | **Tipo** | **Description** | -| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | Nombre que se mostrará para la fórmula en el documento | -| formula | Object | The [formula object](../../commands/formula.md-objects) created by the [**Formula**](../../commands/formula.md) or [**Formula from string**](../../commands/formula.md-from-string) command | +| **Propiedad** | **Tipo** | **Description** | +| ------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | Text | Nombre que se mostrará para la fórmula en el documento | +| formula | Object | El [objeto de la fórmula](../../commands/formula.md-objects) creado por el comando [**Formula**](../../commands/formula.md) o [**Formula from string**](../../commands/formula.md-from-string), | -When you use an object with a formula *name*, this name is displayed in the document instead of the formula reference when formulas are displayed as reference, and in the formula tip when displayed as value or symbols. If the *name* property contains an empty string or is omitted, it is removed from the object and the formula is displayed by default. Para más información, vea la página [Gestión de formulas](../managing-formulas.md). +Cuando se utiliza un objeto con una fórmula *name*, este nombre se muestra en el documento en lugar de la referencia de fórmula cuando las fórmulas se muestran como referencia, y en el consejo de fórmula cuando se muestran como valor o símbolos. Si la propiedad *name* contiene una cadena vacía o se omite, se elimina del objeto y la fórmula se muestra por defecto. Para más información, vea la página [Gestión de formulas](../managing-formulas.md). -In the *mode* parameter, pass one of the following constants to indicate the insertion mode to be used: +En el parámetro *mode*, pase una de las siguientes constantes para indicar el modo de inserción que se va a utilizar: | Constante | Tipo | Valor | Comentario | | ---------- | ------- | ----- | ----------------------------------------------- | @@ -48,20 +48,20 @@ In the *mode* parameter, pass one of the following constants to indicate the ins | wk prepend | Integer | 1 | Insertar el contenido al principio del objetivo | | wk replace | Integer | 0 | Sustituir contenido de destino | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted *formula* is included in the resulting range: +- Si *targetObj* es un rango, puede utilizar el parámetro opcional *rangeUpdate* para pasar una de las siguientes constantes para especificar si la *formula* insertada se incluye o no en el rango resultante: | Constante | Tipo | Valor | Comentario | | --------------------- | ------- | ----- | ------------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Contenido insertado no incluido en el rango actualizado | | wk include in range | Integer | 0 | Contenido insertado incluido en el rango actualizado (por defecto) | -If you do not pass a *rangeUpdate* parameter, by default the inserted *formula* is included in the resulting range. +Si no pasa un parámetro *rangeUpdate*, por defecto la *formula* insertada se incluye en el rango resultante. - Si *targetObj* no es un rango, *rangeUpdate* se ignora. :::note -Keep in mind that, when called, the formula object is evaluated within the context of the database or component that created it. +Tenga en cuenta que, cuando se llama, el objeto fórmula se evalúa dentro del contexto de la base de datos o del componente que lo creó. ::: @@ -73,19 +73,19 @@ Para reemplazar todas las fórmulas de fecha actuales con cadenas formateadas: var $_formulas : Collection var $find;$newFormula : Object - // define the formula to find + // definir la fórmula a buscar $find:=Formula(Current date) - // define the replacement formula + // definir la fórmula de sustitución $newFormula:=Formula(String(Current date;System date long)) - // find all formulas in the document + // encontrar todas las fórmulas en el documento $_formulas:=WP Get formulas(WriteProArea) - // query the collection from WP Get formulas + // consultar la colección desde WP Get formulas $_formulas:=$_formulas.query("formula.source =:1";$find.source) - // then replace each formula + // luego reemplazar cada fórmula For each($formula;$_formulas) WP Insert formula($formula.range;$newFormula;wk replace) End for each @@ -93,19 +93,19 @@ Para reemplazar todas las fórmulas de fecha actuales con cadenas formateadas: ## Ejemplo 2 -You want to use a formula name for the customer name: +Desea utilizar un nombre de fórmula para el nombre del cliente: ```4d - //add some data + //añade algunos datos $data:=New object("customer";New object("lastname";"Smith";"firstname";"John")) WP SET DATA CONTEXT(WPArea;$data) - //create a formula object with a name + //crea un objeto fórmula con un nombre $o:=New object $o.formula:=Formula(This.data.customer.firstname+" "+This.data.customer.lastname) $o.name:="Customer name" - //inserts as text + //inserta como texto $range:=WP Text range(WPArea;wk start text;wk end text) WP SET TEXT($range;"Dear ";wk append) WP Insert formula($range;$o;wk append) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md index bd17d461c1e5b8..5201a0d503757f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md @@ -37,9 +37,9 @@ var $blob:=$image.asBlob() **asPicture**() : Picture -| Parámetros | Tipo | Descripción | -| ---------- | ------- | ----------------------------------------------------------------------- | -| Resultado | Picture | Creates a picture object from the blob converted image. | +| Parámetros | Tipo | Descripción | +| ---------- | ------- | ------------------------------------------------------------------------------- | +| Resultado | Picture | Crea un objeto imagen a partir de la imagen convertida en blob. | #### Ejemplo de Uso diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/dialog.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/dialog.md index 2fdfa8437e3346..d4c02d593644dd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/dialog.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/dialog.md @@ -8,12 +8,12 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ---------- | ------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| aTable | Tabla | → | Tabla propia del formulario o Si se omite: tabla por defecto o uso del formulario del proyecto | -| form | Text, Object | → | Name (string) of table or project form, or a POSIX path (string) to a .json file describing the form, or an object describing the form | -| formData | Object | → | Datos a asociar al formulario | -| \* | Operador | → | Usar el mismo proceso | +| Parámetros | Tipo | | Descripción | +| ---------- | ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| aTable | Tabla | → | Tabla propia del formulario o Si se omite: tabla por defecto o uso del formulario del proyecto | +| form | Text, Object | → | Nombre (string) de la tabla o formulario proyecto, o una ruta POSIX (string) a un archivo .json que describa el formulario, o un objeto que describa el formulario | +| formData | Object | → | Datos a asociar al formulario | +| \* | Operador | → | Usar el mismo proceso | @@ -21,80 +21,75 @@ displayed_sidebar: docs El comando **DIALOG** presenta el *formulario* al usuario, junto con (el) los parámetro(s) *formData* (opcional). -This command is designed to work with customized and advanced user interfaces based on forms. You can use it to display information coming from the database or other locations, or to provide data entry features. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. +Este comando está diseñado para trabajar con interfaces de usuario personalizadas y avanzadas basadas en formularios. Puede utilizarlo para mostrar información procedente de la base de datos o de otras ubicaciones, o para proporcionar funciones de entrada de datos. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. Este comando suele invocarse junto con el comando [Open form window](../commands-legacy/open-form-window.md) para mostrar formularios sofisticados, como se muestra en el siguiente ejemplo: ![](../assets/en/commands/pict3541609.en.png) -The **DIALOG** command can also be used instead of [ALERT](../commands-legacy/alert.md), [CONFIRM](../commands-legacy/confirm.md) or [Request](../commands-legacy/request.md) when the information to be presented or gathered is more complex than those commands can manage. +El comando **DIALOG** también puede utilizarse en lugar de [ALERT](../commands-legacy/alert.md), [CONFIRM](../commands-legacy/confirm.md) o [Request](../commands-legacy/request.md) cuando la información a presentar o recopilar es más compleja de lo que esos comandos pueden gestionar. En el parámetro *form*, puede pasar: - el nombre de un formulario (formulario proyecto o formulario tabla) a utilizar; -- the path (in POSIX syntax) to a valid .json file containing a description of the form to use; -- an object containing a description of the form to use. +- la ruta (en sintaxis POSIX) a un archivo .json válido que contenga una descripción del formulario a utilizar; +- un objeto que contiene la descripción del formulario a utilizar. -Opcionalmente, puede pasar uno o varios parámetros al *form* utilizando un objeto "form data". Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. For example, if you use a form data object containing {"version";"12"}, you will be able to get or set the value of the "version" property in the form by calling: +Opcionalmente, puede pasar uno o varios parámetros al *form* utilizando un objeto "form data". Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Por ejemplo, si utiliza un objeto de datos de formulario que contenga {"version"; "12"}, podrá obtener o definir el valor de la propiedad "version" en el formulario llamando a: ```4d $v:=Form.version //"12" Form.version:=13 ``` -To fill the "form data" object, you have two possibilities: +Para llenar el objeto "form data", tiene dos posibilidades: -- usar el parámetro *formData*. Using a local variable for *formData* allows you to safely pass parameters to your forms, whatever the calling context. In particular, if the same form is called from different places in the same process, you will always be able to access its specific values by simply calling [Form](form.md).myProperty. Moreover, since objects are passed by reference, if the user modifies a property value in the form, it will automatically be saved in the object itself. +- usar el parámetro *formData*. Usar una variable local para *formData* le permite pasar con seguridad parámetros a sus formularios, sea cual sea el contexto de llamada. En particular, si el mismo formulario se llama desde diferentes lugares en el mismo proceso, siempre podrá acceder a sus valores específicos simplemente llamando a [Form](form.md).myProperty. Además, como los objetos se pasan por referencia, si el usuario modifica el valor de una propiedad en el formulario, se guardará automáticamente en el propio objeto. - [asociar una clase usuario al formulario](../FormEditor/properties_FormProperties.md#form-class), en cuyo caso 4D instanciará automáticamente un objeto de esta clase cuando se cargará el formulario. Las propiedades y funciones del objeto estarán automáticamente disponibles a través del objeto devuelto por [Form](form.md). Puede escribir por ejemplo `Form.myFunction()`. :::note - El parámetro *formData* tiene prioridad sobre una clase de formulario (el objeto de clase no es instanciado si se pasa un parámetro *formData*). -- If you do not pass the *formData* parameter (or if you pass an undefined object) and no user class is associated to the form, **DIALOG** creates a new empty object bound to the *form*. +- Si no pasa el parámetro *formData* (o si pasa un objeto no definido) y no hay ninguna clase de usuario asociada al formulario, **DIALOG** crea un nuevo objeto vacío vinculado al *form*. ::: -The dialog is closed by the user either with an "accept" action (triggered by the ak accept standard action, the Enter key, or the [ACCEPT](../commands-legacy/accept.md) command), or with a "cancel" action (triggered by the ak cancel standard action, the Escape key, or the [CANCEL](../commands-legacy/cancel.md) command). An accept action will set the OK system variable to 1, while a cancel action will set OK to 0\. +El diálogo es cerrado por el usuario ya sea con una acción "aceptar" (activada por la acción estándar ak accept, la tecla Intro, o el comando [ACCEPT](../commands-legacy/accept.md)), o con una acción de "cancelar" (activada por la acción estándar ak cancel, la tecla Escape, o el comando [CANCEL](../commands-legacy/cancel.md)). Una acción de aceptación pondrá la variable sistema OK en 1, mientras que una acción de cancelación pondrá OK en 0\. Tenga en cuenta que la validación no es igual al guardado: si el diálogo incluye campos, debe llamar explícitamente al comando [SAVE RECORD](../commands-legacy/save-record.md) para guardar cualquier dato que haya sido modificado. -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. Si el proceso actual termina, los formularios creados de este modo se cierran automáticamente del mismo modo que si se hubiera llamado a un comando [CANCEL](../commands-legacy/cancel.md). This opening mode is particularly useful for displaying a floating palette with a document, without necessarily requiring another process. +Si se pasa el parámetro opcional *\**, el formulario se carga y se muestra en la última ventana abierta del proceso actual y el comando finaliza su ejecución dejando el formulario activo en la pantalla.\ +Este formulario reacciona entonces "normalmente" a las acciones del usuario y se cierra utilizando una acción estándar o cuando el código 4D relacionado con el formulario (método objeto o método formulario) llama al comando [CANCEL](../commands-legacy/cancel.md) o [ACCEPT](../commands-legacy/accept.md). Si el proceso actual termina, los formularios creados de este modo se cierran automáticamente del mismo modo que si se hubiera llamado a un comando [CANCEL](../commands-legacy/cancel.md). Este modo de apertura es especialmente útil para mostrar una paleta flotante con un documento, sin necesidad de otro proceso. **Notas:** - Puede combinar el uso de la sintaxis **DIALOG**(form;\*) con el comando [CALL FORM](../commands-legacy/call-form.md) para establecer la comunicación entre los formularios. -- You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. En caso contrario, se genera el error -9909. -- When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. +- Debe crear una ventana antes de llamar a la instrucción **DIALOG**(form;\*). No es posible utilizar la ventana de diálogo actual en el proceso ni la ventana creada por defecto para cada proceso. En caso contrario, se genera el error -9909. +- Cuando se utiliza el parámetro *\**, la ventana se cierra automáticamente tras una acción estándar o una llamada al comando [CANCEL](../commands-legacy/cancel.md) o [ACCEPT](../commands-legacy/accept.md). No tiene que gestionar el cierre de la propia ventana. ## Ejemplo 1 -The following example can be used to create a tool palette: +El siguiente ejemplo permite crear una paleta de herramientas: ```4d - //Display tool palette + //Mostrar paleta de herramientas $palette_window:=Open form window("tools";Palette form window) - DIALOG("tools";*) //Give back the control immediately - //Display main document windowl + DIALOG("tools";*) //Devolver el control inmediatamente + //Mostrar ventana de documento principall $document_window:=Open form window("doc";Plain form window) DIALOG("doc") ``` ## Ejemplo 2 -In a form displaying the record of a person, a "Check children" button opens a dialog to verify/modify the names and ages of their children: +En un formulario que muestra el registro de una persona, un botón "Check children" abre un cuadro de diálogo para verificar/modificar los nombres y edades de sus hijos: ![](../assets/en/commands/pict3542015.en.png) -**Note:** The "Children" object field is represented only to show its structure for this example. +**Nota:** el campo objeto "Children" se representa sólo para mostrar su estructura en este ejemplo. -In the verification form, you have assigned some [Form](form.md) object properties to variables: +En el formulario de verificación, ha asignado algunas propiedades del objeto [Form](form.md) a variables: ![](../assets/en/commands/pict3541682.en.png) @@ -104,21 +99,21 @@ Este es el código del botón "Check children": var $win;$n;$i : Integer var $save : Boolean ARRAY OBJECT($children;0) - OB GET ARRAY([Person]Children;"children";$children) //get the children collection - $save:=False //initialize the save variable + OB GET ARRAY([Person]Children; "children";$children) //obtener la colección children + $save:=False //inicializar la variable save - $n:=Size of array($children) + $n:=Tamaño del array($children) If($n>0) $win:=Open form window("Edit_Children";Movable form dialog box) SET WINDOW TITLE("Check children for "+[Person]Name) - For($i;1;$n) //for each child - DIALOG("Edit_Children";$children{$i}) //displays dialog filled with values - If(OK=1) //the user clicked OK + For($i;1;$n) //para cada hijo + DIALOG("Edit_Children";$children{$i}) //muestra el diálogo lleno de valores + If(OK=1) //el usuario ha pulsado OK $save:=True End if End for If($save=True) - [Person]Children:=[Person]Children //forces object field update + [Person]Children:=[Person]Children //forza la actualización del campo objeto End if CLOSE WINDOW($win) Else @@ -130,7 +125,7 @@ El formulario muestra información sobre cada niño: ![](../assets/en/commands/pict3515152.en.png) -If values are edited and the OK button is clicked, the field is updated (the parent record must be saved afterwards). +Si se editan los valores y se presiona el botón OK, se actualiza el campo (después hay que guardar el registro principal). ## Ejemplo 3 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-load.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-load.md index 23cc6dde443840..b2246711fa01db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-load.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-load.md @@ -31,7 +31,7 @@ When the command is executed from a component, it loads the component forms by d ### formData -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). El objeto de datos del formulario está disponible en el [evento de formulario `On Load`](../Events/onLoad.md). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index e7c39ee751fe86..bbfb41c3e71cef 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -67,11 +67,11 @@ In the context of an input form displayed from an output form (i.e. after a doub ## Ejemplo -In a form displaying the record of a person, a "Check children" button opens a dialog to verify/modify the names and ages of their children: +En un formulario que muestra el registro de una persona, un botón "Check children" abre un cuadro de diálogo para verificar/modificar los nombres y edades de sus hijos: ![](../assets/en/commands/pict3542015.en.png) -**Note:** The "Children" object field is represented only to show its structure for this example. +**Nota:** el campo objeto "Children" se representa sólo para mostrar su estructura en este ejemplo. In the verification form, you have assigned some Form object properties to inputs: @@ -83,21 +83,21 @@ Este es el código del botón "Check children": var $win;$n;$i : Integer var $save : Boolean ARRAY OBJECT($children;0) - OB GET ARRAY([Person]Children;"children";$children) //get the children collection - $save:=False //initialize the save variable + OB GET ARRAY([Person]Children; "children";$children) //obtener la colección children + $save:=False //inicializar la variable save - $n:=Size of array($children) + $n:=Tamaño del array($children) If($n>0) $win:=Open form window("Edit_Children";Movable form dialog box) SET WINDOW TITLE("Check children for "+[Person]Name) - For($i;1;$n) //for each child - DIALOG("Edit_Children";$children{$i}) //displays dialog filled with values - If(OK=1) //the user clicked OK + For($i;1;$n) //para cada hijo + DIALOG("Edit_Children";$children{$i}) //muestra el diálogo lleno de valores + If(OK=1) //el usuario ha pulsado OK $save:=True End if End for If($save=True) - [Person]Children:=[Person]Children //forces object field update + [Person]Children:=[Person]Children //forza la actualización del campo objeto End if CLOSE WINDOW($win) Else @@ -109,7 +109,7 @@ El formulario muestra información sobre cada niño: ![](../assets/en/commands/pict3515152.en.png) -If values are edited and the OK button is clicked, the field is updated (the parent record must be saved afterwards). +Si se editan los valores y se presiona el botón OK, se actualiza el campo (después hay que guardar el registro principal). ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 1b8d5d973a23d6..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -91,7 +91,7 @@ En este caso, el comando imprimirá la sección incluida entre los parámetros * **formData** -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Desktop/labels.md index 3dd5e6b5ed6273..b5b048c933db40 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Desktop/labels.md @@ -3,15 +3,15 @@ id: labels title: Etiquetas --- -4D’s Label editor provides a convenient way to print a wide variety of labels. Con ella, puede hacer lo siguiente: +El editor de etiquetas de 4D ofrece una forma práctica de imprimir una amplia variedad de etiquetas. Con ella, puede hacer lo siguiente: -- Design labels for mailings, file folders and file cards, and for many other needs, -- Create and insert decorative items in label templates, -- Specify the font, font size, and style to be used for the labels, -- Specify the number of labels across and down on each page, +- Diseñe etiquetas para envíos postales, carpetas y fichas de archivo, y para muchas otras necesidades, +- crear e insertar elementos decorativos en un modelo de etiquetas, +- definir la fuente, el tamaño y el estilo de la fuente a utilizar para las etiquetas, +- determinar el número de etiquetas a lo largo y a lo ancho de cada página, - Especifique cuántas etiquetas imprimir por registro, - Especifique los márgenes de la página de etiquetas, -- Designate a method to execute when printing each label or record, +- designar un método a ejecutar al imprimir cada etiqueta o registro, - Crea una vista previa e imprime las etiquetas. :::note @@ -20,49 +20,49 @@ Las etiquetas también se pueden crear usando el [Editor de formularios](../Form ::: -You use the Label editor to create, format, and print labels. The Label editor contains settings for designing labels and positioning the labels on label paper. For example, when producing mailing labels, you might want a label design that includes the person’s first and last name on the first line, the street address on the second line, and so on. As part of the design, the Label editor enables you to specify the number of labels on the page and the margins of the label paper so that the label text is centered within the labels. -When you create a satisfactory label design, you can save it to disk so that you can reuse it. +El editor de etiquetas permite crear, formatear e imprimir las etiquetas. El editor de etiquetas contiene los parámetros para diseñar etiquetas y colocarlas en el papel de etiquetas. Por ejemplo, al producir etiquetas de correo, es posible que desee un diseño de etiqueta que incluya el nombre y apellidos de la persona en la primera línea, la dirección postal en la segunda línea, etc. Como parte del diseño, el editor de etiquetas le permite especificar el número de etiquetas de la página y los márgenes del papel de etiquetas para que el texto de las etiquetas quede centrado dentro de las mismas. +Cuando crea un diseño de etiqueta satisfactorio, puede guardarlo en disco para poder reutilizarlo. Para abrir el editor de etiquetas: -- In the Design environment, choose **Labels...** from the **Tools** menu or from the menu associated with the "Tools" button in the 4D tool bar. +- En el entorno Diseño, elija **Etiquetas...** en el menú **Herramientas** o en el menú asociado al botón "Herramientas" en la barra de herramientas de 4D. O - En una aplicación, llame al comando [`PRINT LABEL`](../commands-legacy/print-label.md). ![](../assets/en/Desktop/label-wizard.png) -You use the Label page to specify the contents of the label and the Layout page to define the size and position of the labels on the page. +Utilice la página Etiqueta para especificar el contenido de la etiqueta y la página Diseño para definir el tamaño y la posición de las etiquetas en la página. ![](../assets/en/Desktop/label-buttons.png) ## Página Etiqueta -The Label page contains several areas with settings for designing and formatting labels. +La página Etiqueta contiene varias áreas con opciones para diseñar y dar formato a las etiquetas. ### Lista de campos -Displays the names of the fields in the current table in a hierarchical list. If this table is related to other tables, the foreign key fields have a plus sign (on Windows) or an arrow (on macOS). You can display fields from the related table by expanding the related fields. Los campos de la tabla relacionada están indentados. To use a field from this list in the label template, you just drag it onto the label preview area to the right of the list. +Muestra los nombres de los campos de la tabla actual en una lista jerárquica. Si esta tabla está relacionada con otras tablas, los campos de clave externa tienen un signo más (en Windows) o una flecha (en macOS). Puede visualizar los campos de la tabla relacionada expandiendo los campos relacionados. Los campos de la tabla relacionada están indentados. Para utilizar un campo de esta lista en la plantilla de etiquetas, basta con arrastrarlo a la zona de vista previa de etiquetas situada a la derecha de la lista. :::note Notas -- Only tables and fields which are visible appear in the Label editor. -- [Object type](../Concepts/dt_object.md) fields are not supported by the Label editor. +- Sólo las tablas y los campos visibles aparecen en el editor de etiquetas. +- Los campos de [tipo Objeto](../Concepts/dt_object.md) no son compatibles con el editor de etiquetas. ::: -The search area allows you to narrow the list of fields displayed to those containing the entered string: +El área de búsqueda le permite limitar la lista de campos mostrados a aquellos que contengan la cadena de caracteres introducida: ![](../assets/en/Desktop/label-filter.png) ### Vista previa de etiqueta -You use this area to design your label zone by placing and positioning all the items that you want to include in your label. El rectángulo blanco representa una sola etiqueta (su tamaño se configura en la página [Diseño](#layout-page)). +Utilice esta área para diseñar su zona de etiquetas colocando y posicionando todos los elementos que desee incluir en su etiqueta. El rectángulo blanco representa una sola etiqueta (su tamaño se configura en la página [Diseño](#layout-page)). - Puede arrastrar los campos a la etiqueta. -- You can also concatenate two fields by dropping the second field onto the first one. Se separan automáticamente con un espacio.
    +- También puede concatenar dos campos soltando el segundo campo sobre el primero. Se separan automáticamente con un espacio.
    ![](../assets/en/Desktop/label-concat.png)
    - If you hold down the **Shift** key, they are separated by a carriage return. This lets you create, for example, address labels using several overlapping fields (Address1, Address2, etc.), without producing a blank row when an address requires only one field. -- You can add a formula onto the label by selecting the **Formula** tool ![](../assets/en/Desktop/label-tool6.png) (or choosing **Tool>Formula** in the contextual menu) and drawing an area. The **Formula editor** is then displayed: + Si mantiene presionada la tecla **Mayús**, se separan con un retorno de carro. Esto le permite crear, por ejemplo, etiquetas de direcciones utilizando varios campos superpuestos (Dirección1, Dirección2, etc.), sin producir una línea vacía cuando una dirección sólo requiere un campo. +- Puede añadir una fórmula a la etiqueta seleccionando la herramienta **Fórmula** ![](../assets/en/Desktop/label-tool6.png) (o eligiendo **Herramienta>Fórmula** en el menú contextual) y dibujando un área. The **Formula editor** is then displayed: ![](../assets/en/Desktop/label-formula1.png)
    For example, you can apply a format to a field using the [`String`](../commands-legacy/string.md) command:
    @@ -70,60 +70,60 @@ You use this area to design your label zone by placing and positioning all the i :::note -Keep in mind that you can only enter methods that are "allowed" for the database in the Formula editor. Los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y del comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md). +Tenga en cuenta que sólo puede introducir métodos "permitidos" para la base de datos en el Editor de fórmulas. Los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y del comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md). ::: -- You can drag and drop picture files as well as label files (".4lbp" files) from the desktop of the OS. +- Puedes arrastrar y soltar archivos imagen, así como archivos de etiquetas (archivos ".4lbp") desde el escritorio del sistema operativo. -- To modify the area, double-click on the contents in order to switch to editing mode. When you double-click on fields or formulas, the **Formula editor** is displayed, allowing you to remove or modify items: +- Para modificar el área, haga doble clic en el contenido para pasar al modo edición. Al hacer doble clic en campos o fórmulas, aparece el **Editor de fórmulas**, que permite eliminar o modificar elementos: ![](../assets/en/Desktop/label-formula.png) ### Formulario a utilizar -This drop-down list allows you to define a table form as a label template. The form chosen must be specially adapted to the creation of labels. -En este caso, el editor de etiquetas está parcialmente deshabilitado: sólo las funciones de la [página de diseño](#layout-page) pueden ser usadas — para permitirte configurar la página basada en el formulario. The image of the form selected is displayed in the label preview area. -When you use a form, 4D executes any form or object methods associated with it. Al usar esta opción, también puede designar un método proyecto para ejecutar para cada registro o etiqueta y luego asignar variables (ver [este ejemplo](#printing-labels-using-forms-and-methods-example) más abajo). If you want to create your labels using the editor itself, you need to choose the **No Form** option. +Esta lista desplegable permite definir un formulario tabla como modelo de etiqueta. El formulario elegido debe estar especialmente adaptado a la creación de etiquetas. +En este caso, el editor de etiquetas está parcialmente deshabilitado: sólo las funciones de la [página de diseño](#layout-page) pueden ser usadas — para permitirte configurar la página basada en el formulario. La imagen del formulario seleccionado se muestra en el área de previsualización de etiquetas. +Cuando se utiliza un formulario, 4D ejecuta cualquier método de formulario u objeto asociado a él. Al usar esta opción, también puede designar un método proyecto para ejecutar para cada registro o etiqueta y luego asignar variables (ver [este ejemplo](#printing-labels-using-forms-and-methods-example) más abajo). Si desea crear sus etiquetas utilizando el propio editor, deberá elegir la opción **Sin formulario**. :::note Notas - Puede restringir los formularios listados que aparecen en este menú mediante un [archivo JSON específico](#controlling-available-forms-and-methods). -- If the database does not contain any table forms, this menu is not displayed. +- Si la base no contiene ningún formulario tabla, este menú no se muestra. ::: ### Comandos del área gráfica -The graphic area of the editor includes both a tool bar and a context menu that you can use to design your label template. +El área gráfica del editor incluye tanto una barra de herramientas como un menú contextual que puede utilizar para diseñar su plantilla de etiquetas. -The left-hand side of the tool bar includes commands for selecting and inserting objects. You can also access these tools by means of the **Tool>** command in the area's context menu. +La parte izquierda de la barra de herramientas incluye comandos para seleccionar e insertar objetos. También puede acceder a estas herramientas mediante el comando **Herramienta>** del menú contextual del área. -| Icono | Nombre de la herramienta | Descripción | -| ----------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ![](../assets/en/Desktop/label-tool1.png) | Selección | Click on a single object or draw a selection box around several objects. For a selection of non-adjacent objects, hold down **Shift** and click on each object you want to select. | -| ![](../assets/en/Desktop/label-tool2.png) | Creación de línea | | -| ![](../assets/en/Desktop/label-tool3.png) | Creación rectangular | Para creación de rectángulo o rectángulo redondeado. | -| ![](../assets/en/Desktop/label-tool4.png) | Creación de círculo | | -| ![](../assets/en/Desktop/label-tool5.png) | Inserción de texto | Dibuja un rectángulo e introduce texto en su interior. You can edit any text area, including those containing field references, by double-clicking it. | -| ![](../assets/en/Desktop/label-tool6.png) | Inserción de fórmula | Draw a rectangle to display the **Formula editor**, where you can define dynamic label contents (fields and formulas). | +| Icono | Nombre de la herramienta | Descripción | +| ----------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool1.png) | Selección | Haga clic en un solo objeto o dibuje un cuadro de selección alrededor de varios objetos. Para una selección de objetos no adyacentes, mantenga presionada **Mayús** y haga clic en cada objeto que desee seleccionar. | +| ![](../assets/en/Desktop/label-tool2.png) | Creación de línea | | +| ![](../assets/en/Desktop/label-tool3.png) | Creación rectangular | Para creación de rectángulo o rectángulo redondeado. | +| ![](../assets/en/Desktop/label-tool4.png) | Creación de círculo | | +| ![](../assets/en/Desktop/label-tool5.png) | Inserción de texto | Dibuja un rectángulo e introduce texto en su interior. Puede editar toda área de texto, incluidas las que contienen referencias a campos, haciendo doble clic en ellas. | +| ![](../assets/en/Desktop/label-tool6.png) | Inserción de fórmula | Dibuje un rectángulo para mostrar el **Editor de fórmulas**, donde puede definir el contenido dinámico de las etiquetas (campos y fórmulas). | -There are shortcuts available to move or resize objects more precisely using the keyboard arrow keys: +Hay atajos disponibles para mover o redimensionar objetos con mayor precisión utilizando las teclas de flecha del teclado: -- Keyboard arrow keys move the selection of objects 1 pixel at a time. -- **Shift** + arrow keys move the selection of objects 10 pixels at a time. -- **Ctrl** + arrow keys enlarge or reduce the selection of objects by 1 pixel. -- **Ctrl** + **Maj** + arrow keys enlarge or reduce the selection of objects by 10 pixels. +- Las teclas de flecha del teclado mueven la selección de objetos de 1 píxel a la vez. +- **Mayús** + teclas de flecha mueven la selección de objetos 10 píxeles a la vez. +- **Ctrl** + teclas de flecha agrandan o reducen la selección de objetos en 1 píxel. +- **Ctrl** + **Maj** + teclas de flecha amplían o reducen la selección de objetos en 10 píxeles. -The right-hand side of the tool bar contains commands used to modify items of the label template: +El lado derecho de la barra de herramientas contiene comandos utilizados para modificar elementos de la plantilla de etiqueta: -| Icono | Nombre de la herramienta | Descripción | -| ------------------------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/Desktop/label-tool7.png) | Color de relleno | todos los iconos de color muestran el color seleccionado | -| ![](../assets/en/Desktop/label-tool8.png) | Color de línea | | -| ![](../assets/en/Desktop/label-tool9.png) | Peso lineal | | -| ![](../assets/en/Desktop/label-tool10.png) | Menú Fuente | Sets the font and its size, as well as the text style, color and alignment for the block(s) of selected text. | -| ![](../assets/en/Desktop/label-tool11.png) | Alineación y distribución | Two or more objects must be selected for the alignment options to be available. "Distributing" objects means automatically setting the horizontal or vertical intervals between at least three objects, so that they are identical. The resulting interval is an average of all those existing in the selection. | -| ![](../assets/en/Desktop/label-tool12.png) | Nivel de los objetos | Moves objects to the front or back, or moves one or more objects up or down one level. | +| Icono | Nombre de la herramienta | Descripción | +| ------------------------------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool7.png) | Color de relleno | todos los iconos de color muestran el color seleccionado | +| ![](../assets/en/Desktop/label-tool8.png) | Color de línea | | +| ![](../assets/en/Desktop/label-tool9.png) | Peso lineal | | +| ![](../assets/en/Desktop/label-tool10.png) | Menú Fuente | Define la fuente y su tamaño, así como el estilo, el color y la alineación del texto para los bloques de texto seleccionados. | +| ![](../assets/en/Desktop/label-tool11.png) | Alineación y distribución | Deben seleccionarse dos o más objetos para que las opciones de alineación estén disponibles. "Repartir" objetos significa definir automáticamente los intervalos horizontales o verticales entre al menos tres objetos, de modo que sean idénticos. El intervalo resultante es una media de todos los existentes en la selección. | +| ![](../assets/en/Desktop/label-tool12.png) | Nivel de los objetos | Mueve los objetos a la parte frontal o atrás, o mueve uno o más objetos hacia arriba o hacia abajo de un nivel. | ## Página Diseño @@ -199,7 +199,7 @@ The Label editor includes an advanced feature allowing you to restrict which pro - en el menú **Aplicar (método)** de la página "Diseño". 1. Crea un archivo JSON llamado **labels.json** y ponlo en la [carpeta de recursos](../Project/architecture.md#resources) del proyecto. -2. In this file, add the names of forms and/or project methods that you want to be able to select in the Label editor menus. +2. En este archivo, añada los nombres de los formularios y/o métodos proyecto que desea poder seleccionar en los menús del editor de etiquetas. El contenido del archivo **labels.json** debe ser similar a: @@ -214,34 +214,34 @@ Si no se ha definido ningún archivo **labels.json** entonces no se aplica ning ## Gestión de archivos de etiquetas -4D allows you to save each label design in a file that you can open subsequently from within the wizard. By saving your label designs, you can build a label library adapted to your specific needs. Each label design stores the settings defined on the Label and Layout pages. +4D le permite guardar cada modelo de etiquetas en un archivo que podrá abrir posteriormente desde el asistente. Si guarda sus diseños de etiquetas, podrá crear una biblioteca de etiquetas adaptada a sus necesidades específicas. Cada diseño de etiqueta almacena los ajustes definidos en las páginas Etiqueta y Diseño. -You can drag and drop label files from your desktop onto the label design area. +Puede arrastrar y soltar archivos de etiquetas desde el escritorio al área de diseño de etiquetas. -Label designs are managed using the **Load** and **Save** buttons of the tool bar. +Los diseños de etiquetas se gestionan mediante los botones **Cargar** y **Guardar** de la barra de herramientas. -- To load a label design, click on the **Load** button and designate the design you want to load by means of the File Open dialog box (if a label design is already present in the wizard, 4D replaces it by the one you have loaded). -- To save a label design, click on the **Save** button and indicate the name and location of the design to be created. +- Para cargar un diseño de etiqueta, haga clic en el botón **Cargar** y designe el diseño que desea cargar mediante el cuadro de diálogo Abrir archivo (si ya existe un diseño de etiqueta en el asistente, 4D lo sustituye por el que ha cargado). +- Para guardar un diseño de etiqueta, haga clic en el botón **Guardar** e indique el nombre y la ubicación del diseño que desea crear. ### Formato del archivo -The file extension of 4D labels saved by the wizard is ".4lbp". Note that this format is open since it is written internally in XML. +La extensión de archivo de las etiquetas 4D guardadas por el asistente es ".4lbp". Tenga en cuenta que este formato es abierto, ya que está escrito internamente en XML. ### Precargando archivos de etiqueta -The Label Wizard allows you to store label files within your application, so that label designs can be selected and opened by the user directly using the **Load** button. +El editor de etiquetas le permite almacenar archivos de etiquetas dentro de su aplicación, de forma que los diseños de etiquetas puedan ser seleccionados y abiertos por el usuario directamente mediante el botón **Cargar**. -To do this, you just need to create a folder named `Labels` within the [Resources folder](../Project/architecture.md#resources) of the project and then copy your label files into it: +Para ello, basta con crear una carpeta llamada `Labels` en la [carpeta Resources](../Project/architecture.md#resources) del proyecto y copiar en ella los archivos de etiquetas: ![](../assets/en/Desktop/label-resources.png) :::note -Both standard ".4lbp" files and files generated by the former wizard (".4lb") files are supported. +Se admiten tanto los archivos ".4lbp" estándar como los generados por el asistente anterior (".4lb"). ::: -When the Label Wizard starts, if this folder is detected and contains valid label files, a pop-up icon is added to the **Load** button. Los modelos de etiquetas pueden seleccionarse a través de una línea de menú: +Cuando se inicia el Asistente de etiquetas, si se detecta esta carpeta y contiene archivos de etiquetas válidos, se añade un icono emergente al botón **Cargar**. Los modelos de etiquetas pueden seleccionarse a través de una línea de menú: ![](../assets/en/Desktop/label-resources2.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Project/date-time-formats.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Project/date-time-formats.md index f7f12a59c0290f..79031da5a4075f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Project/date-time-formats.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/Project/date-time-formats.md @@ -94,7 +94,7 @@ La siguiente tabla muestra todos los patrones soportados para formatos de fecha | | Zona horaria: ISO8601 hm básico, sin Z | xx | -0800, +0000 | | | Zona horaria: ISO8601 hm extendido, sin Z | xxx | -08:00 | | | Zona horaria: ISO8601 hms básico, sin Z | xxxx | -0800, -075258 | -| | Time Zone: ISO8601 extended hms?, without Z | xxxxx | -08:00, -07:52:58 | +| | Time Zone: ISO8601 extended hms?, sin Z | xxxxx | -08:00, -07:52:58 | | O | Zona horaria: GMT localizada abreviada | O | GMT-8 | | | Zona horaria: localización larga GMT (=ZZZZ) | OOOO | GMT-08:00 | | z | Zona horaria: no específica | z, zz, o zzz | -0800 | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WebServer/http-request-handler.md index 0f995b94fe34c5..b706baf744010a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WebServer/http-request-handler.md @@ -3,7 +3,7 @@ id: http-request-handler title: HTTP Request handler --- -By default, HTTP requests received by the 4D web server are handled through [built-in processing features](httpRequests.md) or the [REST server](../REST/REST_requests.md). +Por defecto, las peticiones HTTP recibidas por el servidor web 4D se gestionan a través de [funciones de procesamiento integradas](httpRequests.md) o del [servidor REST](../REST/REST_requests.md). In addition, 4D supports the implementation of **custom HTTP Request handlers**, allowing you to intercept specific incoming HTTP requests and process them using your own code. @@ -36,7 +36,7 @@ This file contains all listened URL patterns, the handled verbs, and the code to At runtime, the first pattern matching the URL is executed, the others are ignored. -Here is an example of a *HTTPHandlers.json* file contents: +Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: ```json @@ -155,50 +155,50 @@ El verbo HTTP también puede ser evaluado [utilizando la propiedad `.verb` dentr ## Ejemplo -Here is a detailed example of a HTTPHandlers.json file: +He aquí un ejemplo detallado de un archivo HTTPHandlers.json: ```json [ { - "class": "GeneralHandling", + "clase": "GeneralHandling", "method": "handle", - "pattern": "info", //URL prefix + "pattern": "info", //prefijo URL "verbs": "GET" }, { "class": "UsersHandling", "method": "manageAccount", - "pattern": "userAccount/update", //URL prefix + "pattern": "userAccount/update", //prefijo URL "verbs": "PUT,POST" }, { "class": "FinancialHandling", "method": "handleInvoices", - "regexPattern": "/docs/invoices/(past|today)", //URL prefix given as a regex + "regexPattern": "/docs/invoices/(past|today)", //prefijo de URL dado como regex "verbs": "GET" }, { "class": "DocsHandling", "method": "handleDocs", - "regexPattern": "/docs/myPage.html", //URL prefix given as a regex + "regexPattern": "/docs/myPage.html", //prefijo de URL dado como regex "verbs": "GET" }, { "class": "InvoicesHandling", "method": "handleTheInvoice", - "pattern": "docs/invoices/details/theInvoice", // The most specific URL first + "pattern": "docs/invoices/details/theInvoice", // La URL más específica primero "verbs": "GET,POST" }, { "class": "InvoicesHandling", "method": "handleDetails", - "pattern": "docs/invoices/details", // The general URLs after + "pattern": "docs/invoices/details", // Las URL generales después de "verbs": "GET" }, { "class": "InvoicesHandling", - "method": "handleInvoices", // The general URLs after + "method": "handleInvoices", // Las URL generales después de "pattern": "docs/invoices", "verbs": "GET" } @@ -212,24 +212,24 @@ En este ejemplo, debe implementar las siguientes funciones: - *manageAccount* en la clase *UsersHandling* - *handleInvoices* en la clase *FinancialHandling* - *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* in the *InvoicesHandling* class +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: -`IP:port/info/` with a GET verb -`IP:port/info/general` with a GET verb +`IP:port/info/` con un verbo GET +`IP:port/info/general` con un verbo GET -`IP:port/userAccount/update/` with a POST verb -`IP:port/userAccount/update/profile` with a POST verb +`IP:port/userAccount/update/` con un verbo POST +`IP:port/userAccount/update/profile` con un verbo POST -`IP:port/docs/invoices/past` with a GET verb -`IP:port/docs/invoices/today/latest` with a GET verb +`IP:port/docs/invoices/past` con un verbo GET +`IP:port/docs/invoices/today/latest` con un verbo GET `IP:port//docs/myPage.html` con un verbo GET -`IP:port//docs/invoices/` with a GET verb, calls *handleInvoices* function (*InvoicesHandling* class) -`IP:port//docs/invoices/details/` with a GET verb, calls *handleDetails* function (*InvoicesHandling* class) -`IP:port//docs/invoices/details/theInvoice/xxxxxx` with a GET verb, calls *handleTheInvoice* function (*InvoiceslHandling* class) +`IP:port//docs/invoices/` con un verbo GET, llama a la función *handleInvoices* (clase *InvoicesHandling*) +`IP:port//docs/invoices/details/` con un verbo GET, llama a la función *handleDetails* (clase *InvoicesHandling*) +`IP:port//docs/invoices/details/theInvoice/xxxxxx` con un verbo GET, llama a la función *handleTheInvoice* (clase *InvoiceslHandling*) ## Código del gestor de peticiones @@ -243,7 +243,7 @@ Request handler functions are not necessarily shared, unless some request handle :::note -It is **not recommended** to expose request handler functions to external REST calls using [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) or [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keywords. +**no es recomendado** exponer las funciones del gestor de solicitudes a llamadas REST externas usando las palabras claves [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) o [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WritePro/commands/wp-insert-formula.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WritePro/commands/wp-insert-formula.md index dd2bdc67ff1bdb..aabd860a7a9bec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WritePro/commands/wp-insert-formula.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/WritePro/commands/wp-insert-formula.md @@ -8,13 +8,13 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ----------- | ------ | --------------------------- | ----------------------------------------------------------------- | -| targetObj | Object | → | Rango o elemento o documento 4D Write Pro | -| formula | Object | → | Objeto de fórmula U Objeto con propiedades de fórmula y de nombre | -| mode | Number | → | Modo de inserción | -| rangeUpdate | Number | → | Includes or excludes the inserted content within the range | -| Resultado | Object | ← | Text range object reprsenting the result of the formula | +| Parámetros | Tipo | | Descripción | +| ----------- | ------ | --------------------------- | ------------------------------------------------------------------ | +| targetObj | Object | → | Rango o elemento o documento 4D Write Pro | +| formula | Object | → | Objeto de fórmula U Objeto con propiedades de fórmula y de nombre | +| mode | Number | → | Modo de inserción | +| rangeUpdate | Number | → | Incluye o excluye el contenido insertado dentro del intervalo | +| Resultado | Object | ← | Objeto de rango de texto que representa el resultado de la fórmula | @@ -25,7 +25,7 @@ El comando **WP Insert formula** En el parámetro *targetObj*, puede pasar: - un rango, o -- an element (table / row / cell(s) / paragraph / body / header / footer / section / subsection / inline picture), or +- un elemento (tabla / línea / celda(s) / párrafo / cuerpo / encabezado / pie / sección / subsección / imagen en línea), o bien - un documento 4D Write Pro. En el parámetro *formula*, pase la fórmula 4D a evaluar. Puede pasar: @@ -33,14 +33,14 @@ En el parámetro *formula*, pase la fórmula 4D a evaluar. Puede pasar: - o un [objeto de la fórmula](../../commands/formula.md-objects) creado por el comando [**Formula**](../../commands/formula.md) o [**Formula from string**](../../commands/formula.md-from-string), - o un objeto que contiene dos propiedades: -| **Propiedad** | **Tipo** | **Description** | -| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | Nombre que se mostrará para la fórmula en el documento | -| formula | Object | The [formula object](../../commands/formula.md-objects) created by the [**Formula**](../../commands/formula.md) or [**Formula from string**](../../commands/formula.md-from-string) command | +| **Propiedad** | **Tipo** | **Description** | +| ------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | Text | Nombre que se mostrará para la fórmula en el documento | +| formula | Object | El [objeto de la fórmula](../../commands/formula.md-objects) creado por el comando [**Formula**](../../commands/formula.md) o [**Formula from string**](../../commands/formula.md-from-string), | -When you use an object with a formula *name*, this name is displayed in the document instead of the formula reference when formulas are displayed as reference, and in the formula tip when displayed as value or symbols. If the *name* property contains an empty string or is omitted, it is removed from the object and the formula is displayed by default. Para más información, vea la página [Gestión de formulas](../managing-formulas.md). +Cuando se utiliza un objeto con una fórmula *name*, este nombre se muestra en el documento en lugar de la referencia de fórmula cuando las fórmulas se muestran como referencia, y en el consejo de fórmula cuando se muestran como valor o símbolos. Si la propiedad *name* contiene una cadena vacía o se omite, se elimina del objeto y la fórmula se muestra por defecto. Para más información, vea la página [Gestión de formulas](../managing-formulas.md). -In the *mode* parameter, pass one of the following constants to indicate the insertion mode to be used: +En el parámetro *mode*, pase una de las siguientes constantes para indicar el modo de inserción que se va a utilizar: | Constante | Tipo | Valor | Comentario | | ---------- | ------- | ----- | ----------------------------------------------- | @@ -48,20 +48,20 @@ In the *mode* parameter, pass one of the following constants to indicate the ins | wk prepend | Integer | 1 | Insertar el contenido al principio del objetivo | | wk replace | Integer | 0 | Sustituir contenido de destino | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted *formula* is included in the resulting range: +- Si *targetObj* es un rango, puede utilizar el parámetro opcional *rangeUpdate* para pasar una de las siguientes constantes para especificar si la *formula* insertada se incluye o no en el rango resultante: | Constante | Tipo | Valor | Comentario | | --------------------- | ------- | ----- | ------------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Contenido insertado no incluido en el rango actualizado | | wk include in range | Integer | 0 | Contenido insertado incluido en el rango actualizado (por defecto) | -If you do not pass a *rangeUpdate* parameter, by default the inserted *formula* is included in the resulting range. +Si no pasa un parámetro *rangeUpdate*, por defecto la *formula* insertada se incluye en el rango resultante. - Si *targetObj* no es un rango, *rangeUpdate* se ignora. :::note -Keep in mind that, when called, the formula object is evaluated within the context of the database or component that created it. +Tenga en cuenta que, cuando se llama, el objeto fórmula se evalúa dentro del contexto de la base de datos o del componente que lo creó. ::: @@ -73,19 +73,19 @@ Para reemplazar todas las fórmulas de fecha actuales con cadenas formateadas: var $_formulas : Collection var $find;$newFormula : Object - // define the formula to find + // definir la fórmula a buscar $find:=Formula(Current date) - // define the replacement formula + // definir la fórmula de sustitución $newFormula:=Formula(String(Current date;System date long)) - // find all formulas in the document + // encontrar todas las fórmulas en el documento $_formulas:=WP Get formulas(WriteProArea) - // query the collection from WP Get formulas + // consultar la colección desde WP Get formulas $_formulas:=$_formulas.query("formula.source =:1";$find.source) - // then replace each formula + // luego reemplazar cada fórmula For each($formula;$_formulas) WP Insert formula($formula.range;$newFormula;wk replace) End for each @@ -93,19 +93,19 @@ Para reemplazar todas las fórmulas de fecha actuales con cadenas formateadas: ## Ejemplo 2 -You want to use a formula name for the customer name: +Desea utilizar un nombre de fórmula para el nombre del cliente: ```4d - //add some data + //añade algunos datos $data:=New object("customer";New object("lastname";"Smith";"firstname";"John")) WP SET DATA CONTEXT(WPArea;$data) - //create a formula object with a name + //crea un objeto fórmula con un nombre $o:=New object $o.formula:=Formula(This.data.customer.firstname+" "+This.data.customer.lastname) $o.name:="Customer name" - //inserts as text + //inserta como texto $range:=WP Text range(WPArea;wk start text;wk end text) WP SET TEXT($range;"Dear ";wk append) WP Insert formula($range;$o;wk append) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/aikit/Classes/OpenAIImage.md index bd17d461c1e5b8..5201a0d503757f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/aikit/Classes/OpenAIImage.md @@ -37,9 +37,9 @@ var $blob:=$image.asBlob() **asPicture**() : Picture -| Parámetros | Tipo | Descripción | -| ---------- | ------- | ----------------------------------------------------------------------- | -| Resultado | Picture | Creates a picture object from the blob converted image. | +| Parámetros | Tipo | Descripción | +| ---------- | ------- | ------------------------------------------------------------------------------- | +| Resultado | Picture | Crea un objeto imagen a partir de la imagen convertida en blob. | #### Ejemplo de Uso diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/dialog.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/dialog.md index 2fdfa8437e3346..d4c02d593644dd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/dialog.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/dialog.md @@ -8,12 +8,12 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ---------- | ------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| aTable | Tabla | → | Tabla propia del formulario o Si se omite: tabla por defecto o uso del formulario del proyecto | -| form | Text, Object | → | Name (string) of table or project form, or a POSIX path (string) to a .json file describing the form, or an object describing the form | -| formData | Object | → | Datos a asociar al formulario | -| \* | Operador | → | Usar el mismo proceso | +| Parámetros | Tipo | | Descripción | +| ---------- | ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| aTable | Tabla | → | Tabla propia del formulario o Si se omite: tabla por defecto o uso del formulario del proyecto | +| form | Text, Object | → | Nombre (string) de la tabla o formulario proyecto, o una ruta POSIX (string) a un archivo .json que describa el formulario, o un objeto que describa el formulario | +| formData | Object | → | Datos a asociar al formulario | +| \* | Operador | → | Usar el mismo proceso | @@ -21,80 +21,75 @@ displayed_sidebar: docs El comando **DIALOG** presenta el *formulario* al usuario, junto con (el) los parámetro(s) *formData* (opcional). -This command is designed to work with customized and advanced user interfaces based on forms. You can use it to display information coming from the database or other locations, or to provide data entry features. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. +Este comando está diseñado para trabajar con interfaces de usuario personalizadas y avanzadas basadas en formularios. Puede utilizarlo para mostrar información procedente de la base de datos o de otras ubicaciones, o para proporcionar funciones de entrada de datos. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. Este comando suele invocarse junto con el comando [Open form window](../commands-legacy/open-form-window.md) para mostrar formularios sofisticados, como se muestra en el siguiente ejemplo: ![](../assets/en/commands/pict3541609.en.png) -The **DIALOG** command can also be used instead of [ALERT](../commands-legacy/alert.md), [CONFIRM](../commands-legacy/confirm.md) or [Request](../commands-legacy/request.md) when the information to be presented or gathered is more complex than those commands can manage. +El comando **DIALOG** también puede utilizarse en lugar de [ALERT](../commands-legacy/alert.md), [CONFIRM](../commands-legacy/confirm.md) o [Request](../commands-legacy/request.md) cuando la información a presentar o recopilar es más compleja de lo que esos comandos pueden gestionar. En el parámetro *form*, puede pasar: - el nombre de un formulario (formulario proyecto o formulario tabla) a utilizar; -- the path (in POSIX syntax) to a valid .json file containing a description of the form to use; -- an object containing a description of the form to use. +- la ruta (en sintaxis POSIX) a un archivo .json válido que contenga una descripción del formulario a utilizar; +- un objeto que contiene la descripción del formulario a utilizar. -Opcionalmente, puede pasar uno o varios parámetros al *form* utilizando un objeto "form data". Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. For example, if you use a form data object containing {"version";"12"}, you will be able to get or set the value of the "version" property in the form by calling: +Opcionalmente, puede pasar uno o varios parámetros al *form* utilizando un objeto "form data". Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Por ejemplo, si utiliza un objeto de datos de formulario que contenga {"version"; "12"}, podrá obtener o definir el valor de la propiedad "version" en el formulario llamando a: ```4d $v:=Form.version //"12" Form.version:=13 ``` -To fill the "form data" object, you have two possibilities: +Para llenar el objeto "form data", tiene dos posibilidades: -- usar el parámetro *formData*. Using a local variable for *formData* allows you to safely pass parameters to your forms, whatever the calling context. In particular, if the same form is called from different places in the same process, you will always be able to access its specific values by simply calling [Form](form.md).myProperty. Moreover, since objects are passed by reference, if the user modifies a property value in the form, it will automatically be saved in the object itself. +- usar el parámetro *formData*. Usar una variable local para *formData* le permite pasar con seguridad parámetros a sus formularios, sea cual sea el contexto de llamada. En particular, si el mismo formulario se llama desde diferentes lugares en el mismo proceso, siempre podrá acceder a sus valores específicos simplemente llamando a [Form](form.md).myProperty. Además, como los objetos se pasan por referencia, si el usuario modifica el valor de una propiedad en el formulario, se guardará automáticamente en el propio objeto. - [asociar una clase usuario al formulario](../FormEditor/properties_FormProperties.md#form-class), en cuyo caso 4D instanciará automáticamente un objeto de esta clase cuando se cargará el formulario. Las propiedades y funciones del objeto estarán automáticamente disponibles a través del objeto devuelto por [Form](form.md). Puede escribir por ejemplo `Form.myFunction()`. :::note - El parámetro *formData* tiene prioridad sobre una clase de formulario (el objeto de clase no es instanciado si se pasa un parámetro *formData*). -- If you do not pass the *formData* parameter (or if you pass an undefined object) and no user class is associated to the form, **DIALOG** creates a new empty object bound to the *form*. +- Si no pasa el parámetro *formData* (o si pasa un objeto no definido) y no hay ninguna clase de usuario asociada al formulario, **DIALOG** crea un nuevo objeto vacío vinculado al *form*. ::: -The dialog is closed by the user either with an "accept" action (triggered by the ak accept standard action, the Enter key, or the [ACCEPT](../commands-legacy/accept.md) command), or with a "cancel" action (triggered by the ak cancel standard action, the Escape key, or the [CANCEL](../commands-legacy/cancel.md) command). An accept action will set the OK system variable to 1, while a cancel action will set OK to 0\. +El diálogo es cerrado por el usuario ya sea con una acción "aceptar" (activada por la acción estándar ak accept, la tecla Intro, o el comando [ACCEPT](../commands-legacy/accept.md)), o con una acción de "cancelar" (activada por la acción estándar ak cancel, la tecla Escape, o el comando [CANCEL](../commands-legacy/cancel.md)). Una acción de aceptación pondrá la variable sistema OK en 1, mientras que una acción de cancelación pondrá OK en 0\. Tenga en cuenta que la validación no es igual al guardado: si el diálogo incluye campos, debe llamar explícitamente al comando [SAVE RECORD](../commands-legacy/save-record.md) para guardar cualquier dato que haya sido modificado. -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ -This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. Si el proceso actual termina, los formularios creados de este modo se cierran automáticamente del mismo modo que si se hubiera llamado a un comando [CANCEL](../commands-legacy/cancel.md). This opening mode is particularly useful for displaying a floating palette with a document, without necessarily requiring another process. +Si se pasa el parámetro opcional *\**, el formulario se carga y se muestra en la última ventana abierta del proceso actual y el comando finaliza su ejecución dejando el formulario activo en la pantalla.\ +Este formulario reacciona entonces "normalmente" a las acciones del usuario y se cierra utilizando una acción estándar o cuando el código 4D relacionado con el formulario (método objeto o método formulario) llama al comando [CANCEL](../commands-legacy/cancel.md) o [ACCEPT](../commands-legacy/accept.md). Si el proceso actual termina, los formularios creados de este modo se cierran automáticamente del mismo modo que si se hubiera llamado a un comando [CANCEL](../commands-legacy/cancel.md). Este modo de apertura es especialmente útil para mostrar una paleta flotante con un documento, sin necesidad de otro proceso. **Notas:** - Puede combinar el uso de la sintaxis **DIALOG**(form;\*) con el comando [CALL FORM](../commands-legacy/call-form.md) para establecer la comunicación entre los formularios. -- You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. En caso contrario, se genera el error -9909. -- When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. +- Debe crear una ventana antes de llamar a la instrucción **DIALOG**(form;\*). No es posible utilizar la ventana de diálogo actual en el proceso ni la ventana creada por defecto para cada proceso. En caso contrario, se genera el error -9909. +- Cuando se utiliza el parámetro *\**, la ventana se cierra automáticamente tras una acción estándar o una llamada al comando [CANCEL](../commands-legacy/cancel.md) o [ACCEPT](../commands-legacy/accept.md). No tiene que gestionar el cierre de la propia ventana. ## Ejemplo 1 -The following example can be used to create a tool palette: +El siguiente ejemplo permite crear una paleta de herramientas: ```4d - //Display tool palette + //Mostrar paleta de herramientas $palette_window:=Open form window("tools";Palette form window) - DIALOG("tools";*) //Give back the control immediately - //Display main document windowl + DIALOG("tools";*) //Devolver el control inmediatamente + //Mostrar ventana de documento principall $document_window:=Open form window("doc";Plain form window) DIALOG("doc") ``` ## Ejemplo 2 -In a form displaying the record of a person, a "Check children" button opens a dialog to verify/modify the names and ages of their children: +En un formulario que muestra el registro de una persona, un botón "Check children" abre un cuadro de diálogo para verificar/modificar los nombres y edades de sus hijos: ![](../assets/en/commands/pict3542015.en.png) -**Note:** The "Children" object field is represented only to show its structure for this example. +**Nota:** el campo objeto "Children" se representa sólo para mostrar su estructura en este ejemplo. -In the verification form, you have assigned some [Form](form.md) object properties to variables: +En el formulario de verificación, ha asignado algunas propiedades del objeto [Form](form.md) a variables: ![](../assets/en/commands/pict3541682.en.png) @@ -104,21 +99,21 @@ Este es el código del botón "Check children": var $win;$n;$i : Integer var $save : Boolean ARRAY OBJECT($children;0) - OB GET ARRAY([Person]Children;"children";$children) //get the children collection - $save:=False //initialize the save variable + OB GET ARRAY([Person]Children; "children";$children) //obtener la colección children + $save:=False //inicializar la variable save - $n:=Size of array($children) + $n:=Tamaño del array($children) If($n>0) $win:=Open form window("Edit_Children";Movable form dialog box) SET WINDOW TITLE("Check children for "+[Person]Name) - For($i;1;$n) //for each child - DIALOG("Edit_Children";$children{$i}) //displays dialog filled with values - If(OK=1) //the user clicked OK + For($i;1;$n) //para cada hijo + DIALOG("Edit_Children";$children{$i}) //muestra el diálogo lleno de valores + If(OK=1) //el usuario ha pulsado OK $save:=True End if End for If($save=True) - [Person]Children:=[Person]Children //forces object field update + [Person]Children:=[Person]Children //forza la actualización del campo objeto End if CLOSE WINDOW($win) Else @@ -130,7 +125,7 @@ El formulario muestra información sobre cada niño: ![](../assets/en/commands/pict3515152.en.png) -If values are edited and the OK button is clicked, the field is updated (the parent record must be saved afterwards). +Si se editan los valores y se presiona el botón OK, se actualiza el campo (después hay que guardar el registro principal). ## Ejemplo 3 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form-load.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form-load.md index 23cc6dde443840..b2246711fa01db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form-load.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form-load.md @@ -31,7 +31,7 @@ When the command is executed from a component, it loads the component forms by d ### formData -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). El objeto de datos del formulario está disponible en el [evento de formulario `On Load`](../Events/onLoad.md). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form.md index e7c39ee751fe86..bbfb41c3e71cef 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/form.md @@ -67,11 +67,11 @@ In the context of an input form displayed from an output form (i.e. after a doub ## Ejemplo -In a form displaying the record of a person, a "Check children" button opens a dialog to verify/modify the names and ages of their children: +En un formulario que muestra el registro de una persona, un botón "Check children" abre un cuadro de diálogo para verificar/modificar los nombres y edades de sus hijos: ![](../assets/en/commands/pict3542015.en.png) -**Note:** The "Children" object field is represented only to show its structure for this example. +**Nota:** el campo objeto "Children" se representa sólo para mostrar su estructura en este ejemplo. In the verification form, you have assigned some Form object properties to inputs: @@ -83,21 +83,21 @@ Este es el código del botón "Check children": var $win;$n;$i : Integer var $save : Boolean ARRAY OBJECT($children;0) - OB GET ARRAY([Person]Children;"children";$children) //get the children collection - $save:=False //initialize the save variable + OB GET ARRAY([Person]Children; "children";$children) //obtener la colección children + $save:=False //inicializar la variable save - $n:=Size of array($children) + $n:=Tamaño del array($children) If($n>0) $win:=Open form window("Edit_Children";Movable form dialog box) SET WINDOW TITLE("Check children for "+[Person]Name) - For($i;1;$n) //for each child - DIALOG("Edit_Children";$children{$i}) //displays dialog filled with values - If(OK=1) //the user clicked OK + For($i;1;$n) //para cada hijo + DIALOG("Edit_Children";$children{$i}) //muestra el diálogo lleno de valores + If(OK=1) //el usuario ha pulsado OK $save:=True End if End for If($save=True) - [Person]Children:=[Person]Children //forces object field update + [Person]Children:=[Person]Children //forza la actualización del campo objeto End if CLOSE WINDOW($win) Else @@ -109,7 +109,7 @@ El formulario muestra información sobre cada niño: ![](../assets/en/commands/pict3515152.en.png) -If values are edited and the OK button is clicked, the field is updated (the parent record must be saved afterwards). +Si se editan los valores y se presiona el botón OK, se actualiza el campo (después hay que guardar el registro principal). ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/print-form.md index 1b8d5d973a23d6..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9/commands/print-form.md @@ -91,7 +91,7 @@ En este caso, el comando imprimirá la sección incluida entre los parámetros * **formData** -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Any properties of the form data object will then be available from within the form context through the [Form](form.md) command. Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 5df48330fc23c6..3bb69f180077cf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### Exemple 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. Par exemple : +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. Par exemple : ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 5df48330fc23c6..3bb69f180077cf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### Exemple 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. Par exemple : +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. Par exemple : ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index f72873cf8a5d0a..4d8f992784964f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### 例題 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. 例: +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. 例: ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index f72873cf8a5d0a..4d8f992784964f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### 例題 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. 例: +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. 例: ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 170e53bd05ca97..67e6be3fc2b959 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### Exemplo 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. Por exemplo: +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. Por exemplo: ```4d exposed Function get sameDay(): Boolean diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 170e53bd05ca97..67e6be3fc2b959 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -127,7 +127,7 @@ Function event touched($event : Object) #### Exemplo 2 -The "touched" event is useful with [computed attributes](../ORDA/ordaClasses.md#computed-attributes), when you want to store a state depending on a comparison on the current value of underlying attributes. Por exemplo: +The "touched" event is useful in situations where certain [computed attributes](../ORDA/ordaClasses.md#computed-attributes) result in costly processing due to their sequential execution. Adding an attribute linked to this event to store a state based on a comparison on the current value of underlying attributes can improve performance and enable optimized searches via indexes. Por exemplo: ```4d exposed Function get sameDay(): Boolean