diff --git a/src/content/tutorials/es/v2_transition.mdx b/src/content/tutorials/es/v2_transition.mdx
new file mode 100644
index 0000000000..5c74bf2e1d
--- /dev/null
+++ b/src/content/tutorials/es/v2_transition.mdx
@@ -0,0 +1,460 @@
+---
+title: "Guía para profesores sobre p5.js v2"
+description: Una guía para educadores de secundaria y preparatoria sobre la transición desde versiones anteriores a la versión 2 de p5.js.
+category: "2.0"
+featuredImage: ../images/featured/v2-transition.gif
+featuredImageAlt: Diagrama animado de los cambios en la API entre la versión 1 y la versión 2 de p5.js
+relatedContent:
+ references:
+ - en/p5/mousebutton
+ - en/p5/keyispressed
+ - en/p5/loadimage
+ - en/p5/keyisdown
+ examples:
+ - en/16_parallel_loading_promise/01_async_image_loader
+authors:
+ - Adrienne Gifford
+---
+import Callout from "../../../components/Callout/index.astro";
+
+## p5.js v2 Guía de Transición para Educadores de Secundaria y Preparatoria
+
+Siendo educador de secundaria, entiendo que una nueva versión de una herramienta en la que confías se puede sentir como un gran ajuste, sobre todo cuando tienes una serie de clases y actividades que manejas y quieres.
+
+Si te sientes aprehensivo de la transición a la versión 2 de p5.js, esta guía es para tranquilizarte. La mayoría de lo que hacen tus estudiantes funciona exactamente igual a como era antes.
+
+Después de revisar múltiples curriculums de escuelas secundarias y escuelas de preparatoria ([CS4All Creative Web](https://blueprint.cs4all.nyc/curriculum/creative-web/), [CS4All Introduction to Computational Media](https://blueprint.cs4all.nyc/curriculum/intro-to-computational-media/), [CodeHS Digital Art with p5.js](https://codehs.com/course/p5-js/overview), [CSinSF Creative Computing](https://sites.google.com/sfusd.edu/csinsfcreativecomputing/home?authuser=0), [Processing Foundation Art + Code](https://processing.github.io/art-plus-code/codeAsCreativeMedium-intro/)) solamente dos áreas requieren actualizarse al ir de p5.js v1 hacia v2.
+
+* Eventos de Input
+* Carga de Recursos
+
+Aunque existen [otras actualizaciones en v2](https://github.com/processing/p5.js-compatibility) (así como cambios a formas curvas, medición de texto, y funciones utilitarias), éstas no aparecen generalmente en los curriculums de escuelas secundarias y escuelas preparatorias, y es poco probable que impacten en tu trabajo con estudiantes.
+
+Esta guía te explica los cambios más comunes que encontrarás en un aula de secundaria o preparatoria. Aprenderás cómo actualizar tu código para la versión 2 de p5.js, y cuándo los complementos de compatibilidad puedan ser útiles para sketches antiguos.
+
+He tratado de incluir solo lo que necesitas y nada más, para que puedas ponerte al día fácilmente y estar seguro de enseñar con la versión 2 de p5.js.
+
+## Versiones en el Editor Web
+
+La mayoría del tiempo, tus estudiantes y tú pueden usar la versión 2 de p5.js sin hacer cambios.
+
+Sin embargo, si abres un sketch viejo (por ejemplo, algo que un estudiante creó en años anteriores o un ejemplo desde un curriculum diseñado para la versión 1 de p5.js), y su comportamiento no es el mismo, tienes estas opciones:
+
+* **Actualizar el sketch** usando el ejemplo de esta guía
+* Activar el **complemento de compatibilidad**
+* Volver al sketch para la versión 1 de p5.js en el Editor Web
+
+
+
+
+## Eventos de Input
+
+Es probable que los eventos de Input sean el primer lugar donde notes diferencias en la versión 2 de p5.js. Los estudiantes pueden usar eventos de input para:
+
+* Seleccionar o alternar botones
+* Dibujar con el ratón mientras se mantiene pulsado
+* Cambiar variables al pulsar una tecla
+* Borrar o guardar el lienzo
+* Mover un personaje de un juego con las teclas de flecha
+
+Esta sección abarca el código de eventos de input que probablemente verás en las aulas de secundaria o preparatoria y los cambios introducidos en la versión 2 de p5.js.
+
+### Clicks del Mouse
+
+
+En la versión 1 de p5.js, verificar por un botón específico del mouse se veía así:
+
+```js
+if (mouseButton === RIGHT) {
+ // haz algo (p5.js v1)
+}
+```
+
+En la versión 2 de p5.js, se ve así:
+
+```js
+if (mouseButton.right) {
+ // haz algo (p5.js v2)
+}
+```
+
+**Referencia:** [mouseButton](/reference/p5/mouseButton/)
+
+
| + +p5.js v1 + + | + ++ +p5.js v2 + + | + ++ +Referencia + + | + +
|---|---|---|
| + +`mouseButton === RIGHT` + + + | + ++ +`mouseButton.right` + + | + ++ +[mouseButton](https://beta.p5js.org/reference/p5/mouseButton/) + + | + +
|
+
+`keyIsPressed` `key === UP_ARROW` + + |
+
++ +`keyIsDown(UP_ARROW)` + + | + ++ +[keyIsDown](https://beta.p5js.org/reference/p5/keyIsDown/) + + | + +
| + +p5.js v1 + + | + ++ +p5.js v2 + + | + + +
|---|---|
| + +```js +function preload(){ + img = loadImage( + "cat.jpg" + ); +} +``` + + | + ++ +```js +async function setup() { + createCanvas(100, 100); + img = await loadImage( + "cat.jpg" + ); +} +``` + + | + + +
| + +p5.js v1 + + | + ++ +p5.js v2 + + | + ++ +Referencia + + | + +
|---|---|---|
| +Eventos de Input + | +||
| + +`mouseButton === RIGHT` + + + | + ++ +`mouseButton.right` + + | + ++ +[mouseButton](https://beta.p5js.org/reference/p5/mouseButton/) + + | + +
|
+
+`keyIsPressed` +`key === UP_ARROW` + + |
+
++ +`keyIsDown(UP_ARROW)` + + | + ++ +[keyIsDown](https://beta.p5js.org/reference/p5/keyIsDown/) + + | + +
| +Carga de Recursos + | +||
| + +```js +function preload(){ + img = loadImage("cat.jpg"); +} +``` + + | + ++ +```js +async function setup() { + createCanvas(100, 100); + img = await loadImage("cat.jpg"); +} +``` + + | + ++ +[async_await](https://beta.p5js.org/reference/p5/async_await/) + + | + +