Skip to content

Commit e76ccc9

Browse files
authored
Traducción de Sandpack, correcciones menores. (#833)
1 parent 15024ac commit e76ccc9

File tree

1 file changed

+50
-50
lines changed

1 file changed

+50
-50
lines changed

src/content/learn/javascript-in-jsx-with-curly-braces.md

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default function Avatar() {
4343

4444
Aquí, `"https://i.imgur.com/7vQD0fPs.jpg"` y `"Gregorio Y. Zara"` están siendo pasados como strings.
4545

46-
Pero, ¿qué sucede si quieres especificar dinámicamente el texto `src` o `alt`? Puedes **usar un valor de JavaScript reemplazando `"` y `"` con `{` y `}`**:
46+
Pero, ¿qué sucede si quieres especificar dinámicamente el texto `src` o `alt`? Puedes **usar un valor de JavaScript reemplazando las comillas de apertura `"` y de cierre `"` con las llaves de apertura `{` y de cierre `}`**:
4747

4848
<Sandpack>
4949

@@ -71,15 +71,15 @@ Observa la diferencia entre `className="avatar"`, que especifica un nombre de cl
7171

7272
## Usando llaves: Una ventana al mundo de JavaScript {/*using-curly-braces-a-window-into-the-javascript-world*/}
7373

74-
JSX es una forma especial de escribir JavaScript. Esto significa que es posible usar JavaScript dentro el, con llaves `{ }`. El siguiente ejemplo declara primero declara un nombre para el científico, `name`, luego lo incrusta con llaves dentro de `<h1>`:
74+
JSX es una forma especial de escribir JavaScript. Eso significa que es posible utilizar JavaScript dentro de él, con llaves `{ }`. El ejemplo siguiente declara primero un nombre para el científico, `name`, y luego lo incrusta con llaves dentro de `<h1>`:
7575

7676
<Sandpack>
7777

7878
```js
7979
export default function TodoList() {
8080
const name = 'Gregorio Y. Zara';
8181
return (
82-
<h1>{name}'s To Do List</h1>
82+
<h1>Lista de tareas pendientes de {name}</h1>
8383
);
8484
}
8585
```
@@ -97,14 +97,14 @@ const today = new Date();
9797

9898
function formatDate(date) {
9999
return new Intl.DateTimeFormat(
100-
'en-US',
100+
'es-ES',
101101
{ weekday: 'long' }
102102
).format(date);
103103
}
104104

105105
export default function TodoList() {
106106
return (
107-
<h1>To Do List for {formatDate(today)}</h1>
107+
<h1>Lista de tareas pendientes del {formatDate(today)}</h1>
108108
);
109109
}
110110
```
@@ -115,14 +115,14 @@ export default function TodoList() {
115115

116116
Solo puedes usar llaves de dos maneras dentro de JSX:
117117

118-
1. **Como texto** directamente dentro de una etiqueta JSX: `<h1>{name}'s To Do List</h1>` funciona, pero `<{tag}>Gregorio Y. Zara's To Do List</{tag}>` no lo hará.
119-
2. **Como atributos** inmediatamente después del signo `=`: `src={avatar}` leerá la variable `avatar`, pero `src="{avatar}"` pasará el string `{avatar}`.
118+
1. **Como texto** directamente dentro de una etiqueta JSX: `<h1>Lista de tareas pendientes de {name}</h1>` funcionará, pero `<{tag}>Lista de tareas pendientes de Gregorio Y. Zara</{tag}>` no lo hará.
119+
2. **Como atributos** inmediatamente después del signo `=`: `src={avatar}` leerá la variable `avatar`, pero `src="{avatar}"` pasará el string `"{avatar}"`.
120120

121121
## Usando "llaves dobles": CSS y otros objetos en JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
122122

123123
Además de strings, números, y otras expresiones de JavaScript, incluso puedes pasar objetos en JSX. Los objetos también se indican con llaves, como `{ name: "Hedy Lamarr", inventions: 5 }`. Por lo tanto, para pasar un objeto de JavaScript en JSX, debes envolver el objeto en otro par de llaves: `person={{ name: "Hedy Lamarr", inventions: 5 }}`.
124124

125-
Puedes ver esto con estilos CSS en línea en JSX. React no requiere que uses estilos en línea (las clases CSS funcionan muy bien en la mayoría de los casos). Pero cuando necesites un estilo en línea, pasa un objeto al atributo `style`:
125+
Puedes ver esto con estilos en línea CSS, en JSX. React no requiere que uses estilos en línea (las clases CSS funcionan muy bien para la mayoría de los casos). Pero cuando necesitas un estilo en línea, pasas un objeto al atributo `style`:
126126

127127
<Sandpack>
128128

@@ -133,9 +133,9 @@ export default function TodoList() {
133133
backgroundColor: 'black',
134134
color: 'pink'
135135
}}>
136-
<li>Improve the videophone</li>
137-
<li>Prepare aeronautics lectures</li>
138-
<li>Work on the alcohol-fuelled engine</li>
136+
<li>Mejorar el videoteléfono</li>
137+
<li>Preparar clases de aeronáutica</li>
138+
<li>Trabajar en el motor de alcohol</li>
139139
</ul>
140140
);
141141
}
@@ -161,7 +161,7 @@ Realmente puedes ver el objeto JavaScript dentro de las llaves cuando lo escribe
161161
}>
162162
```
163163

164-
La próxima vez que veas `{{` y `}}` en JSX, ¡sepa que no es más que un objeto dentro de las llaves de JSX!
164+
La próxima vez que veas `{{` y `}}` en JSX, ¡sabe que no es más que un objeto dentro de las llaves JSX!
165165

166166
<Pitfall>
167167

@@ -187,16 +187,16 @@ const person = {
187187
export default function TodoList() {
188188
return (
189189
<div style={person.theme}>
190-
<h1>{person.name}'s Todos</h1>
190+
<h1>Tareas pendientes de {person.name}</h1>
191191
<img
192192
className="avatar"
193193
src="https://i.imgur.com/7vQD0fPs.jpg"
194194
alt="Gregorio Y. Zara"
195195
/>
196196
<ul>
197-
<li>Improve the videophone</li>
198-
<li>Prepare aeronautics lectures</li>
199-
<li>Work on the alcohol-fuelled engine</li>
197+
<li>Mejorar el videoteléfono</li>
198+
<li>Preparar clases de aeronáutica</li>
199+
<li>Trabajar en el motor de alcohol</li>
200200
</ul>
201201
</div>
202202
);
@@ -223,11 +223,11 @@ const person = {
223223
};
224224
```
225225

226-
El componente puede usar estos valores de `persona` así:
226+
El componente puede usar estos valores de `person` así:
227227

228228
```js
229229
<div style={person.theme}>
230-
<h1>{person.name}'s Todos</h1>
230+
<h1>Tareas pendientes de {person.name}</h1>
231231
```
232232

233233
JSX es muy mínimo como lenguaje de plantillas porque te permite organizar datos y lógica usando JavaScript.
@@ -263,16 +263,16 @@ const person = {
263263
export default function TodoList() {
264264
return (
265265
<div style={person.theme}>
266-
<h1>{person}'s Todos</h1>
266+
<h1>Tareas pendientes de {person}</h1>
267267
<img
268268
className="avatar"
269269
src="https://i.imgur.com/7vQD0fPs.jpg"
270270
alt="Gregorio Y. Zara"
271271
/>
272272
<ul>
273-
<li>Improve the videophone</li>
274-
<li>Prepare aeronautics lectures</li>
275-
<li>Work on the alcohol-fuelled engine</li>
273+
<li>Mejorar el videoteléfono</li>
274+
<li>Preparar clases de aeronáutica</li>
275+
<li>Trabajar en el motor de alcohol</li>
276276
</ul>
277277
</div>
278278
);
@@ -293,9 +293,9 @@ body > div > div { padding: 20px; }
293293

294294
<Solution>
295295

296-
Esto sucede porque este ejemplo renderiza *un objeto en sí mismo* en el marcado en lugar de un string: `<h1>{person}'s Todos</h1>`¡está tratando de renderizar todo el objeto `person`! Incluir objetos sin procesar como contenido de texto arroja un error porque React no sabe cómo quieres mostrarlos.
296+
Esto sucede porque este ejemplo renderiza *un objeto en sí mismo* en el marcado en lugar de un string: `<h1>Tareas pendientes de {person}</h1>`¡está tratando de renderizar todo el objeto `person`! Incluir objetos sin procesar como contenido de texto arroja un error porque React no sabe cómo quieres mostrarlos.
297297

298-
Para arreglarlo, reemplaza `<h1>{person}'s Todos</h1>` con `<h1>{person.name}'s Todos</h1>`:
298+
Para arreglarlo, reemplaza `<h1>Tareas pendientes de {person}</h1>` con `<h1>Tareas pendientes de {person.name}</h1>`:
299299

300300
<Sandpack>
301301

@@ -311,16 +311,16 @@ const person = {
311311
export default function TodoList() {
312312
return (
313313
<div style={person.theme}>
314-
<h1>{person.name}'s Todos</h1>
314+
<h1>Tareas pendientes de {person.name}</h1>
315315
<img
316316
className="avatar"
317317
src="https://i.imgur.com/7vQD0fPs.jpg"
318318
alt="Gregorio Y. Zara"
319319
/>
320320
<ul>
321-
<li>Improve the videophone</li>
322-
<li>Prepare aeronautics lectures</li>
323-
<li>Work on the alcohol-fuelled engine</li>
321+
<li>Mejorar el videoteléfono</li>
322+
<li>Preparar clases de aeronáutica</li>
323+
<li>Trabajar en el motor de alcohol</li>
324324
</ul>
325325
</div>
326326
);
@@ -355,16 +355,16 @@ const person = {
355355
export default function TodoList() {
356356
return (
357357
<div style={person.theme}>
358-
<h1>{person.name}'s Todos</h1>
358+
<h1>Tareas pendientes de {person.name}</h1>
359359
<img
360360
className="avatar"
361361
src="https://i.imgur.com/7vQD0fPs.jpg"
362362
alt="Gregorio Y. Zara"
363363
/>
364364
<ul>
365-
<li>Improve the videophone</li>
366-
<li>Prepare aeronautics lectures</li>
367-
<li>Work on the alcohol-fuelled engine</li>
365+
<li>Mejorar el videoteléfono</li>
366+
<li>Preparar clases de aeronáutica</li>
367+
<li>Trabajar en el motor de alcohol</li>
368368
</ul>
369369
</div>
370370
);
@@ -398,16 +398,16 @@ const person = {
398398
export default function TodoList() {
399399
return (
400400
<div style={person.theme}>
401-
<h1>{person.name}'s Todos</h1>
401+
<h1>Tareas pendientes de {person.name}</h1>
402402
<img
403403
className="avatar"
404404
src={person.imageUrl}
405405
alt="Gregorio Y. Zara"
406406
/>
407407
<ul>
408-
<li>Improve the videophone</li>
409-
<li>Prepare aeronautics lectures</li>
410-
<li>Work on the alcohol-fuelled engine</li>
408+
<li>Mejorar el videoteléfono</li>
409+
<li>Preparar clases de aeronáutica</li>
410+
<li>Trabajar en el motor de alcohol</li>
411411
</ul>
412412
</div>
413413
);
@@ -426,9 +426,9 @@ body > div > div { padding: 20px; }
426426

427427
#### Escribe una expresión dentro de llaves JSX {/*write-an-expression-inside-jsx-curly-braces*/}
428428

429-
En el objeto a continuación, la URL de la imagen completa está dividida en 4 partes: URL base, `imageId`, `imageSize` y la extensión del archivo.
429+
En el objeto a continuación, la URL de la imagen completa está dividida en 4 partes: `baseURL`, `imageId`, `imageSize` y la extensión del archivo.
430430

431-
Queremos que la URL de la imagen combine esos atributos juntos: base URL (siempre `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), y la extensión del archivo (siempre `'.jpg'`). Sin embargo, algo está mal con la forma en que la etiqueta `<img>` especifica su `src`.
431+
Queremos que la URL de la imagen combine esos atributos juntos: `baseURL` (siempre `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), y la extensión del archivo (siempre `'.jpg'`). Sin embargo, algo está mal con la forma en que la etiqueta `<img>` especifica su `src`.
432432

433433
¿Puedes arreglarlo?
434434

@@ -450,16 +450,16 @@ const person = {
450450
export default function TodoList() {
451451
return (
452452
<div style={person.theme}>
453-
<h1>{person.name}'s Todos</h1>
453+
<h1>Tareas pendientes de {person.name}</h1>
454454
<img
455455
className="avatar"
456456
src="{baseUrl}{person.imageId}{person.imageSize}.jpg"
457457
alt={person.name}
458458
/>
459459
<ul>
460-
<li>Improve the videophone</li>
461-
<li>Prepare aeronautics lectures</li>
462-
<li>Work on the alcohol-fuelled engine</li>
460+
<li>Mejorar el videoteléfono</li>
461+
<li>Preparar clases de aeronáutica</li>
462+
<li>Trabajar en el motor de alcohol</li>
463463
</ul>
464464
</div>
465465
);
@@ -501,16 +501,16 @@ const person = {
501501
export default function TodoList() {
502502
return (
503503
<div style={person.theme}>
504-
<h1>{person.name}'s Todos</h1>
504+
<h1>Tareas pendientes de {person.name}</h1>
505505
<img
506506
className="avatar"
507507
src={baseUrl + person.imageId + person.imageSize + '.jpg'}
508508
alt={person.name}
509509
/>
510510
<ul>
511-
<li>Improve the videophone</li>
512-
<li>Prepare aeronautics lectures</li>
513-
<li>Work on the alcohol-fuelled engine</li>
511+
<li>Mejorar el videoteléfono</li>
512+
<li>Preparar clases de aeronáutica</li>
513+
<li>Trabajar en el motor de alcohol</li>
514514
</ul>
515515
</div>
516516
);
@@ -545,16 +545,16 @@ const person = {
545545
export default function TodoList() {
546546
return (
547547
<div style={person.theme}>
548-
<h1>{person.name}'s Todos</h1>
548+
<h1>Tareas pendientes de {person.name}</h1>
549549
<img
550550
className="avatar"
551551
src={getImageUrl(person)}
552552
alt={person.name}
553553
/>
554554
<ul>
555-
<li>Improve the videophone</li>
556-
<li>Prepare aeronautics lectures</li>
557-
<li>Work on the alcohol-fuelled engine</li>
555+
<li>Mejorar el videoteléfono</li>
556+
<li>Preparar clases de aeronáutica</li>
557+
<li>Trabajar en el motor de alcohol</li>
558558
</ul>
559559
</div>
560560
);

0 commit comments

Comments
 (0)