Skip to content

Commit

Permalink
Merge branch 'mdn:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
sora32127 authored Oct 26, 2024
2 parents 11499f3 + 04aafee commit 5fb8e7a
Show file tree
Hide file tree
Showing 337 changed files with 12,750 additions and 3,885 deletions.
6 changes: 6 additions & 0 deletions docs/ko/guides/translation-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,3 +198,9 @@ MDN 문서는 구어체의 격식체를 **권장**하고 있습니다. 하지만
괄호 사용을 지양합니다. 괄호가 남용되는 사례가 너무 많았고, 남용되지 않더라도 원문에 존재하지 않은 괄호는 가독성을 저하시키고 기여자의 의견을 작성하는 용도로 많이 사용되어서 지양합니다.

예외적으로 `한글(영어)` 표기는 좋은 방법은 아니지만, 필요한 경우에 리뷰어와 협의하여 사용할 수 있습니다.

## 원문과 동일한 문서

번역 후의 줄 수와 원문의 줄 수가 같도록 해주세요. 이는 원문과 달라진 부분을 빨리 찾을 수 있으므로 유지보수에 도움이 됩니다.

관련 논의는 [Exploring Guidelines for Line Length and Newline in Markdown Documentation. #655](https://github.com/orgs/mdn/discussions/655#discussioncomment-9251708)에서 확인할 수 있습니다.
4 changes: 2 additions & 2 deletions files/es/learn/server-side/django/models/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ Al diseñar sus modelos, tiene sentido tener modelos separados para cada "objeto

También es posible que desee utilizar modelos para representar las opciones de la lista de selección (por ejemplo, como una lista desplegable de opciones), en lugar de codificar las opciones en el sitio web en sí; esto se recomienda cuando no se conocen de antemano todas las opciones posibles o éstas están sujetas a cambios. Los candidatos obvios para las modelos, en este caso, incluyen el género del libro (por ejemplo, ciencia ficción, poesía francesa, etc.) y el idioma (inglés, francés, japonés).

Una vez que hayamos decidido cuáles serán nuestros modelos y sus campos, debemos pensar en la relación que existe entre ellos. Django le permite definir relaciones de uno a uno (OneToOneField), de uno a muchos (ForeignKey) y de muchos a muchos (ManyToManyField).
Una vez que hayamos decidido cuáles serán nuestros modelos y sus campos, debemos pensar en la relación que existe entre ellos. Django le permite definir relaciones de uno a uno (`OneToOneField`), de uno a muchos (`ForeignKey`) y de muchos a muchos (`ManyToManyField`).

Con esto en mente, el diagrama de asociación UML a continuación muestra los modelos que definiremos en este caso (como recuadros). Como se mencionó anteriormente, hemos creado modelos para el libro (los detalles genéricos del libro), instancia del libro (estado de copias físicas específicas del libro disponible en el sistema) y autor. También hemos decidido tener un modelo para el género, para que los valores se puedan crear/seleccionar a través de la interfaz admin. Hemos decidido no tener un modelo para el BookInstance:status, en su lugar, hemos especificado directamente, en el código, los valores (LOAN_STATUS) porque no esperamos que cambien. Dentro de cada uno de los cuadros, puede ver el nombre del modelo, los nombres y tipos de campo, y también los métodos y sus tipos de devolución.
Con esto en mente, el diagrama de asociación UML a continuación muestra los modelos que definiremos en este caso (como recuadros). Como se mencionó anteriormente, hemos creado modelos para el libro (los detalles genéricos del libro), instancia del libro (estado de copias físicas específicas del libro disponible en el sistema) y autor. También hemos decidido tener un modelo para el género, para que los valores se puedan crear/seleccionar a través de la interfaz admin. Hemos decidido no tener un modelo para el `BookInstance:status`, en su lugar, hemos especificado directamente, en el código, los valores (`LOAN_STATUS`) porque no esperamos que cambien. Dentro de cada uno de los cuadros, puede ver el nombre del modelo, los nombres y tipos de campo, y también los métodos y sus tipos de devolución.

El diagrama también muestra las relaciones entre los modelos, incluida su _cardinalidad_. La cardinalidad expresa la cantidad de instancias (máximo y mínimo) de cada modelo que pueden estar presentes en la relación. Por ejemplo, la línea de conexión entre los cuadros muestra que _Book_ y _Genre_ están relacionados. Los números cercanos al modelo _Book_ muestran que un libro debe tener uno o más _Genres_ (tantos como desee), mientras que los números al otro lado de la línea al lado de _Genre_ muestran que puede tener cero o más libros asociados.

Expand Down
4 changes: 1 addition & 3 deletions files/es/learn/server-side/django/skeleton_website/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,11 +282,9 @@ urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Como paso final, crea un fichero dentro de tu carpeta catalog llamado **urls.py**, y añade el siguiente texto para definir la `urlpatterns` importada (vacía). Éste es donde añadimos nuestros patrones a medida que construimos la aplicación.
```python
from django.conf.urls import url
from django.urls import path
from . import views
urlpatterns = [
]
Expand Down
89 changes: 89 additions & 0 deletions files/es/web/api/element/copy_event/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: "Element: evento copy"
short-title: copy
slug: Web/API/Element/copy_event
l10n:
sourceCommit: c20c12fab32381b983b4148d712fda227d34e2bd
---

{{APIRef}}

El evento **`copy`** (copiar) de la [API del portapapeles](/es/docs/Web/API/Clipboard_API) se dispara cuando el usuario inicia la acción de copiar por medio de la interfaz del usuario del navegador.

Por defecto, la acción del evento es copiar la selección (si existe) al portapapeles.

Un manejador para este evento permite _modificar_ el contenido del portapapeles al llamar a {{domxref("DataTransfer.setData", "setData(format, data)")}} en la propiedad {{domxref("ClipboardEvent.clipboardData")}} del evento, y cancelar la acción por defecto del objecto utilizando {{domxref("Event/preventDefault", "event.preventDefault()")}}.

Sin embargo, el manejador no puede _leer_ los datos del portapapeles.

Es posible construir y lanzar un evento `copy` [sintético](/es/docs/Web/Events/Creating_and_triggering_events), pero esto no afectará al portapapeles del sistema.

La [burbuja](/es/docs/Learn/JavaScript/Building_blocks/Event_bubbling) del evento, es [cancelable](/es/docs/Web/API/Event/cancelable) y [compuesta](/es/docs/Web/API/Event/composed).

## Sintaxis

Use el nombre del evento en métodos como {{domxref("EventTarget.addEventListener", "addEventListener()")}}, o establezca una propiedad de manejador de eventos.

```js
addEventListener("copy", (event) => {});

oncopy = (event) => {};
```

## Tipo de evento

Un {{domxref("ClipboardEvent")}}. Hereda de {{domxref("Event")}}.

{{InheritanceDiagram("ClipboardEvent")}}

## Ejemplos

### Ejemplo en vivo

#### HTML

```html
<div class="source" contenteditable="true">Copie el texto de esta caja.</div>
<div class="target" contenteditable="true">Y péguelo en esta otra.</div>
```

```css hidden
div.source,
div.target {
border: 1px solid gray;
margin: 0.5rem;
padding: 0.5rem;
height: 1rem;
background-color: #e9eef1;
}
```

#### JavaScript

```js
const source = document.querySelector("div.source");

source.addEventListener("copy", (event) => {
const selection = document.getSelection();
event.clipboardData.setData("text/plain", selection.toString().toUpperCase());
event.preventDefault();
});
```

#### Resultado

{{ EmbedLiveSample('Ejemplo_en_vivo', '100%', '120px') }}

## Especificaciones

{{Specifications}}

## Compatibilidad con navegadores

{{Compat}}

## Véase también

- Eventos relacionados: {{domxref("Element/cut_event", "cut")}}, {{domxref("Element/paste_event", "paste")}}
- Este evento en {{domxref("Document")}} apunta a: {{domxref("Document/copy_event", "copy")}}
- Este evento en {{domxref("Window")}} apunta a: {{domxref("Window/copy_event", "copy")}}
Loading

0 comments on commit 5fb8e7a

Please sign in to comment.