diff --git a/aio/content/guide/creating-libraries.es.md b/aio/content/guide/creating-libraries.es.md index b210e83d5b..99708163a7 100644 --- a/aio/content/guide/creating-libraries.es.md +++ b/aio/content/guide/creating-libraries.es.md @@ -52,9 +52,9 @@ Puedes crear, probar y comprobar con los comandos de CLI: Puedes notar que el constructor configurado para el proyecto es diferente que el constructor por defecto para proyectos. El constructor, entre otras cosas, asegura que la librería siempre este construida con el [compilador AOT](guide/aot-compiler), sin la necesidad de especificar la bandera `--prod`. -Para hacer el código de la librería reusable debes definir una API publica para ella. Esta "capa de usuario" define que esta disponible para los consumidores de tu librería. Un usuario de tu librería debería ser capaz de acceder a la funcionalidad publica (como NgModules, servicios, proveedores y en general funciones de utilidad) mediante una sola ruta. +Para hacer el código de la librería reusable debes definir una API pública para ella. Esta "capa de usuario" define que esta disponible para los consumidores de tu librería. Un usuario de tu librería debería ser capaz de acceder a la funcionalidad publica (como NgModules, servicios, proveedores y en general funciones de utilidad) mediante una sola ruta. -La API publica para tu librería es mantenida en el archivo `public-api.ts` en tu capeta de librería. +La API pública para tu librería es mantenida en el archivo `public-api.ts` en tu carpeta de librería. Cualquier cosa exportada desde este archivo se hace publica cuando tu librería es importada dentro de una aplicación. Usa un NgModule para exponer los servicios y componentes. @@ -65,7 +65,7 @@ Tu libería debería suministrar documentatión (típicamente en el archivo READ Para hacer tu solución reusable, necesitas ajustarla para que no dependa del código específico de la aplicación. Aquí algunas cosas para considerar al migrar la funcionalidad de la aplicación a una librería. -* Declaraciones tales como componentes y tuberías deberían ser diseñados como 'stateless' (sin estado), lo que significa que no dependen ni alteran variables externas. Si tu dependes del estado, tu necesitas evaluar cada caso y decidir el estado de la aplicación o el estado que la aplicación administraría. +* Declaraciones tales como componentes y tuberías deberían ser diseñados como 'stateless' (sin estado), lo que significa que no dependen ni alteran variables externas. Si tu dependes del estado, necesitas evaluar cada caso y decidir el estado de la aplicación o el estado que la aplicación administraría. * Cualquier observable al cual los componentes se suscriban internamente deberían ser limpiados y desechados durante el ciclo de vida de esos componentes. @@ -76,17 +76,17 @@ Aquí algunas cosas para considerar al migrar la funcionalidad de la aplicación * Del mismo modo, si tu código de librería depende de un servicio, este servicio necesita ser migrado. * Si tu código de librería o sus plantillas dependen de otras librerías (como Angular Material), debes configurar tu librería con esas dependencias. -* Considere como tu proporcionas servicios a las aplicaciones cliente. +* Considere como proporcionar servicios a las aplicaciones cliente. * Los servicios deberían declarar sus propios proveedores (en lugar de declarar los proveedores en el NgModule o en un componente). Esto le permite al compilador dejar los servicios fuera del 'bundle' si este nunca fue inyectado dentro de la aplicación que importa la librería, véase [proveedores Tree-shakable](guide/dependency-injection-providers#tree-shakable-providers) - * Si tu registras proveedores globales o compartes proveedores a través de multiples NgModules, usa el [`forRoot()` y `forChild()` como patrones de diseño](guide/singleton-services) proporcionados por el [RouterModule](api/router/RouterModule). - * Si tu libería proporciona servicios opcionales que podrían no ser usados por todos las aplicaciones cliente, soporte apropiadamente el 'tree-shaking' para esos casos usando el [patrón de diseño de token ligero](guide/lightweight-injection-tokens). + * Si registras proveedores globales o compartes proveedores a través de múltiples NgModules, usa el [`forRoot()` y `forChild()` como patrones de diseño](guide/singleton-services) proporcionados por el [RouterModule](api/router/RouterModule). + * Si tu librería proporciona servicios opcionales que podrían no ser usados por todos las aplicaciones cliente, soporte apropiadamente el 'tree-shaking' para esos casos usando el [patrón de diseño de token ligero](guide/lightweight-injection-tokens). {@a integrating-with-the-cli} ## Integración con el CLI usando generación de código con los schematics. -Comúnmente una libería incluye *código reusable* que define componentes, servicios y otros Artefactos de Angular (tuberías, directivas y etc.) que tu simplemente importas a un proyecto. +Comúnmente una librería incluye *código reusable* que define componentes, servicios y otros Artefactos de Angular (tuberías, directivas y etc.) que tu simplemente importas a un proyecto. Una librería es empaquetada dentro de un paquete npm para publicar y compartir. Este paquete también puede incluir [schematics](guide/glossary#schematic) que proporciona instrucciones para generar o transformar código directamente un tu proyecto, de la misma forma que el CLI crea un nuevo componente genérico con `ng generate component`. @@ -95,7 +95,7 @@ Un 'schematic' empaquetado con una librería puede por ejemplo proporcionar al A Un ejemplo de esto es el 'schematic' de navegación de Angular Material el cual configura los CDK's `BreakpointObserver` y lo usa con los componentes `MatSideNav` y `MatToolbar` de Angular Material. -Tu puedes crear e incluir los siguientes tipos de 'schematics'. +Puedes crear e incluir los siguientes tipos de 'schematics'. * Incluye un 'schematic' de instalación para que con `ng add` puedas agregar tu libería a un proyecto. @@ -104,8 +104,8 @@ Tu puedes crear e incluir los siguientes tipos de 'schematics'. * Incluye un 'schematic' de actualización para que con `ng update` puedas actualizar las dependencias de tu librería y proporcionar migraciones para cambios importantes en un nuevo release. Lo que incluya tu librería depende de tu tarea. -Por ejemplo, tu podrías definir un 'schematic' para crear un desplegable (dropdown) que esta pre-poblado con datos para mostrar como agregarlo a una aplicación. -Si tu quieres un desplegable (dropdown) que contendrá valores diferentes cada vez, tu librería podría definir un 'schematic' para crearlo con una configuración dada. Los desarrolladores podrán entonces usar `ng generate` para configurar una instancia para sus propias aplicaciones. +Por ejemplo, podrías definir un 'schematic' para crear un desplegable (dropdown) que esta pre-poblado con datos para mostrar como agregarlo a una aplicación. +Si quieres un desplegable (dropdown) que contendrá valores diferentes cada vez, tu librería podría definir un 'schematic' para crearlo con una configuración dada. Los desarrolladores podrán entonces usar `ng generate` para configurar una instancia para sus propias aplicaciones. Supón que quieres leer un archivo de configuración y entonces generar una formulario con base a la configuración. Si este formulario necesita personalización adicional por parte del desarrollador que esta usando tu librería, esto podría trabajar mejor como un 'schematic'. @@ -126,7 +126,7 @@ cd dist/my-lib npm publish -Si tu nunca has publicado un paquete en npm antes, tu debes crear un cuenta. Lee más en [Publicando paquetes npm](https://docs.npmjs.com/getting-started/publishing-npm-packages). +Si nunca has publicado un paquete en npm antes, tu debes crear un cuenta. Lee más en [Publicando paquetes npm](https://docs.npmjs.com/getting-started/publishing-npm-packages).