Skip to content

Commit c26edb8

Browse files
committed
Advance in traslation of src/style-guide/rules-strongly-recommended.md
1 parent 560d2d1 commit c26edb8

File tree

1 file changed

+65
-65
lines changed

1 file changed

+65
-65
lines changed

src/style-guide/rules-strongly-recommended.md

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -76,28 +76,28 @@ components/
7676

7777
</div>
7878

79-
## Base component names
79+
## Nombres de los componentes base
8080

81-
**Base components (a.k.a. presentational, dumb, or pure components) that apply app-specific styling and conventions should all begin with a specific prefix, such as `Base`, `App`, or `V`.**
81+
**Los componentes base (también conocidos como componentes de presentación, "silentes"" o puros) que aplican estilos y convenciones específicos de la aplicación deben comenzar todos con un prefijo específico, como `Base`, `App` o `V`.**
8282

83-
::: details Detailed Explanation
84-
These components lay the foundation for consistent styling and behavior in your application. They may **only** contain:
83+
::: details Explicación detallada
84+
Estos componentes sientan las bases para un estilo y un comportamiento consistentes en tu aplicación. Pueden contener **solo**:
8585

86-
- HTML elements,
87-
- other base components, and
88-
- 3rd-party UI components.
86+
- Elementos HTML,
87+
- Otros componentes base, y
88+
- Componentes de UI de terceros.
8989

90-
But they'll **never** contain global state (e.g. from a [Pinia](https://pinia.vuejs.org/) store).
90+
Pero **nunca** contendrán un estado global (por ejemplo, de una store de Vue como [Pinia](https://pinia.vuejs.org/)).
9191

92-
Their names often include the name of an element they wrap (e.g. `BaseButton`, `BaseTable`), unless no element exists for their specific purpose (e.g. `BaseIcon`). If you build similar components for a more specific context, they will almost always consume these components (e.g. `BaseButton` may be used in `ButtonSubmit`).
92+
Sus nombres a menudo incluyen el nombre del elemento que envuelven (por ejemplo, `BaseButton`, `BaseTable`), a menos que no exista ningún elemento para tu propósito específico (por ejemplo, `BaseIcon`). Si creas componentes similares para un contexto más específico, casi siempre consumirán esos componentes (por ejemplo, `BaseButton` se puede usar en `ButtonSubmit`).
9393

94-
Some advantages of this convention:
94+
Algunas ventajas de esta convención:
9595

96-
- When organized alphabetically in editors, your app's base components are all listed together, making them easier to identify.
96+
- Cuando se organizan alfabéticamente en los editores, los componentes básicos de tu aplicación se enumeran juntos, lo que los hace más fáciles de identificar.
9797

98-
- Since component names should always be multi-word, this convention prevents you from having to choose an arbitrary prefix for simple component wrappers (e.g. `MyButton`, `VueButton`).
98+
- Dado que los nombres de los componentes siempre deben tener varias palabras, esta convención evita que tengas que elegir un prefijo arbitrario para paquetes de componentes simples (por ejemplo, `MyButton`, `VueButton`).
9999

100-
- Since these components are so frequently used, you may want to simply make them global instead of importing them everywhere. A prefix makes this possible with Webpack:
100+
- Dado que estos componentes se usan con tanta frecuencia, es posible que desees simplemente hacerlos globales en lugar de importarlos en todas partes. Un prefijo hace esto posible usando Webpack:
101101

102102
```js
103103
const requireComponent = require.context(
@@ -156,11 +156,11 @@ components/
156156

157157
</div>
158158

159-
## Single-instance component names
159+
## Nombres de componentes de instancia única
160160

161-
**Components that should only ever have a single active instance should begin with the `The` prefix, to denote that there can be only one.**
161+
**Los componentes que solo deben tener una única instancia activa deben comenzar con el prefijo `The`, para indicar que solo puede haber uno.**
162162

163-
This does not mean the component is only used in a single page, but it will only be used once _per page_. These components never accept any props, since they are specific to your app, not their context within your app. If you find the need to add props, it's a good indication that this is actually a reusable component that is only used once per page _for now_.
163+
Esto no significa que el componente solo se use en una sola página, sino que solo se usará una vez _por página_. Estos componentes no aceptan props, ya que son específicos para tu aplicación, no del contexto de la misma. Si encuentras la necesidad de agregar props, es buen indicio de que este es en realidad un componente reutilizable que solo se usa una vez por página _por ahora_.
164164

165165
<div class="style-example style-example-bad">
166166
<h3>Incorrecto</h3>
@@ -184,14 +184,14 @@ components/
184184

185185
</div>
186186

187-
## Tightly coupled component names
187+
## Nombres de componentes fuertemente acoplados
188188

189-
**Child components that are tightly coupled with their parent should include the parent component name as a prefix.**
189+
**Los componentes hijos que están fuertemente acoplados con su padre deben incluir el nombre del componente padre como prefijo.**
190190

191-
If a component only makes sense in the context of a single parent component, that relationship should be evident in its name. Since editors typically organize files alphabetically, this also keeps these related files next to each other.
191+
Si un componente solo tiene sentido en el contexto de un único componente padre, dicha relación debe ser evidente en su nombre. Dado que usualmente los editores organizar los archivos alfabéticamente, esto también mantiene a estos archivos relacionados cercanos visualmente.
192192

193-
::: details Detailed Explanation
194-
You might be tempted to solve this problem by nesting child components in directories named after their parent. For example:
193+
::: details Explicación detallada
194+
Puede que tengas la tentación de resolver este problema anidando componentes hijos en directorios nombrados como su componente padre. Por ejemplo:
195195

196196
```
197197
components/
@@ -202,7 +202,7 @@ components/
202202
|- index.vue
203203
```
204204

205-
or:
205+
o:
206206

207207
```
208208
components/
@@ -213,10 +213,10 @@ components/
213213
|- TodoList.vue
214214
```
215215

216-
This isn't recommended, as it results in:
216+
Esto no es recomendado ya que da como resultado:
217217

218-
- Many files with similar names, making rapid file switching in code editors more difficult.
219-
- Many nested sub-directories, which increases the time it takes to browse components in an editor's sidebar.
218+
- Muchos archivos con nombres similares, haciendo difícil el cambio rápido entre archivos en los editores de código.
219+
- Muchos subdirectorios anidados, lo que aumenta el tiempo que lleva buscar componentes en la barra lateral de un editor.
220220
:::
221221

222222
<div class="style-example style-example-bad">
@@ -255,24 +255,24 @@ components/
255255

256256
</div>
257257

258-
## Order of words in component names
258+
## Orden de las palabras en los nombres de los componentes
259259

260-
**Component names should start with the highest-level (often most general) words and end with descriptive modifying words.**
260+
**Los nombres de los componentes deben comenzar con las palabras del nivel más alto (a menudo el más general) y terminar con palabras descriptivas.**
261261

262-
::: details Detailed Explanation
263-
You may be wondering:
262+
::: details Explicación detallada
263+
Te estarás preguntando:
264264

265-
> "Why would we force component names to use less natural language?"
265+
> "¿Por qué forzar un lenguaje poco natural al nombrar componentes?"
266266
267-
In natural English, adjectives and other descriptors do typically appear before the nouns, while exceptions require connector words. For example:
267+
En inglés natural, los adjetivos y otros descriptores suelen aparecer antes de los sustantivos, mientras que las excepciones requieren palabras conectoras. Por ejemplo:
268268

269-
- Coffee _with_ milk
270-
- Soup _of the_ day
271-
- Visitor _to the_ museum
269+
- Café _con_ leche
270+
- Sopa _del_ día
271+
- Visitante _del_ museo
272272

273-
You can definitely include these connector words in component names if you'd like, but the order is still important.
273+
Definitivamente, puedes incluir estas palabras conectoras en los nombres de los componentes si lo deseas, pero el orden sigue siendo importante.
274274

275-
Also note that **what's considered "highest-level" will be contextual to your app**. For example, imagine an app with a search form. It may include components like this one:
275+
También ten en cuenta que **lo que se considera "el nivel más alto" será contextual a tu aplicación**. Por ejemplo, imagina una aplicación con un formulario de búsqueda. Puedes incluir componentes como este:
276276

277277
```
278278
components/
@@ -284,7 +284,7 @@ components/
284284
|- TermsCheckbox.vue
285285
```
286286

287-
As you might notice, it's quite difficult to see which components are specific to the search. Now let's rename the components according to the rule:
287+
Como puedes notar, es bastante difícil ver qué componentes son específicos de la búsqueda. Ahora cambiemos el nombre de los componentes de acuerdo con la regla:
288288

289289
```
290290
components/
@@ -296,13 +296,13 @@ components/
296296
|- SettingsCheckboxTerms.vue
297297
```
298298

299-
Since editors typically organize files alphabetically, all the important relationships between components are now evident at a glance.
299+
Puesto que los editores normalmente organizan los archivos alfabéticamente, todas las relaciones importantes entre los componentes ahora son evidentes de un vistazo.
300300

301-
You might be tempted to solve this problem differently, nesting all the search components under a "search" directory, then all the settings components under a "settings" directory. We only recommend considering this approach in very large apps (e.g. 100+ components), for these reasons:
301+
Pudieras verte tentado a resolver este problema de manera diferente, anidando todos los componentes de búsqueda en un directorio de "búsqueda", luego todos los componentes de configuración en un directorio de "configuración". Recomendamos considerar este enfoque solo en aplicaciones muy grandes (por ejemplo, más de 100 componentes), por las siguientes razones:
302302

303-
- It generally takes more time to navigate through nested sub-directories, than scrolling through a single `components` directory.
304-
- Name conflicts (e.g. multiple `ButtonDelete.vue` components) make it more difficult to quickly navigate to a specific component in a code editor.
305-
- Refactoring becomes more difficult, because find-and-replace often isn't sufficient to update relative references to a moved component.
303+
- Por lo general, lleva más tiempo navegar a través de subdirectorios anidados que desplazarse por un solo directorio de "componentes".
304+
- Los conflictos de nombres (por ejemplo, múltiples componentes `ButtonDelete.vue`) dificultan la navegación rápida a un componente específico en un editor de código.
305+
- La refactorización se vuelve más difícil, porque buscar y reemplazar a menudo no es suficiente para actualizar las referencias relativas a un componente movido.
306306
:::
307307

308308
<div class="style-example style-example-bad">
@@ -335,24 +335,24 @@ components/
335335

336336
</div>
337337

338-
## Self-closing components
338+
## Componentes de cierre automático
339339

340-
**Components with no content should be self-closing in [Single-File Components](/guide/scaling-up/sfc.html), string templates, and [JSX](/guide/extras/render-function.html#jsx-tsx) - but never in DOM templates.**
340+
**Los componentes sin contenido deben cerrarse automáticamente en [Componentes de un Solo Archivo](/guide/scaling-up/sfc.html), templates de cadena y [JSX](/guide/extras/render-function.html#jsx-tsx), pero nunca en templates del DOM.**
341341

342-
Components that self-close communicate that they not only have no content, but are **meant** to have no content. It's the difference between a blank page in a book and one labeled "This page intentionally left blank." Your code is also cleaner without the unnecessary closing tag.
342+
Los componentes de cierre automático comunican que no solo no tienen contenido, sino que están **destinados** a no tener contenido. Es la diferencia entre una página en blanco en un libro y una etiquetada como "Esta página se dejó en blanco intencionalmente". Tu código también es más limpio sin la etiqueta de cierre innecesaria.
343343

344-
Unfortunately, HTML doesn't allow custom elements to be self-closing - only [official "void" elements](https://www.w3.org/TR/html/syntax.html#void-elements). That's why the strategy is only possible when Vue's template compiler can reach the template before the DOM, then serve the DOM spec-compliant HTML.
344+
Desafortunadamente, HTML no permite que los elementos personalizados se cierren automáticamente, solo los [elementos "vacíos" oficiales](https://www.w3.org/TR/html/syntax.html#void-elements). Es por eso que la estrategia solo es posible cuando el compilador de templates de Vue puede alcanzar la template antes del DOM y luego servir el HTML compatible con las especificaciones del DOM.
345345

346346
<div class="style-example style-example-bad">
347347
<h3>Incorrecto</h3>
348348

349349
```vue-html
350-
<!-- In Single-File Components, string templates, and JSX -->
350+
<!-- En Componentes de un Solo Archivo, templates de cadenas y JSX -->
351351
<MyComponent></MyComponent>
352352
```
353353

354354
```vue-html
355-
<!-- In DOM templates -->
355+
<!-- En templates del DOM -->
356356
<my-component/>
357357
```
358358

@@ -362,46 +362,46 @@ Unfortunately, HTML doesn't allow custom elements to be self-closing - only [off
362362
<h3>Correcto</h3>
363363

364364
```vue-html
365-
<!-- In Single-File Components, string templates, and JSX -->
365+
<!-- En Componentes de un Solo Archivo, templates de cadenas y JSX -->
366366
<MyComponent/>
367367
```
368368

369369
```vue-html
370-
<!-- In DOM templates -->
370+
<!-- En templates del DOM -->
371371
<my-component></my-component>
372372
```
373373

374374
</div>
375375

376-
## Component name casing in templates
376+
## Nombre de componente enmarcados en templates
377377

378-
**In most projects, component names should always be PascalCase in [Single-File Components](/guide/scaling-up/sfc.html) and string templates - but kebab-case in DOM templates.**
378+
**En la mayoría de los proyectos, los nombres de los componentes siempre deben estar en PascalCase en [Componentes de un Solo Archivo](/guide/scaling-up/sfc.html) y templates de cadenas, pero en kebab-case en las templates del DOM.**
379379

380-
PascalCase has a few advantages over kebab-case:
380+
PascalCase tiene algunas ventajas sobre kebab-case:
381381

382-
- Editors can autocomplete component names in templates, because PascalCase is also used in JavaScript.
383-
- `<MyComponent>` is more visually distinct from a single-word HTML element than `<my-component>`, because there are two character differences (the two capitals), rather than just one (a hyphen).
384-
- If you use any non-Vue custom elements in your templates, such as a web component, PascalCase ensures that your Vue components remain distinctly visible.
382+
- Los editores pueden autocompletar los nombres de los componentes en las templates, porque PascalCase también se usa en JavaScript.
383+
- `<MyComponent>` es visualmente más diferente de un elemento HTML de una sola palabra que `<my-component>`, porque hay dos caracteres diferentes (las dos mayúsculas), en lugar de solo uno (el guión).
384+
- Si usas elementos personalizados que no son de Vue en tus templates, como un componente web, PascalCase garantiza que tus componentes de Vue permanezcan claramente visibles.
385385

386-
Unfortunately, due to HTML's case insensitivity, DOM templates must still use kebab-case.
386+
Desafortunadamente, debido a la insensibilidad de mayúsculas y minúsculas de HTML, las templates del DOM deben seguir usando kebab-case.
387387

388-
Also note that if you've already invested heavily in kebab-case, consistency with HTML conventions and being able to use the same casing across all your projects may be more important than the advantages listed above. In those cases, **using kebab-case everywhere is also acceptable.**
388+
También ten en cuenta que si ya has invertido mucho en kebab-case, la coherencia con las convenciones de HTML y poder usar el mismo enmarcado en todos tus proyectos puede ser más importante que las ventajas enumeradas anteriormente. En esos casos, **también es aceptable usar kebab-case en todas partes.**
389389

390390
<div class="style-example style-example-bad">
391391
<h3>Incorrecto</h3>
392392

393393
```vue-html
394-
<!-- In Single-File Components and string templates -->
394+
<!-- En Componentes de un Solo Archivo y templates de cadenas -->
395395
<mycomponent/>
396396
```
397397

398398
```vue-html
399-
<!-- In Single-File Components and string templates -->
399+
<!-- En Componentes de un Solo Archivo y templates de cadenas -->
400400
<myComponent/>
401401
```
402402

403403
```vue-html
404-
<!-- In DOM templates -->
404+
<!-- En templates del DOM -->
405405
<MyComponent></MyComponent>
406406
```
407407

@@ -411,19 +411,19 @@ Also note that if you've already invested heavily in kebab-case, consistency wit
411411
<h3>Correcto</h3>
412412

413413
```vue-html
414-
<!-- In Single-File Components and string templates -->
414+
<!-- En Componentes de un Solo Archivo y templates de cadenas -->
415415
<MyComponent/>
416416
```
417417

418418
```vue-html
419-
<!-- In DOM templates -->
419+
<!-- En templates del DOM -->
420420
<my-component></my-component>
421421
```
422422

423-
OR
423+
O
424424

425425
```vue-html
426-
<!-- Everywhere -->
426+
<!-- En todas partes -->
427427
<my-component></my-component>
428428
```
429429

0 commit comments

Comments
 (0)