Skip to content

Commit 77844b3

Browse files
i18n(es): create astro-zod.mdx, configuring-astro.mdx & typescript.mdx (#14224)
Co-authored-by: Yan <61414485+yanthomasdev@users.noreply.github.com>
1 parent 170d368 commit 77844b3

8 files changed

Lines changed: 667 additions & 43 deletions

File tree

src/content/docs/es/basics/astro-components.mdx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: Componentes
33
description: Una introducción a los componentes de Astro.
44
i18nReady: true
55
---
6+
67
import ReadMore from '~/components/ReadMore.astro';
78

89
**Los componentes de Astro** son los elementos básicos de cualquier proyecto de Astro. Son componentes de plantillas HTML sin tiempo de ejecución del lado del cliente y utilizan la extensión de archivo `.astro`.
@@ -13,7 +14,7 @@ Si sabes HTML, ya sabes lo suficiente para escribir tu primer componente de Astr
1314
<ReadMore>Más información en la [referencia sintáctica de Astro](/es/reference/astro-syntax/).</ReadMore>
1415
:::
1516

16-
Los componentes de Astro son extremadamente flexibles. Un componente de Astro puede ser tan pequeño como un fragmento de HTML, como una colección de etiquetas comunes `<meta>` que facilitan el trabajo con SEO. Los componentes pueden ser elementos de interfaz de usuario reutilizables, como una cabecera o una tarjeta de perfil. Los componentes de Astro pueden incluso contener un diseño de página completo o, cuando se encuentran en la carpeta especial `src/pages/`, ser una página completa.
17+
Los componentes Astro son extremadamente flexibles. Un componente de Astro puede ser tan pequeño como un fragmento de HTML, como una colección de etiquetas comunes `<meta>` que facilitan el trabajo con SEO. Los componentes pueden ser elementos de interfaz de usuario reutilizables, como una cabecera o una tarjeta de perfil. Los componentes de Astro pueden incluso contener un diseño de página completo o, cuando se encuentran en la carpeta especial `src/pages/`, ser una página completa.
1718

1819
Lo más importante que hay que saber sobre los componentes de Astro es que **no se renderizan en el cliente**. Se renderizan en HTML en el momento de la compilación o bajo demanda. Puedes incluir código JavaScript dentro del frontmatter de tu componente, y todo será eliminado de la página final enviada a los navegadores de tus usuarios. El resultado es un sitio más rápido, sin ninguna huella de JavaScript añadida por defecto.
1920

@@ -50,7 +51,7 @@ import UnComponenteAstro from '../components/UnComponenteAstro.astro';
5051
import UnComponenteReact from '../components/UnComponenteReact.jsx';
5152
import algunosDatos from '../data/pokemon.json';
5253
53-
// Acceder a props recibidas, por ejemplo `<X title="Hola Mundo" />`
54+
// Acceder a propiedades recibidas, por ejemplo `<X title="Hola Mundo" />`
5455
const { title } = Astro.props;
5556
5657
// Consultar datos externos, de una API privada o base de datos
@@ -89,7 +90,7 @@ const { title } = Astro.props;
8990
9091
<h1>¡Hola mundo!</h1>
9192
92-
<!-- Utiliza props y otras variables definidas en el script del componente: -->
93+
<!-- Usa propiedades y otras variables definidas en el script del componente: -->
9394
<p>{title}</p>
9495
9596
<!-- Retrasa el renderizado del componente y proporciona contenido de carga alternativo: -->
@@ -124,22 +125,22 @@ import Button from './Button.astro';
124125
</div>
125126
```
126127

127-
## Props de componentes
128+
## Propiedades de componente
128129

129-
Un componente de Astro puede definir y aceptar props. Estas props estarán disponibles para ser utilizadas en el renderizado del maquetado HTML y además estarán disponibles en el script del componente de manera global dentro del objeto `Astro.props`.
130+
Un componente Astro puede definir y aceptar propiedades. Estas propiedades estarán disponibles para ser utilizadas en el renderizado del maquetado HTML y además estarán disponibles en el script del componente de manera global dentro del objeto `Astro.props`.
130131

131-
Aquí vemos un ejemplo de un componente que recibe una prop `saludo` y otra `nombre`. Fíjate que las props a recibir están desestructuradas del objeto global `Astro.props`.
132+
Aquí vemos un ejemplo de un componente que recibe una propiedad `saludo` y otra `nombre`. Fíjate que las propiedades a recibir están desestructuradas del objeto global `Astro.props`.
132133

133134
```astro "Astro.props"
134135
---
135136
// src/components/GreetingHeadline.astro
136-
// Utilización: <GreetingHeadline saludo="Qué tal" nombre="Amiga" />
137+
// Uso: <GreetingHeadline saludo="Qué tal" nombre="Amiga" />
137138
const { saludo, nombre } = Astro.props
138139
---
139140
<h2>{saludo}, {nombre}!</h2>
140141
```
141142

142-
Este componente, cuando se importa y renderiza en otros componentes, layouts o páginas de Astro, puede pasar estas props como atributos:
143+
Este componente, cuando se importa y renderiza en otros componentes, layouts o páginas de Astro, puede pasar estas propiedades como atributos:
143144

144145
```astro /(\w+)=\S+/
145146
---
@@ -152,7 +153,7 @@ const name = 'Astro';
152153
<p>¡Espero que tenga un día maravilloso!</p>
153154
```
154155

155-
También puedes definir props con TypeScript usando una interfaz de tipo `Props`. Astro recogerá automáticamente la interfaz `Props` en el frontmatter y dará advertencias/errores de tipo para tu proyecto. A estas propiedades también se les puede dar valores predeterminados cuando se desestructuran desde `Astro.props`.
156+
También puedes definir propiedades con TypeScript usando una interfaz de tipo `Props`. Astro recogerá automáticamente la interfaz `Props` en el frontmatter y dará advertencias/errores de tipo para tu proyecto. A estas propiedades también se les puede dar valores predeterminados cuando se desestructuran desde `Astro.props`.
156157

157158
```astro ins={3-6}
158159
---
@@ -167,7 +168,7 @@ const { saludo = "Hola", nombre } = Astro.props;
167168
<h2>{saludo}, {nombre}!</h2>
168169
```
169170

170-
A los props de componentes se les pueden dar valores predeterminados para usar cuando no se proporciona ninguno.
171+
A las propiedades de componentes se les pueden dar valores predeterminados para usar cuando no se proporciona ninguno.
171172

172173
```astro ins="= \"Hola\"" ins="= \"Astronauta\""
173174
---

src/content/docs/es/basics/layouts.mdx

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ title: Plantillas
33
description: Una introducción a las plantillas de Astro.
44
i18nReady: true
55
---
6-
import ReadMore from '~/components/ReadMore.astro'
76

8-
**Las plantillas** son [componentes de Astro](/es/basics/astro-components/) para proporcionar una estructura reutilizable, como una plantilla de página.
7+
import ReadMore from '~/components/ReadMore.astro';
8+
9+
**Las plantillas** son [componentes Astro](/es/basics/astro-components/) para proporcionar una estructura reutilizable, como una plantilla de página.
910

1011
Convencionalmente usamos el término "plantilla" para proporcional elementos compartidos en la interfaz del usuario por medio de páginas, como encabezados, barras de navegación y pies de página. Una plantilla proporciona a [Astro, Markdown o páginas MDX](/es/basics/astro-pages/) con:
1112
- una **página shell** (con estiquetas `<html>`, `<head>` y `<body>`)
1213
- un [**`<slot/>`**](/es/basics/astro-components/#slots) para especificar dónde colocar el contenido de la página.
1314

14-
Pero, ¡no hay nada especial acerca de los componentes plantilla! Pueden [aceptar props](/es/basics/astro-components/#props-de-componentes) e [importar y usar otros componentes](/es/basics/astro-components/#estructura-de-un-componente) como cualquier otro componente de Astro. Pueden incluir [componentes de framework](/es/guides/framework-components/) y [scripts de lado del cliente](/es/guides/client-side-scripts/). Ni siquiera tienen que proporcionar un plantilla entera, en su lugar se pueden utilizar como plantillas parciales.
15+
Pero, ¡no hay nada especial acerca de los componentes plantilla! Pueden [aceptar propiedades](/es/basics/astro-components/#propiedades-de-componente) e [importar y usar otros componentes](/es/basics/astro-components/#estructura-de-un-componente) como cualquier otro componente de Astro. Pueden incluir [componentes de framework](/es/guides/framework-components/) y [scripts de lado del cliente](/es/guides/client-side-scripts/). Ni siquiera tienen que proporcionar un plantilla entera, en su lugar se pueden utilizar como plantillas parciales.
1516

1617
Sin embargo, si un componente de plantilla contiene una página shell, su elemento `<html>` debe ser el padre de todos los demás elementos en el componente.
1718

@@ -65,7 +66,7 @@ import MySiteLayout from '../layouts/MySiteLayout.astro';
6566

6667
## Usando TypeScript con plantillas
6768

68-
Cualquier plantilla de Astro puede ser modificada para introducir seguridad de tipos y autocompletado proporcionando los tipos en las props:
69+
Cualquier plantilla de Astro puede ser modificada para introducir seguridad de tipos y autocompletado proporcionando los tipos en las propiedades:
6970

7071
```astro ins={2-7} title="src/components/MyLayout.astro"
7172
---
@@ -106,12 +107,12 @@ Esto no se reconoce como una propiedad especial cuando se utiliza [colecciones d
106107

107108
```markdown title="src/pages/page.md" {2}
108109
---
109-
layout: ../layouts/BlogPostLayout.astro
110-
title: "¡Hola, mundo!"
111-
author: "Matthew Phillips"
112-
date: "09 Aug 2022"
110+
layout: '../layouts/BlogPostLayout.astro'
111+
title: '¡Hola, mundo!'
112+
author: 'Matthew Phillips'
113+
date: '09 Aug 2022'
113114
---
114-
Todas las propiedades frontmatter están disponibles como props en un componente plantilla de Astro.
115+
Todas las propiedades frontmatter están disponibles como propiedades en un componente plantilla de Astro.
115116

116117
La propiedad `layout` es la única especial proporcionada por Astro.
117118

@@ -144,7 +145,7 @@ const { frontmatter } = Astro.props;
144145
</html>
145146
```
146147

147-
Puedes establecer el tipo de una plantilla como [`Props`](/es/guides/typescript/#component-props) con el ayudante `MarkdownLayoutProps`:
148+
Puedes establecer el tipo de una plantilla como [`Props`](/es/guides/typescript/#propiedades-de-componente) con el ayudante `MarkdownLayoutProps`:
148149

149150
```astro title="src/layouts/BlogPostLayout.astro" ins={2,4-9}
150151
---
@@ -175,12 +176,12 @@ const { frontmatter, url } = Astro.props;
175176
</html>
176177
```
177178

178-
### Props de plantillas Markdown
179+
### Propiedades de plantillas Markdown
179180

180181
Una plantilla Markdown/MDX tendrá acceso a la siguiente información a través de `Astro.props`:
181182

182-
- **`file`** - La ruta absoluta de este archivo (por ejemplo, `/home/user/projects/.../file.md`).
183-
- **`url`** - La URL de la página (por ejemplo, `/en/guides/markdown-content`).
183+
- **`file`** - La ruta absoluta de este archivo (p. ej., `/home/user/projects/.../file.md`).
184+
- **`url`** - La URL de la página (p. ej., `/en/guides/markdown-content`).
184185
- **`frontmatter`** - Todo el frontmatter del documento Markdown o MDX.
185186
- **`frontmatter.file`** - La misma que la propiedad de nivel superior `file`.
186187
- **`frontmatter.url`** - La misma que la propiedad de nivel superior `url`.
@@ -199,7 +200,7 @@ Una plantilla Markdown tendrá acceso a todas sus [propiedades exportadas](/es/g
199200

200201
### Importando Plantillas Manualmente (MDX)
201202

202-
También puedes utilizar la propiedad especial Markdown layout en el frontmatter de los archivos MDX para pasar los props `frontmatter` y `headings` directamente a un componente layout especificado del mismo modo.
203+
También puedes utilizar la propiedad especial Markdown layout en el frontmatter de los archivos MDX para pasar las propiedades `frontmatter` y `headings` directamente a un componente layout especificado del mismo modo.
203204

204205
Para pasar información a tu plantilla MDX que no existe (o no puede existir) en su frontmatter, puede importar y utilizar un componente `<Layout />`. Funciona como cualquier otro componente de Astro, y no recibirá ningún prop automáticamente. Pásale directamente los accesorios que necesites:
205206

@@ -212,7 +213,7 @@ publishDate: '21 de Septiembre de 2022'
212213
import BaseLayout from '../../layouts/BaseLayout.astro';
213214

214215
export function fancyJsHelper() {
215-
return "¡Intenta hacer eso con YAML!";
216+
return '¡Intenta hacer eso con YAML!';
216217
}
217218

218219
<BaseLayout title={frontmatter.title} fancyJsHelper={fancyJsHelper}>
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
---
2+
title: Resumen de la configuración
3+
description: Descubre las diferentes formas en las que puedes configurar y personalizar tu nuevo proyecto y tu experiencia de desarrollo.
4+
i18nReady: true
5+
---
6+
7+
import ReadMore from '~/components/ReadMore.astro';
8+
9+
Astro es un framework flexible y neutral que te permite configurar tu proyecto de muchas formas diferentes. Esto significa que empezar con un nuevo proyecto puede resultar abrumador: ¡no hay una "única manera correcta" de configurar tu proyecto de Astro!
10+
11+
Las guías en la sección de "Configuración" te ayudarán a familiarizarte con los distintos archivos que te permiten configurar y personalizar diversos aspectos de tu proyecto y de tu entorno de desarrollo.
12+
13+
Si este es tu primer proyecto con Astro, o si hace tiempo que no configuras un proyecto nuevo, consulta las siguientes guías y la documentación de referencia para obtener ayuda.
14+
15+
## El archivo de configuración de Astro
16+
17+
El [archivo de configuración de Astro](/es/reference/configuration-reference/) es un archivo JavaScript que se incluye en el directorio raíz de cada proyecto inicial:
18+
19+
```js
20+
// astro.config.mjs
21+
import { defineConfig } from 'astro/config';
22+
23+
export default defineConfig({
24+
// tus opciones de configuración aquí...
25+
});
26+
```
27+
28+
Solo es necesario si tienes algo que configurar, pero la mayoría de los proyectos usarán este archivo. La función auxiliar `defineConfig()` proporciona IntelliSense automático en tu IDE y es donde añadirás todas tus opciones de configuración para indicar a Astro cómo compilar y generar tu proyecto en HTML.
29+
30+
Recomendamos utilizar el formato de archivo predeterminado `.mjs` en la mayoría de los casos, o `.ts` si deseas escribir TypeScript en tu archivo de configuración. No obstante, el formato `astro.config.js` es compatible.
31+
32+
<ReadMore>Consulta la [referencia de configuración](/es/reference/configuration-reference/) de Astro para obtener una descripción completa de todas las opciones de configuración disponibles.</ReadMore>
33+
34+
## El archivo de configuración de TypeScript
35+
36+
Todos los proyectos iniciales de Astro incluyen un archivo `tsconfig.json` en el proyecto. El [script de un componente](/es/basics/astro-components/#script-de-un-componente) Astro está escrito en TypeScript, lo que proporciona las herramientas de edición de Astro y te permite, si lo deseas, añadir sintaxis a tu código JavaScript para la comprobación de tipos del código de tu propio proyecto.
37+
38+
Usa el archivo `tsconfig.json` para configurar la plantilla de TypeScript que realizará la comprobación de tipos en tu código, configurar los plugins de TypeScript, establecer alias de importación y mucho más.
39+
40+
<ReadMore>Lee la [guía de TypeScript](/es/guides/typescript/) de Astro para obtener una visión general completa de las opciones de TypeScript y los tipos de utilidad integrados en Astro.</ReadMore>
41+
42+
## Experiencia en desarrollo
43+
44+
Mientras trabajas en modo de desarrollo, puedes aprovechar tu editor de código y otras herramientas para mejorar la experiencia de desarrollo con Astro.
45+
46+
Astro ofrece su propia extensión oficial para VS Code y es compatible con otras herramientas de edición muy populares. Astro también ofrece una barra de herramientas personalizable que se muestra en la vista previa del navegador mientras el servidor de desarrollo está en funcionamiento. Puedes instalar e incluso crear tus propias aplicaciones para la barra de herramientas con el fin de añadir funcionalidades adicionales.
47+
48+
<ReadMore>Lee las guías de Astro sobre [opciones de configuración del editor](/es/editor-setup/) y [cómo utilizar la barra de herramientas de desarrollo](/es/guides/dev-toolbar/) para aprender a personalizar tu experiencia de desarrollo.</ReadMore>
49+
50+
## Tareas habituales en los nuevos proyectos
51+
52+
A continuación te indicamos algunos primeros pasos que podrías dar al iniciar un nuevo proyecto de Astro.
53+
54+
### Agrega tu dominio de despliegue
55+
56+
Para generar el mapa del sitio y crear URL canónicas, configura la URL de despliegue en la opción [`site`](/es/reference/configuration-reference/#site). Si vas a realizar el despliegue en una ruta (p. ej., `www.example.com/docs`), también puedes configurar una [`base`](/es/reference/configuration-reference/#base) para la raíz de tu proyecto.
57+
58+
Además, los distintos servidores de despliegue pueden comportarse de forma diferente en lo que respecta a las barras al final de las URL (p. ej., `example.com/about` frente a `example.com/about/`). Una vez desplegado el sitio, es posible que tengas que configurar la opción [`trailingSlash`](/es/reference/configuration-reference/#trailingslash).
59+
60+
```js title="astro.config.mjs"
61+
import { defineConfig } from 'astro/config';
62+
63+
export default defineConfig({
64+
site: 'https://www.example.com',
65+
base: '/docs',
66+
trailingSlash: 'always',
67+
});
68+
```
69+
70+
### Agregar metadatos del sitio
71+
72+
Astro no usa su archivo de configuración para datos comunes de SEO o metadatos, sino únicamente para la información necesaria para compilar el código de tu proyecto y convertirlo a HTML.
73+
74+
En su lugar, esta información se agrega al `<head>` de tu página usando las etiquetas HTML estándar `<link>` y `<meta>`, igual que si estuvieras escribiendo páginas HTML convencionales.
75+
76+
Una práctica habitual en los sitios web Astro es crear un [componente `.astro`](/es/basics/astro-components/) `<Head />` que se pueda añadir a una [plantilla](/es/basics/layouts/) común, de modo que se aplique a todas tus páginas.
77+
78+
```astro title="src/components/MainLayout.astro"
79+
---
80+
import Head from './Head.astro';
81+
82+
const { ...props } = Astro.props;
83+
---
84+
<html>
85+
<head>
86+
<meta charset="utf-8">
87+
<Head />
88+
<!-- Elementos adicionales del head -->
89+
</head>
90+
<body>
91+
<!-- El contenido de la página va aquí -->
92+
</body>
93+
</html>
94+
```
95+
96+
Dado que `Head.astro` es simplemente un componente Astro normal, puedes importar archivos y recibir propiedades que te pasen otros componentes, como el título de una página concreta.
97+
98+
```astro title="src/components/Head.astro"
99+
---
100+
import Favicon from '../assets/Favicon.astro';
101+
import SomeOtherTags from './SomeOtherTags.astro';
102+
103+
const { title = 'Mi página Astro', ...props } = Astro.props;
104+
---
105+
<link rel="sitemap" href="/sitemap-index.xml">
106+
<title>{title}</title>
107+
<meta name="description" content="¡Bienvenido a mi nuevo sitio Astro!">
108+
109+
<!-- Analíticas Web -->
110+
<script data-goatcounter="https://my-account.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
111+
112+
<!-- Tags de Open Graph -->
113+
<meta property="og:title" content="Mi nueva página de Astro" />
114+
<meta property="og:type" content="website" />
115+
<meta property="og:url" content="http://www.example.com/" />
116+
<meta property="og:description" content="¡Bienvenido a mi nuevo sitio Astro!" />
117+
<meta property="og:image" content="https://www.example.com/_astro/seo-banner.BZD7kegZ.webp">
118+
<meta property="og:image:alt" content="">
119+
120+
<SomeOtherTags />
121+
122+
<Favicon />
123+
```

0 commit comments

Comments
 (0)