mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-05 12:06:36 -05:00
chore(i18n,docs): processed translations (#47520)
This commit is contained in:
@@ -10,7 +10,7 @@ freeCodeCamp se ejecuta en una moderna plataforma de JavaScript. Si estás inter
|
||||
|
||||
Sí - Puedes contribuir cualquiera de los más de 30 idiomas que hemos habilitado en nuestra plataforma de traducción.
|
||||
|
||||
Tenemos traducciones hechas por usuarios nativos en algunos idiomas. Tenemos la intención de traducir freeCodeCamp a los principales idiomas del mundo. You can read all about this in our [announcement here](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/).
|
||||
Tenemos traducciones hechas por usuarios nativos en algunos idiomas. Tenemos la intención de traducir freeCodeCamp a los principales idiomas del mundo. Puedes leer todo acerca de esto en nuestro [anuncio aquí](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/).
|
||||
|
||||
Si estás interesado en ayudar a traducir, por favor asegúrate de [leer esta guía](how-to-translate-files.md) primero.
|
||||
|
||||
@@ -24,7 +24,7 @@ Para ayudarnos a crear vídeos educacionales para nuestro canal de YouTube, pued
|
||||
|
||||
### Cómo puedo reportar un nuevo error?
|
||||
|
||||
If you think you've found a bug, first read the ["How to Report a Bug"](https://www.freecodecamp.org/news/how-to-report-a-bug-to-freecodecamp/) article and follow its instructions.
|
||||
Si piensas que has encontrado un error, primero lea el artículo ["Como reportar un error"](https://www.freecodecamp.org/news/how-to-report-a-bug-to-freecodecamp/) y siga las instrucciones.
|
||||
|
||||
Si estás seguro de que es un error nuevo, crea un tema de GitHub nuevo. Asegúrate de incluir tanta información como sea posible para que podamos reproducir el error. Tenemos una plantilla de informe predefinida para ayudarte con esto.
|
||||
|
||||
@@ -32,7 +32,7 @@ Ten en cuenta que estos temas de GitHub son para debates y problemas relacionado
|
||||
|
||||
### ¿Cómo puedo reportar un problema de seguridad?
|
||||
|
||||
Por favor, no crees Tema de GitHub para problemas de seguridad. Instead, please [follow our security policy](https://contribute.freecodecamp.org/#/security).
|
||||
Por favor, no crees Tema de GitHub para problemas de seguridad. En su lugar, [siga nuestra política de seguridad](https://contribute.freecodecamp.org/#/security).
|
||||
|
||||
### Soy estudiante. ¿Puedo trabajar en una característica para los créditos académicos?
|
||||
|
||||
@@ -92,11 +92,15 @@ Echa un vistazo a nuestro [Manual de Moderadores](moderator-handbook.md) para un
|
||||
**Siéntete libre de pedir ayuda en:**
|
||||
|
||||
- La categoria de `Contributors` de [nuestro foro de comunidad](https://forum.freecodecamp.org/c/contributors).
|
||||
- The `#Contributors` channel on [our chat server](https://discord.gg/PRyKn3Vbay).
|
||||
- El canal `#Contributors` de
|
||||
|
||||
Estamos encantados de ayudarte a contribuir en cualquiera de los temas en los que quieras trabajar. Si nos hace preguntas sobre los issue threads, estaremos encantados de aclararlo. Asegúrate de buscar tu pregunta antes de publicar una nueva.
|
||||
|
||||
Gracias de antemano por ser amable y paciente. Recuerda, esta comunidad es manejada principalmente por voluntarios.
|
||||
nuestro servidor de chat<1>.</li> </ul>
|
||||
|
||||
Estamos encantados de ayudarte a contribuir en cualquiera de los temas en los que quieras trabajar. Si nos hace preguntas sobre los issue threads, estaremos encantados de aclararlo. Asegúrate de buscar tu pregunta antes de publicar una nueva.
|
||||
|
||||
Gracias de antemano por ser amable y paciente. Recuerda, esta comunidad es manejada principalmente por voluntarios.
|
||||
|
||||
|
||||
|
||||
### Asistencia adicional
|
||||
|
||||
|
||||
@@ -7,31 +7,31 @@
|
||||
- [Revisar las traducciones](how-to-proofread-files.md)
|
||||
- **Participa en la programación**
|
||||
- [Configurar freeCodeCamp localmente](how-to-setup-freecodecamp-locally.md)
|
||||
- [Work on mobile app](how-to-setup-freecodecamp-mobile-app-locally.md)
|
||||
- [Follow coding best practices](codebase-best-practices.md)
|
||||
- [Open a pull request](how-to-open-a-pull-request.md)
|
||||
- [Work on coding challenges](how-to-work-on-coding-challenges.md)
|
||||
- [Work on practice projects](how-to-work-on-practice-projects.md)
|
||||
- [Work on tutorials with CodeRoad](how-to-work-on-tutorials-that-use-coderoad.md)
|
||||
- [Work on localized client web app](how-to-work-on-localized-client-webapp.md)
|
||||
- [Work on Cypress tests](how-to-add-cypress-tests.md)
|
||||
- [Work on video challenges](how-to-help-with-video-challenges.md)
|
||||
- [Work on documentation](how-to-work-on-the-docs-theme.md)
|
||||
- [Work on the component library](how-to-work-on-the-component-library.md)
|
||||
- [Trabajar en aplicación móvil](how-to-setup-freecodecamp-mobile-app-locally.md)
|
||||
- [Seguir las mejores prácticas de programación](codebase-best-practices.md)
|
||||
- [Abrir una pull request](how-to-open-a-pull-request.md)
|
||||
- [Trabajar en los desafíos de código](how-to-work-on-coding-challenges.md)
|
||||
- [Trabajar en proyectos de práctica](how-to-work-on-practice-projects.md)
|
||||
- [Colabora en tutoriales para CodeRoad](how-to-work-on-tutorials-that-use-coderoad.md)
|
||||
- [Trabaja en la aplicación web de cliente localizada](how-to-work-on-localized-client-webapp.md)
|
||||
- [Trabaja con los test Cypress](how-to-add-cypress-tests.md)
|
||||
- [Trabajar en los desafíos de video](how-to-help-with-video-challenges.md)
|
||||
- [Trabaja en la documentación](how-to-work-on-the-docs-theme.md)
|
||||
- [Trabajar en la biblioteca de componentes](how-to-work-on-the-component-library.md)
|
||||
- **Guías adicionales**
|
||||
- [Understand the curriculum file structure](curriculum-file-structure.md)
|
||||
- [Debug outgoing emails locally](how-to-catch-outgoing-emails-locally.md)
|
||||
- [Set up freeCodeCamp on Windows (WSL)](how-to-setup-wsl.md)
|
||||
- [User Token Workflow](user-token-workflow.md)
|
||||
- [Entender la estructura de los archivos del currículo](curriculum-file-structure.md)
|
||||
- [Depurar localmente los emails salientes](how-to-catch-outgoing-emails-locally.md)
|
||||
- [Configurar freeCodeCamp en Windows (WSL)](how-to-setup-wsl.md)
|
||||
- [Flujo de trabajo del Token del usuario](user-token-workflow.md)
|
||||
|
||||
---
|
||||
|
||||
- **Manuales de Vuelo** (para el personal & moderadores)
|
||||
- [Manual del moderador](moderator-handbook.md)
|
||||
- [Language Lead Handbook](language-lead-handbook.md)
|
||||
- [DevOps Handbook](devops.md)
|
||||
- [Courses VSCode Extension](courses-vscode-extension.md)
|
||||
- [Enable New Language](how-to-enable-new-languages.md)
|
||||
- [Libro Principal de Idiomas](language-lead-handbook.md)
|
||||
- [Manual de DevOps](devops.md)
|
||||
- [Extensión de cursos de VSCode](courses-vscode-extension.md)
|
||||
- [Habilitar nuevo idioma](how-to-enable-new-languages.md)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
# Courses VSCode Extension
|
||||
# Cursos de extensión de VSCode
|
||||
|
||||
This details the maintenance guidelines for the [freeCodeCamp/courses-vscode-extension](https://github.com/freeCodeCamp/courses-vscode-extension) repository which contains the source code for the [freeCodeCamp - Courses](https://marketplace.visualstudio.com/items?itemName=freeCodeCamp.freecodecamp-courses) extension.
|
||||
Esto detalla las guías de mantenimiento para el repositorio de [freeCodeCamp/courses-vscode-extensión](https://github.com/freeCodeCamp/courses-vscode-extension), el cual contiene el código fuente de la extensión [freeCodeCamp - Courses](https://marketplace.visualstudio.com/items?itemName=freeCodeCamp.freecodecamp-courses).
|
||||
|
||||
## Publishing the Extension
|
||||
## Publicando la Extensión
|
||||
|
||||
A GitHub Action automagically publishes the extension to the Visual Studio Marketplace, on the release of a new GitHub Release.
|
||||
'GitHub Action' publica automáticamente la extensión en el Marketplace de Visual Studio, cada vez que se publica una nueva versión en GitHub.
|
||||
|
||||
1. Package a new version of the extension:
|
||||
1. Empaquete una nueva versión de la extensión:
|
||||
|
||||
```bash
|
||||
npm run pack -- <tag_type>
|
||||
```
|
||||
|
||||
Where `<tag_type>` is one of: `major`, `minor`, `patch`.
|
||||
Donde `<tag_type>` es uno de: `mayor`, `menor`, `parchar`.
|
||||
|
||||
2. Push the new version to `main`:
|
||||
2. Envía la nueva versión a `main`:
|
||||
|
||||
```bash
|
||||
git commit -am "<tag_type>(<version>): <description>"
|
||||
git push
|
||||
```
|
||||
|
||||
Optionally, you can push directly to `upstream/main`, but opening a new PR is recommended for a sanity check.
|
||||
Opcionalmente puedes empujar directamente al `upstream/main`pero abrir un nuevo PR es recomendado para mejor órden.
|
||||
|
||||
3. Create a new GitHub Release using the GitHub UI:
|
||||
3. Cree una nueva versión de GitHub usando la interfaz de usuario de GitHub:
|
||||
|
||||
- Correctly increment the version number, when creating a new tag.
|
||||
- Upload the `.vsix` file with the release.
|
||||
- Publish the release, and confirm the action succeeded.
|
||||
- Incremente correctamente el número de versión al crear una nueva etiqueta.
|
||||
- actualizar el archivo `.vsix` con la nueva versión.
|
||||
- Publique el lanzamiento y confirme que la acción se realizó correctamente.
|
||||
|
||||
> [!NOTE] Creating a release requires write access to the `freeCodeCamp/courses-vscode-extension` repository.
|
||||
> [!NOTE] La creación de una versión requiere acceso de escritura al repositorio `freeCodeCamp/courses-vscode-extension` repositorio.
|
||||
|
||||
## Manually Publishing the Extension
|
||||
## Publicación Manual de la Extensión
|
||||
|
||||
A manual upload to the Visual Studio Marketplace can be achieved, by following these steps:
|
||||
Se puede realizar una carga manual en Visual Studio Marketplace siguiendo estos pasos:
|
||||
|
||||
1. Visit https://marketplace.visualstudio.com/ and sign in
|
||||
2. Navigate to the [freeCodeCamp Publisher page](https://marketplace.visualstudio.com/manage/publishers/freecodecamp)
|
||||
3. Select the relevant extension, and select `Update`
|
||||
4. Upload the file from your local files
|
||||
1. Visite https://marketplace.visualstudio.com/ e inicie sesión
|
||||
2. Vaya a la [página del editor de freeCodeCamp](https://marketplace.visualstudio.com/manage/publishers/freecodecamp)
|
||||
3. Seleccione la extensión relevante y seleccione `Actualizar`
|
||||
4. Sube el archivo desde tus archivos locales
|
||||
|
||||
@@ -7,9 +7,9 @@ Nuestro contenido instructivo principal se encuentra dentro del directorio conve
|
||||
Hay algunos términos que utilizamos cuando hablamos del contenido de nuestro currículo.
|
||||
|
||||
- `certification` : Cuando se hace referencia a una certificación en este caso, se está hablando del certificado real que los usuarios reclaman. Que es independiente del nombre del súper bloque.
|
||||
- `superBlock` : Un súper bloque es la colección de desafíos del nivel superior. Each superblock corresponds to a certification in the curriculum (e.g. Responsive Web Design).
|
||||
- `block` : Un bloque es una sección dentro de un súper bloque. A block corresponds to a group of challenges in a given certification (e.g. Basic HTML and HTML5)
|
||||
- `challenge` : A challenge is a single lesson within the curriculum (e.g. Say Hello to HTML Elements)
|
||||
- `superBlock` : Un súper bloque es la colección de desafíos del nivel superior. Cada súper bloque corresponde a una certificacion en el currículo (p. ej. Diseño Web Responsivo).
|
||||
- `block` : Un bloque es una sección dentro de un súper bloque. Un bloque corresponde a un grupo de desafíos en una certificacion determinada (p. ej. HTML Básico y HTML5)
|
||||
- `challenge`: Un desafío es una sola lección dentro del currículo (p. ej. Di hola a los Elementos HTML)
|
||||
|
||||
## Árbol de archivos
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ Actualmente una versión de prueba beta pública está disponible en:
|
||||
|
||||
El equipo de desarrollo fusiona los cambios de la rama `prod-staging` a `prod-current` cuando publican los cambios. El commit más reciente debe ser lo que ves en vivo en el sitio.
|
||||
|
||||
Puedes identificar la versión exacta desplegada visitando los registros de compilación y despliegue disponibles en la sección de estado. Alternatively you can also ping us in the [contributors chat room](https://discord.gg/PRyKn3Vbay) for a confirmation.
|
||||
Puedes identificar la versión exacta desplegada visitando los registros de compilación y despliegue disponibles en la sección de estado. Adicionalmente, también puedes contactarnos en la [sala de chat de contribuyentes](https://discord.gg/PRyKn3Vbay) para obtener una confirmación.
|
||||
|
||||
### Limitaciones Conocidas
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Para aprender como escribir pruebas de Cypress, o especificaciones, observa la [
|
||||
|
||||
## Como ejecutar pruebas
|
||||
|
||||
> [!NOTE] If using GitPod, please see [Cypress-GitPod Setup](how-to-add-cypress-tests.md#cypress-gitpod-setup)
|
||||
> [!NOTE] Si utilizas GitPod, por favor mira [Cypress-GitPod Setup](how-to-add-cypress-tests.md#cypress-gitpod-setup)
|
||||
|
||||
### 1. Asegúrate de que MongoDB y la aplicación de cliente se estén ejecutando
|
||||
|
||||
@@ -74,4 +74,4 @@ npm run cypress:install-build-tools
|
||||
|
||||
- Cuando se te solicite en la terminal, selecciona la distribución de tu teclado por idioma / área
|
||||
|
||||
Now, [Cypress can be run](how-to-add-cypress-tests.md#_2-run-the-cypress-tests)
|
||||
Ahora, [Cypress puede ser ejecutado](how-to-add-cypress-tests.md#_2-run-the-cypress-tests)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# Deploying New Languages on `/learn`
|
||||
# Implementando nuevos idiomas en `/learn`
|
||||
|
||||
Before you can release a new language, you will need to allow the languages to download from Crowdin.
|
||||
Antes de poder publicar un nuevo idioma, tendrás que permitir que los idiomas se descarguen de Crowdin.
|
||||
|
||||
## Updating Crowdin Settings
|
||||
## Actualizando los ajustes de Crowdin
|
||||
|
||||
In the `Curriculum` and `Learn UI` projects, you will need to select `Project Settings` from the sidebar. Then scroll down to `Language Mapping`, where you will see an option to add custom language codes. Add a new entry for the language you are releasing, selecting `language` as the `Placeholder` value, and entering a URL-friendly lower-case spelling of your language's name for the `Custom code`. If you aren't sure what to use, reach out in our contributor chat and we will assist you.
|
||||
En los proyectos `Curriculum` y `Learn UI`, necesitarás seleccionar `Project Settings` en la barra lateral. Luego, busca la opción `Language Mapping`, donde encontrarás la opción de añadir códigos personalizados para los idiomas. Añade una nueva entrada para el idioma que publicarás: seleccionando `language` como el valor de `Placeholder` e ingresando el nombre del idioma en minúsculas para el valor de `Custom code`. Si estás inseguro sobre qué nombre usar, contáctanos en nuestro chat para colaboradores y te ayudaremos.
|
||||
|
||||
## Updating Workflows
|
||||
## Actualizando Workflows
|
||||
|
||||
You will need to add a step to the `crowdin-download.client-ui.yml` and `crowdin-download.curriculum.yml`. The step for these will be the same. For example, if you want to enable Dothraki downloads:
|
||||
Necesitarás añadir una instrucción al documento `crowdin-download.client-ui.yml` y al documento `crowdin-download.curriculum.yml`. Los pasos a seguir en los dos casos son iguales. Por ejemplo, si quisieras habilitar las descargas de Dothraki, la instrucción a añadir en los dos documentos sería:
|
||||
|
||||
```yml
|
||||
##### Download Dothraki #####
|
||||
@@ -41,24 +41,24 @@ You will need to add a step to the `crowdin-download.client-ui.yml` and `crowdin
|
||||
# dryrun_action: true
|
||||
```
|
||||
|
||||
Note that the `download_language` key needs to be set to the language code displayed on Crowdin.
|
||||
Ten en cuenta que la opción `download_language` deberá corresponder al código del idioma que aparece en Crowdin.
|
||||
|
||||
## Enabling a Language
|
||||
## Habilitando un idioma
|
||||
|
||||
> [!NOTE] The above section with updating the workflows should be completed before proceeding - these need to be done in separate steps or the builds will fail.
|
||||
> [!NOTA] La sección anterior con la actualización de los flujos de trabajo debería estar completos antes de continuar, estos deben hacerse en pasos separados o las compilaciones fallarán.
|
||||
|
||||
There are a few steps to take in order to allow the codebase to build in your desired language.
|
||||
Hay algunos pasos a seguir para permitirle a la base de código compilarse a tu idioma de preferencia.
|
||||
|
||||
First, visit the `config/i18n/all-langs.ts` file to add the language to the available languages list and configure the values. There are several objects here.
|
||||
Primero, visita el archivo `config/i18n/all-langs.ts` para añadir el idioma a la lista de idiomas disponibles y configurar los valores. Aquí hay varios objetos.
|
||||
|
||||
- `availableLangs`: For both the `client` and `curriculum` arrays, add the text name of the language. This is the value that will be used in the `.env` file later.
|
||||
- `auditedCerts`: Add the text name of the language as the _key_, and add an array of `SuperBlocks.{cert}` variables as the _value_. This tells the client which certifications are fully translated.
|
||||
- `i18nextCodes`: These are the ISO language codes for each language. You will need to add the appropriate ISO code for the language you are enabling. These do need to be unique for each language.
|
||||
- `LangNames`: These are the display names for the language selector in the navigation menu.
|
||||
- `LangCodes`: These are the language codes used for formatting dates and numbers. These should be Unicode CLDR codes instead of ISO codes.
|
||||
- `hiddenLangs`: These languages will not be displayed in the navigation menu. This is used for languages that are not yet ready for release.
|
||||
- `availableLangs`: Tanto para el array `client` y `curriculum`, añade el nombre del idioma. Este es el valor que será utilizado en el archivo `.env` después.
|
||||
- `auditedCerts`: Añade el nombre del idioma como _key_ y añade un array de variables de `SuperBlocks.{cert}` como _value_. Esto le dice al cliente que certificaciones están traducidas completamente.
|
||||
- `i18nextCodes`: Estos son los códigos de idioma ISO para cada lenguaje. Necesitarás añadir el código ISO correspondiente para el idioma que estás activando. Estos deben ser únicos para cada lenguaje.
|
||||
- `LangNames`: Estos son los nombres mostrados para el selector de idiomas en el menú de navegación.
|
||||
- `LangCodes`: Estos son los códigos de idiomas usados para formatear fechas y números. Estos deben ser códigos Unicode CLDR en vez de los códigos ISO.
|
||||
- `hiddenLangs`: Estos idiomas no se mostrarán en el menú de navegación. Esto es usado para los idiomas que todavía no están listos para su lanzamiento.
|
||||
|
||||
As an example, if you wanted to enable Dothraki as a language, your `all-langs.js` objects should look like this:
|
||||
Por ejemplo, si quisieras activar Dothraki como un idioma, tus objetos `all-langs.js` deberían verse así:
|
||||
|
||||
```js
|
||||
export const availableLangs = {
|
||||
@@ -138,15 +138,15 @@ export enum LangCodes = {
|
||||
export const hiddenLangs = ['dothraki'];
|
||||
```
|
||||
|
||||
> [!NOTE] When a language has been set up in the deployment pipeline AND has a public `/news` instance live, it can be removed from the `hiddenLangs` array and be made available to the public.
|
||||
> [!NOTE] Cuando un lenguage ha sido configurado en el pipeline de despliegue Y se ha publicado como `/news`, puede ser quitado del arreglo `hiddenLangs` y puede ser disponible para el público.
|
||||
|
||||
Next, open the `client/src/utils/algolia-locale-setup.ts` file. This data is used for the search bar that loads `/news` articles. While it is unlikely that you are going to test this functionality, missing the data for your language can lead to errors when attempting to build the codebase locally.
|
||||
A continuación, abre el archivo: `client/src/utils/algolia-locale-setup.ts`. Estos datos son utilizados por la barra de búsqueda que carga artículos de `/news`. Si bien es poco probable que vayas a probar esta funcionalidad, lea falta de datos para tu lenguaje puede llevarle a errores al intentar construir el código base localmente.
|
||||
|
||||
Add an object for your language to the `algoliaIndices` object. You should use the the same values as the `english` object for local testing, replacing the `english` key with your language's `availableLangs` value.
|
||||
Agrega un objeto para al objeto `algoliaIndices`. Deberñias usar los mismos valores del objeto `english` para pruebas locales, remplazando la clave `english` con el valor `avalaibleLangs` para tu idioma.
|
||||
|
||||
> [!NOTE] If we have already deployed an instance of news in your target language, you can update the values to reflect the live instance. Otherwise, use the English values.
|
||||
> [!NOTE] Si ya hemos desplegado una instancia de noticias en tu destino de idioma, puedes actualizar los valores para reflejar la instancia real. De lo contracio, use los valores del inglés.
|
||||
|
||||
If you were to add Dothraki:
|
||||
Si tuvieras que añadir el idioma Dothraki:
|
||||
|
||||
```js
|
||||
const algoliaIndices = {
|
||||
@@ -173,15 +173,15 @@ const algoliaIndices = {
|
||||
};
|
||||
```
|
||||
|
||||
### Releasing a Superblock
|
||||
### Liberando un Superblock
|
||||
|
||||
After a superblock has been fully translated into a language, there are two steps to release it. First add the superblock enum to that language's `auditedCerts` array. So, if you want to release the new Responsive Web Design superblock for Dothraki, the array should look like this:
|
||||
Después de que un superbloque haya sido completamente traducido a un idioma, hay dos pasos para hacer si queremos liberarlo. Primero, añada el enum de superbloque al arreglo `auditedCerts` de ese idioma. Por lo tanto, si quisieras añadir el nuevo superbloque "Responsive Web Design" para Dothraki, el arreglo debería verse así:
|
||||
|
||||
```ts
|
||||
export const auditedCerts = {
|
||||
// other languages
|
||||
// otros lenguajes
|
||||
dothraki: [
|
||||
SuperBlocks.RespWebDesignNew, // the newly translated superblock
|
||||
SuperBlocks.RespWebDesignNew, // el superbloque recién traducido superblock
|
||||
SuperBlocks.RespWebDesign,
|
||||
SuperBlocks.JsAlgoDataStruct,
|
||||
SuperBlocks.FrontEndDevLibs
|
||||
@@ -189,7 +189,7 @@ export const auditedCerts = {
|
||||
};
|
||||
```
|
||||
|
||||
Finally, if the superblock is in a "new" state (that is, replacing a legacy superblock), the `languagesWithAuditedBetaReleases` array should be updated to include the new language like this:
|
||||
Finalmente, si el superbloque está en un estado "nuevo" (es decir, reemplazando un superbloque heredado), el arreglo `languagesWitAuditedBetaReleases` deberia ser actualizado para incluir el nuevo lenguaje de la siguiente manera:
|
||||
|
||||
```ts
|
||||
export const languagesWithAuditedBetaReleases: ['english', 'dothraki'];
|
||||
|
||||
@@ -14,7 +14,7 @@ Recomendamos usar [titulos y mensajes convencionales](https://www.conventionalco
|
||||
>
|
||||
> `fix(learn): tests for the do...while loop challenge`
|
||||
|
||||
Whenever you open a Pull Request(PR), you can use the below to determine the type, scope (optional), and description.
|
||||
Al abrir una Pull Request(PR), puedes utilizar la siguiente guía para determinar su tipo, alcance (opcional) y descripción.
|
||||
|
||||
**Tipo:**
|
||||
|
||||
@@ -31,14 +31,14 @@ Puede seleccionar un ámbito de [esta lista de etiquetas](https://github.com/fre
|
||||
|
||||
**Descripción:**
|
||||
|
||||
Keep it short (less than 30 characters) and simple; you can add more information in the PR description box and comments.
|
||||
Mantenlo corto (menos de 30 caracteres) y sencillo, puedes agregar más información en la caja de descripción de la PR y comentarios.
|
||||
|
||||
Algunos ejemplos de buenos títulos de PR serían:
|
||||
|
||||
- `fix(a11y): contraste mejorado en la barra de búsqueda`
|
||||
- `feat: se agregan más test a los retos de HTML y CSS`
|
||||
- `fix(api,client): evitar errores CORS en el envío de formularios`
|
||||
- `docs(i18n): fix links to be relative instead of absolute`
|
||||
- `docs(i18n): se arreglan los enlaces para que sean relativos en lugar de absolutos`
|
||||
|
||||
## Proponer una Pull Request
|
||||
|
||||
@@ -54,7 +54,7 @@ Algunos ejemplos de buenos títulos de PR serían:
|
||||
|
||||
3. Envía el pull request de tu rama a la rama `main` de freeCodeCamp.
|
||||
|
||||
4. Include a more detailed summary of the changes you made and how your changes are helpful in the body of your PR.
|
||||
4. Incluye un resumen más detallado de los cambios que has realizado y de cómo tus cambios son útiles en el cuerpo de tus PR.
|
||||
|
||||
- Se le presentará una plantilla de pull request. Esta es una lista de verificación que debería haber seguido antes de abrir la solicitud de pull request.
|
||||
|
||||
@@ -76,7 +76,7 @@ Algunos ejemplos de buenos títulos de PR serían:
|
||||
|
||||
Nuestros moderadores ahora echarán un vistazo y te dejarán tus comentarios. Por favor, sea paciente con los demás moderadores y respete su tiempo. Todos los pull requests son revisados a su debido tiempo.
|
||||
|
||||
And as always, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [the contributors chat room](https://discord.gg/PRyKn3Vbay).
|
||||
Y como siempre, sientase libre de hacer preguntas en la [categoría de 'Contribuidores' de nuestro foro](https://forum.freecodecamp.org/c/contributors) o [en la sala de chat de contribuidores](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
> [!TIP] Si vas a contribuir con más PRs, te recomendamos que leas las directrices ["haciendo cambios y sincronizando"](how-to-setup-freecodecamp-locally.md#making-changes-locally) para evitar la necesidad de borrar tu bifurcación.
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ No se requieren acciones adicionales una vez que el archivo ha sido revisado.
|
||||
|
||||
## Llegar hacer un revisor
|
||||
|
||||
If you have any questions, or are interested in becoming a proofreader, feel free to reach out to us in our [contributors chat room](https://discord.gg/PRyKn3Vbay). Generalmente, le concederemos acceso a la corrección si ha estado contribuyendo a freeCodeCamp durante un tiempo.
|
||||
Si tiene alguna pregunta o le interesa colaborar en el equipo de revisión, sientase libre de contactarnos en nuestra [sala de chat de contribuidores](https://discord.gg/PRyKn3Vbay). Generalmente, le concederemos acceso a la corrección si ha estado contribuyendo a freeCodeCamp durante un tiempo.
|
||||
|
||||
Nuestro equipo de personal y de moderadores de la comunidad buscan constantemente voluntarios amables como tú que nos ayuden a poner a disposición del mundo traducciones de alta calidad.
|
||||
|
||||
@@ -50,6 +50,6 @@ Nuestro equipo de personal y de moderadores de la comunidad buscan constantement
|
||||
|
||||
## Creando un canal en Chat para un idioma mundial
|
||||
|
||||
For the most part we encourage you to use the [contributors chat](https://discord.gg/PRyKn3Vbay) room for all correspondence. Sin embargo, si el equipo de traductores voluntarios crece para un idioma determinado, podemos considerar la creación de un canal de escape adicional para el idioma.
|
||||
Mayormente, te recomendamos que utilices la sala de chat de [contribuidores](https://discord.gg/PRyKn3Vbay) para toda la correspondencia. Sin embargo, si el equipo de traductores voluntarios crece para un idioma determinado, podemos considerar la creación de un canal de escape adicional para el idioma.
|
||||
|
||||
Si ya eres un revisor y estás interesado en tener un canal dedicado en nuestros servidores de chat para un idioma específico, [completa este formulario](https://forms.gle/XU5CyutrYCgDYaVZA).
|
||||
|
||||
@@ -151,7 +151,7 @@ Ahora que tienes una copia local de freeCodeCamp, puedes seguir estas instruccio
|
||||
|
||||
Si tiene problemas, primero realice una búsqueda web para su problema y compruebe si ya ha sido respondida. Si no encuentra una solución, por favor busque en nuestra página [GitHub issues](https://github.com/freeCodeCamp/freeCodeCamp/issues) para una solución e infórmese del problema si aún no ha sido reportado.
|
||||
|
||||
And as always, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [our chat server](https://discord.gg/PRyKn3Vbay).
|
||||
Y como siempre, sientase libre de hacer preguntas en la categoría ['Contributors' en nuestro foro](https://forum.freecodecamp.org/c/contributors) o en [nuestro servidor de chat](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
> [!TIP] Puedes optar por no ejecutar freeCodeCamp localmente si simplemente estas editando archivos. Por ejemplo, realizar un `rebase`, or resolver conflictos `merge`.
|
||||
>
|
||||
@@ -244,13 +244,13 @@ npm run develop
|
||||
|
||||
Este único comando lanzará todos los servicios, incluyendo el servidor API y las aplicaciones cliente disponibles para que usted trabaje.
|
||||
|
||||
> [!NOTE] Una vez listo, abre tu navegador y ** visita <http://localhost:8000>**. If the app loads, sign in. Congratulations – you're all set! You now have a copy of freeCodeCamp's entire learning platform running on your local machine.
|
||||
> [!NOTE] Una vez listo, abre tu navegador y ** visita <http://localhost:8000>**. Si la aplicación se carga, inicia sesión. Enhorabuena, ¡ya está todo listo! Ahora tienes una copia de toda la plataforma de aprendizaje de freeCodeCamp funcionando en tu máquina local.
|
||||
|
||||
> [!TIP] La URL de la API es `http://localhost:3000`. La aplicación Gatsby corre en `http://localhost:8000`
|
||||
|
||||
> While you are logged in, if you visit <http://localhost:3000/explorer> you should see the available APIs.
|
||||
> Mientras está conectado, si visita <http://localhost:3000/explorer> debería ver las APIs disponibles.
|
||||
|
||||
> [!WARNING] Clearing your cookies or running `npm run seed:certified-user` will log you out, and you will have to sign in again.
|
||||
> [!WARNING] Al borrar las cookies o ejecutar `npm run seed:certified-user` se cerrará la sesión, y tendrás que volver a iniciar sesión.
|
||||
|
||||
## Iniciar sesión con un usuario local
|
||||
|
||||
@@ -498,7 +498,7 @@ Si estás en un sistema operativo diferente y/o todavía tienes problemas, consu
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Please avoid creating GitHub issues for prerequisite issues. They are out of the scope of this project.
|
||||
> Evita crear propuestas de GitHub para problemas de requisitos previos. Están fuera del alcance de este proyecto.
|
||||
|
||||
### Problemas con la interfaz de usuario, fuentes, errores de compilación, etc.
|
||||
|
||||
@@ -568,10 +568,10 @@ Si obtiene errores durante la instalación de las dependencias, por favor asegú
|
||||
|
||||
La primera configuración puede tardar un rato dependiendo del ancho de banda de su red. Tenga paciencia, y si todavía está atascado le recomendamos usar GitPod en lugar de una configuración sin conexión.
|
||||
|
||||
> [!NOTE] If you are using Apple Devices with M1 Chip to run the application locally, it is suggested to use Node v14.7 or above. You might run into issues with dependencies like Sharp otherwise.
|
||||
> [!NOTE] Si está utilizando dispositivos Apple con chip M1 para ejecutar la aplicación localmente, se sugiere utilizar Node v14.7 o superior. De lo contrario, podría tener problemas con dependencias como Sharp.
|
||||
|
||||
## Obteniendo ayuda
|
||||
|
||||
If you are stuck and need help, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [the contributors chat room](https://discord.gg/PRyKn3Vbay).
|
||||
Si estás atascado y necesitas ayuda, siéntete libre de hacer preguntas en la categoría de ['Contributors' en nuestro foro](https://forum.freecodecamp.org/c/contributors) o en [la sala de chat de contribuidores](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
Puede haber un error en la consola de su navegador o en Bash / Terminal / Command Line que le ayudará a identificar el problema. Proporcione este mensaje de error en la descripción de su problema para que otros puedan identificar el problema más fácilmente y ayudarle a encontrar una solución.
|
||||
|
||||
@@ -1,110 +1,110 @@
|
||||
Follow this guide for setting up the freeCodeCamp mobile app locally on your system. This is highly recommended if you want to contribute regularly.
|
||||
Siga esta guía para establecer la aplicación móvil FreeCodeCamp en su sistema. Es altamente recomentado si se quiere contribuir regularmente.
|
||||
|
||||
Some of the contribution workflows – like fixing bugs in the codebase – need you to run freeCodeCamp app locally.
|
||||
Algunos de los flujos de trabajo de contribución – como corregir errores en el código base – necesitan que ejecutes la app de freeCodeCamp localmente en tu ordenador.
|
||||
|
||||
### How to prepare your local machine
|
||||
### Cómo preparar tu máquina local
|
||||
|
||||
Start by installing the prerequisite software for your operating system.
|
||||
Empezar instalando el software requerido previamente para su sistema operativo.
|
||||
|
||||
#### Prerequisites:
|
||||
#### Requisitos previos:
|
||||
|
||||
| Prerequisite | Version | Notes |
|
||||
| --------------------------------- | ------- | ---------------------------------------- |
|
||||
| [Flutter](https://flutter.dev/) | `3.x` | - |
|
||||
| Dart (comes bundled with Flutter) | `2.x` | We use the version bundled with Flutter. |
|
||||
| Requisito | Versión | Notas |
|
||||
| ------------------------------- | ------- | ---------------------------------------- |
|
||||
| [Flutter](https://flutter.dev/) | `3.x` | - |
|
||||
| Dart (viene junto con Flutter) | `2.x` | Usamos la versión que viene con Flutter. |
|
||||
|
||||
> [!ATTENTION] If you have a different version, please install the recommended version. We can only support installation issues for recommended versions.
|
||||
> [ATENCIÓN!] Si hay una versión diferente, por favor instalar la versión recomendada. Solo daremos soporte a problemas de instalación de versiones recomendadas.
|
||||
|
||||
If Flutter is already installed on your machine, run the following commands to validate the versions:
|
||||
Si Flutter ya está instalado en su equipo, ejecute los siguientes comandos para verificar la versión:
|
||||
|
||||
```console
|
||||
flutter --version
|
||||
dart --version
|
||||
```
|
||||
|
||||
> [!TIP] We highly recommend updating to the latest stable releases of the software listed above.
|
||||
> [!TIP] Pedimos encarecidamente actualizar a la última version "stable" del siguiente software.
|
||||
|
||||
Once you have the prerequisites installed, you need to prepare your development environment. This is common for many development workflows, and you will only need to do this once.
|
||||
Una vez que estén instalados los requisitos previos, hay que preparar el entorno de desarrollo. Es muy común para muchos equipos de trabajo, y solo hace falta hacerlo una vez.
|
||||
|
||||
##### Follow these steps to get your development environment ready:
|
||||
##### Seguir estos pasos para tener listo el entorno de desrrollo:
|
||||
|
||||
1. Install [Git](https://git-scm.com/) or your favorite Git client, if you haven't already. Update to the latest version; the version that came bundled with your OS may be outdated.
|
||||
1. Instalar [Git](https://git-scm.com/) u otro cliente Git, si todavía no hay ningumo. Acualizar a la versión más reciente. La que viene con el sistema operativo puede estar desactualizada.
|
||||
|
||||
2. Setup [Android Studio](https://developer.android.com/studio) and [Android Emulators](https://developer.android.com/studio/run/managing-avds) with the latest released Android version. We recommend using the Pixel 3a XL and Nexus One(for emulating smaller screens).
|
||||
2. Configurar [Android Studio](https://developer.android.com/studio) y [Android Emulators](https://developer.android.com/studio/run/managing-avds) con la última versión liberada de Android. Recomendamos usar Pixel 3a XL y Nexus One(para emular pantallas más pequeñas).
|
||||
|
||||
3. (Optional for MacOS) Setup Xcode and iOS Simulator with the latest released iOS version.
|
||||
3. (Opcional para MacOS) Configurar Xcode e iOS Simulator con la última versión liberada de iOS.
|
||||
|
||||
4. (Optional but recommended) [Set up an SSH Key](https://help.github.com/articles/generating-an-ssh-key/) for GitHub.
|
||||
4. (Opcional pero recomendado) [Configurar una clave SSH](https://help.github.com/articles/generating-an-ssh-key/) para GitHub.
|
||||
|
||||
5. Install a code editor of your choice.
|
||||
5. Instala un editor de código de tu elección.
|
||||
|
||||
We highly recommend using [Visual Studio Code](https://code.visualstudio.com/) or Android Studio. We also recommend installing the official [extensions](https://docs.flutter.dev/get-started/editor?tab=vscode).
|
||||
Recomendamos utilizar [Visual Studio Code](https://code.visualstudio.com/) o Android Studio. También recomendamos instalar las [extensiones oficiales](https://docs.flutter.dev/get-started/editor?tab=vscode).
|
||||
|
||||
## Fork the repository on GitHub
|
||||
## Fork del repositorio en GitHub
|
||||
|
||||
[Forking](https://help.github.com/articles/about-forks/) is a step where you get your own copy of the repository (a.k.a _repo_) on GitHub.
|
||||
[Fork](https://help.github.com/articles/about-forks/) es un paso donde consigues tu propia copia del repositorio (conocido como _repo_) en GitHub.
|
||||
|
||||
This is essential, as it allows you to work on your own copy of freeCodeCamp mobile app on GitHub, or to download (clone) your repository to work on locally. Later, you will be able to request changes to be pulled into the main repository from your fork via a pull request (PR).
|
||||
Esto es esencial, te permite trabajar en tu propia copia de la app móvil de freeCodeCamp en GitHub, o descargar (clonar) tu repositorio para trabajar localmente. Más adelant, podrás solicitar cambios para que se muestren en el repositorio principal de tu "fork" (bifurcación) a través de una "pull request" (PR).
|
||||
|
||||
> [!TIP] The main repository at `https://github.com/freeCodeCamp/mobile` is often referred to as the `upstream` repository.
|
||||
> [!TIP] El repositorio principal en `https://github.com/freeCodeCamp/mobile` es frecuentemente conocido como el repositorio `upstream`.
|
||||
>
|
||||
> Your fork at `https://github.com/YOUR_USER_NAME/mobile` is often referred to as the `origin` repository. `YOUR_USER_NAME` would be replaced with your GitHub username.
|
||||
> Tu fork en `https://github.com/YOUR_USER_NAME/mobile` suele referirse como el repositorio `origin`. `YOUR_USER_NAME` será remplazado con tu nombre de usuario de GitHub.
|
||||
|
||||
**Follow these steps to fork the `https://github.com/freeCodeCamp/mobile` repository:**
|
||||
**Sigue estos pasos para hacer un for del repositorio `https://github.com/freeCodeCamp/mobile`:**
|
||||
|
||||
1. Go to the freeCodeCamp mobile repository on GitHub: <https://github.com/freeCodeCamp/mobile>
|
||||
1. Ve al repositorio freeCodeCamp móvil en GitHub: <https://github.com/freeCodeCamp/mobile>
|
||||
|
||||
2. Click the "Fork" Button in the upper right-hand corner of the interface ([More Details Here](https://help.github.com/articles/fork-a-repo/))
|
||||
2. Haz clic en el botón "Fork" en la esquina superior derecha de la interfaz ([Más detalles aquí](https://help.github.com/articles/fork-a-repo/))
|
||||
|
||||
3. After the repository has been forked, you will be taken to your copy of the repository at `https://github.com/YOUR_USER_NAME/mobile` (`YOUR_USER_NAME` would be replaced with your GitHub user name.)
|
||||
3. Después de haber hecho fork al repositorio, serás llevado a tu copia del repositorio en `https://github. om/NOMBRE_DE_USUARIO/mobile` (`OMBRE_DE_USUARIO` sería reemplazado con tu nombre de usuario de GitHub.)
|
||||
|
||||
## Clone your fork from GitHub
|
||||
## Clonar tu fork desde GitHub
|
||||
|
||||
[Cloning](https://help.github.com/articles/cloning-a-repository/) is where you **download** a copy of a repository from a `remote` location that is either owned by you or by someone else. In your case, this remote location is your `fork` of freeCodeCamp's repository that should be available at `https://github.com/YOUR_USER_NAME/mobile`. (`YOUR_USER_NAME` would be replaced with your GitHub user name.)
|
||||
"[Clonar](https://help.github.com/articles/cloning-a-repository/)" es donde tú "**descargas**" una copia de un repositorio desde una localización "`remota`" que es propiedad tuya o de alguien más. En tu caso, esta localización remota es tu "`fork`" del repositorio de freeCodeCamp que debería estar disponible en `https://github.com/TU_NOMBRE_DE_USUARIO/mobile`. (`TU_NOMBRE_DE_USUARIO` debería ser reemplazado con tu nombre de usuario de GitHub.)
|
||||
|
||||
Run these commands on your local machine:
|
||||
Ejecuta estos comandos en tu máquina local:
|
||||
|
||||
1. Open a Terminal / Command Prompt / Shell in your projects directory
|
||||
1. Abre una Terminal / Símbolo del sistema / Shell en el directorio de proyectos
|
||||
|
||||
_i.e.: `/yourprojectsdirectory/`_
|
||||
_ejemplo: `/directoriodetusproyectos/`_
|
||||
|
||||
2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username
|
||||
2. Clona tu fork de freeCodeCamp, reemplazando `TU_NOMBRE_DE_USUARIO` por tu nombre de usuario de GitHub
|
||||
|
||||
```console
|
||||
git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git
|
||||
git clon --depth=1 https://github.com/TU_NOMBRE_DE_USUARIO/mobile.git
|
||||
```
|
||||
|
||||
This will download the entire freeCodeCamp mobile repository to your projects directory.
|
||||
Esto descargará el repositorio entero de freeCodeCamp móvil en tu directorio de proyectos.
|
||||
|
||||
Note: `--depth=1` creates a shallow clone of your fork, with only the most recent history/commit.
|
||||
Nota: `--depth=1` crea un clon superficial de tu fork con solo la historia/commit más reciente.
|
||||
|
||||
## Set up syncing from parent
|
||||
## Configurar sincronización desde el padre
|
||||
|
||||
Now that you have downloaded a copy of your fork, you will need to set up an `upstream` remote to the parent repository.
|
||||
Ahora que has descargado una copia de tu fork, necesitarás configurar un `upstream` remoto en el repositorio padre.
|
||||
|
||||
[As mentioned earlier](#fork-the-repository-on-github), the main repository is referred `upstream` repository. Your fork referred to as the `origin` repository.
|
||||
[Como se mencionó anteriormente](#fork-the-repository-on-github), el repositorio principal es referido repositorio `upstream`. Tu fork conocido como el repositorio de `origen`.
|
||||
|
||||
You need a reference from your local clone to the `upstream` repository in addition to the `origin` repository. This is so that you can sync changes from the main repository without the requirement of forking and cloning repeatedly.
|
||||
Necesitas una referencia de tu clon local al repositorio `upstream` además del repositorio `origin`. Esto es para que puedas sincronizar los cambios desde el repositorio principal sin el requisito de hacer fork y clonar repetidamente.
|
||||
|
||||
1. Change directory to the new `mobile` directory:
|
||||
1. Cambiar el directorio al nuevo directorio `móvil`:
|
||||
|
||||
```console
|
||||
cd mobile
|
||||
```
|
||||
|
||||
2. Add a remote reference to the main freeCodeCamp mobile repository:
|
||||
2. Añadir una referencia remota al repositorio principal de freeCodeCamp móvil:
|
||||
|
||||
```console
|
||||
git remote add upstream https://github.com/freeCodeCamp/mobile.git
|
||||
```
|
||||
|
||||
3. Ensure the configuration looks correct:
|
||||
3. Asegúrate de que la configuración se vea correcta:
|
||||
|
||||
```console
|
||||
git remote -v
|
||||
```
|
||||
|
||||
The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username):
|
||||
La salida debería verse parecida a como se muestra debajo (remplazando `TU_NOMBRE_DE_USUARIO` con tu usuario de GitHub):
|
||||
|
||||
```console
|
||||
origin https://github.com/YOUR_USER_NAME/mobile.git (fetch)
|
||||
@@ -113,25 +113,25 @@ You need a reference from your local clone to the `upstream` repository in addit
|
||||
upstream https://github.com/freeCodeCamp/mobile.git (push)
|
||||
```
|
||||
|
||||
## Running freeCodeCamp mobile app locally
|
||||
## Ejecutar la app móvil de freeCodeCamp localmente
|
||||
|
||||
Now that you have a local copy of the mobile app, you can follow these instructions to run it locally.
|
||||
Ahora que tienes una copia local de la app móvil de freeCodeCamp, puedes seguir estas instrucciones para ejecutarla localmente.
|
||||
|
||||
If you do run into issues, first perform a web search for your issue and see if it has already been answered. If you cannot find a solution, please search our [GitHub issues](https://github.com/freeCodeCamp/mobile/issues) page for a solution and report the issue if it has not yet been reported.
|
||||
Si tienes problemas, primero realiza una búsqueda web para tu problema y comprueba si ya ha sido respondida. Si no encuentras una solución, por favor busca en nuestra página [GitHub issues](https://github.com/freeCodeCamp/mobile/issues) para una solución y reporta el problema si aún no ha sido reportado.
|
||||
|
||||
And as always, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [our chat server](https://discord.gg/PRyKn3Vbay).
|
||||
Y como siempre, siéntete libre de preguntar en la categoría ['Contribuyentes' en nuestro foro](https://forum.freecodecamp.org/c/contributors) o [nuestro servidor de chat](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
> [!NOTE] The `mobile` directory contains two folders ie. `mobile-api` and `mobile-app`. `mobile-api` contains the API code used for serving the podcasts. `mobile-app` contains the Flutter app which is where you should be when you follow the below steps.
|
||||
> [!NOTE] El directorio `móvil` contiene dos carpetas, por ejemplo: `mobile-api` y `mobile-app`. `mobile-api` contiene el código API utilizado para ejecutar los podcasts. `mobile-app` contiene la aplicación Flutter que es donde deberías estar cuando siga los pasos siguientes.
|
||||
|
||||
### Configuring dependencies
|
||||
### Configurar dependencias
|
||||
|
||||
#### Step 1: Set up the environment variable file
|
||||
#### Paso 1: Configurar el archivo de variable de entorno
|
||||
|
||||
The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. Remember to change the directory to `mobile-app` before running the following commands.
|
||||
Las claves de la API por defecto y las variables de entorno se almacenan en el archivo `sample.env`. El contenido de este archivo necesita ser copiado a un nuevo archivo llamado `.env` para que se acceda dinámicamente durante el paso de la instalación. Recuerda cambiar el directorio a `mobile-app` antes de ejecutar los siguientes comandos.
|
||||
|
||||
```console
|
||||
# Create a copy of the "sample.env" and name it ".env".
|
||||
# Populate it with the necessary API keys and secrets:
|
||||
# Crear una copia del "sample.env" y nombrarla ".env".
|
||||
# Llenarlo con las keys y secrets de la API necesarios:
|
||||
```
|
||||
|
||||
<!-- tabs:start -->
|
||||
@@ -150,41 +150,41 @@ copy sample.env .env
|
||||
|
||||
<!-- tabs:end -->
|
||||
|
||||
The keys in the `.env` file are _not_ required to be changed to run the app locally. You can leave the default values copied over from `sample.env` as-is.
|
||||
Las claves dentro del archivo `.env` _no_ requieren ser cambiadas para correr la aplicación de forma local. Puedes dejar los valores por defecto copiados desde `sample.env`.
|
||||
|
||||
#### Step 2: Install dependencies
|
||||
#### Paso 2: Instalar dependencias
|
||||
|
||||
This step will install the dependencies required for the application to run:
|
||||
Este paso instalará las dependencias necesarias para que la aplicación se ejecute:
|
||||
|
||||
```console
|
||||
flutter pub get
|
||||
```
|
||||
|
||||
#### Step 3: Start the freeCodeCamp mobile app
|
||||
#### Paso 3: Iniciar la app móvil de freeCodeCamp
|
||||
|
||||
Start the emulator of your choice(Android or iOS) and wait for the bootup process to complete.
|
||||
Inicia el emulador de tu elección (Android o iOS) y espera a que se complete el proceso de arranque.
|
||||
|
||||
You can now start the app by running the following command:
|
||||
Ahora puedes iniciar la aplicación ejecutando el siguiente comando:
|
||||
|
||||
```console
|
||||
flutter run
|
||||
```
|
||||
|
||||
> [!TIP] If you're using VSCode or Android Studio then you can easily start the app without having to execute any terminal commands. More information [here](https://docs.flutter.dev/get-started/test-drive).
|
||||
> [!TIP] Si estás utilizando VSCode o Android Studio entonces puedes iniciar fácilmente la aplicación sin tener que ejecutar ningún comando en la terminal. Más información [aquí](https://docs.flutter.dev/get-started/test-drive).
|
||||
|
||||
## Making changes locally
|
||||
## Hacer cambios localmente
|
||||
|
||||
You can now make changes to files and commit your changes to your local clone of your fork.
|
||||
Ahora puedes hacer cambios en archivos y hacer commit de los cambios en tu clon local de tu fork.
|
||||
|
||||
Follow these steps:
|
||||
Sigue estos pasos:
|
||||
|
||||
1. Validate that you are on the `main` branch:
|
||||
1. Valida que estás en la rama `main`:
|
||||
|
||||
```console
|
||||
git status
|
||||
```
|
||||
|
||||
You should get an output like this:
|
||||
Deberías obtener una salida como esta:
|
||||
|
||||
```console
|
||||
On branch main
|
||||
@@ -193,59 +193,59 @@ Follow these steps:
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
If you are not on main or your working directory is not clean, resolve any outstanding files/commits and checkout `main`:
|
||||
Si no estás en main o tu directorio de trabajo no está limpio, resuelve cualquier archivos/commits pendientes y comprueba `main`:
|
||||
|
||||
```console
|
||||
git checkout main
|
||||
```
|
||||
|
||||
2. Sync the latest changes from the upstream `main` branch to your local main branch:
|
||||
2. Sincroniza los últimos cambios desde la rama principal `main` a tu rama local main:
|
||||
|
||||
> [!WARNING] If you have any outstanding pull request that you made from the `main` branch of your fork, you will lose them at the end of this step.
|
||||
> [!WARNING] Si tienes algún pull request pendiente que hayas hecho desde la rama `main` de tu fork, los perderás al final de este paso.
|
||||
>
|
||||
> You should ensure your pull request is merged by a moderator before performing this step. To avoid this scenario, you should **always** work on a branch other than the `main`.
|
||||
> Deberías asegurarte de que tu pull request esté hecho merge por un moderador antes de realizar este proceso. Para evitar este escenario, deberías **siempre** trabajar en una rama que no sea `main`.
|
||||
|
||||
This step **will sync the latest changes** from the main repository of freeCodeCamp mobile. It is important that you rebase your branch on top of the latest `upstream/main` as often as possible to avoid conflicts later.
|
||||
Este paso **sincronizará los últimos cambios** desde el repositorio móvil de freeCodeCamp. Es importante que hagas rebase de tu rama sobre la última `principal/main` tan a menudo como sea posible para evitar conflictos más tarde.
|
||||
|
||||
Update your local copy of the freeCodeCamp mobile upstream repository:
|
||||
Actualiza tu copia local del repositorio de freeCodeCamp móvil:
|
||||
|
||||
```console
|
||||
git fetch upstream
|
||||
```
|
||||
|
||||
Hard reset your main branch with the freeCodeCamp mobile main:
|
||||
Restablece tu rama main con el main de freeCodeCamp móvil:
|
||||
|
||||
```console
|
||||
git reset --hard upstream/main
|
||||
```
|
||||
|
||||
Push your main branch to your origin to have a clean history on your fork on GitHub:
|
||||
Has push de tu rama main a tu origen para tener un historial limpio en tu fork en GitHub:
|
||||
|
||||
```console
|
||||
git push origin main --force
|
||||
```
|
||||
|
||||
You can validate your current main matches the upstream/main by performing a diff:
|
||||
Puedes validar que tu main actual concuerda con el upstream/main realizando un diff:
|
||||
|
||||
```console
|
||||
git diff upstream/main
|
||||
```
|
||||
|
||||
The resulting output should be empty.
|
||||
La salida resultante debería estar vacía.
|
||||
|
||||
3. Create a fresh new branch:
|
||||
3. Crear una nueva rama:
|
||||
|
||||
Working on a separate branch for each issue helps you keep your local work copy clean. You should never work on the `main`. This will soil your copy of freeCodeCamp mobile and you may have to start over with a fresh clone or fork.
|
||||
Trabajar en una rama separada para cada asunto te ayuda a mantener limpia tu copia de trabajo local. Nunca deberías trabajar en `main`. Esto sumergirá tu copia de freeCodeCamp móvil y puede que tengas que empezar otra vez con un clon o un fork nuevo.
|
||||
|
||||
Check that you are on `main` as explained previously, and branch off from there:
|
||||
Comprueba que estás en `main` como se explicó anteriormente, y ramifica desde ahí:
|
||||
|
||||
```console
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
Your branch name should start with a `fix/`, `feat/`, `docs/`, etc. Avoid using issue numbers in branches. Keep them short, meaningful and unique.
|
||||
Tu nombre de rama debería comenzar con `fix/`, `feat/`, `docs/`, etc. Evita el uso de números de incidencia en las ramas. Manténlos cortos, significativos y únicos.
|
||||
|
||||
Some examples of good branch names are:
|
||||
Algunos ejemplos de buenos nombres de ramas son:
|
||||
|
||||
```md
|
||||
fix/update-challenges-for-react
|
||||
@@ -255,19 +255,19 @@ Follow these steps:
|
||||
translate/add-spanish-basic-html
|
||||
```
|
||||
|
||||
4. Edit pages and work on code in your favorite text editor.
|
||||
4. Edita páginas y trabaja en el código en tu editor de texto favorito.
|
||||
|
||||
5. Once you are happy with the changes you should optionally run the mobile app locally to preview the changes.
|
||||
5. Una vez que estés contento con los cambios, deberías ejecutar la aplicación móvil localmente para previsualizar los cambios (opcional).
|
||||
|
||||
6. Make sure you fix any errors and check the formatting of your changes.
|
||||
6. Asegúrate de corregir los errores y comprobar el formato de tus cambios.
|
||||
|
||||
7. Check and confirm the files you are updating:
|
||||
7. Comprueba y confirma los archivos que estás actualizando:
|
||||
|
||||
```console
|
||||
git status
|
||||
```
|
||||
|
||||
This should show a list of `unstaged` files that you have edited.
|
||||
Esto debería mostrar una lista de archivos `unstaged` que has editado.
|
||||
|
||||
```console
|
||||
On branch feat/documentation
|
||||
@@ -282,27 +282,27 @@ Follow these steps:
|
||||
...
|
||||
```
|
||||
|
||||
8. Stage the changes and make a commit:
|
||||
8. Organizar los cambios y hacer un commit:
|
||||
|
||||
In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed.
|
||||
En este paso, sólo deberías marcar los archivos que has editado o añadido tu mismo. Puede realizar un reset y resolver archivos que no tenías intención de cambiar si es necesario.
|
||||
|
||||
```console
|
||||
git add path/to/my/changed/file.ext
|
||||
git add ruta/al/archivo/editado.ext
|
||||
```
|
||||
|
||||
Or you can add all the `unstaged` files to the staging area:
|
||||
O puedes añadir todos los archivos que no estén `organizados` al área de staging:
|
||||
|
||||
```console
|
||||
git add .
|
||||
```
|
||||
|
||||
Only the files that were moved to the staging area will be added when you make a commit.
|
||||
Sólo los archivos que fueron movidos al área de staging serán añadidos cuando hagas un commit.
|
||||
|
||||
```console
|
||||
git status
|
||||
```
|
||||
|
||||
Output:
|
||||
Salida:
|
||||
|
||||
```console
|
||||
On branch feat/documentation
|
||||
@@ -315,24 +315,24 @@ Follow these steps:
|
||||
modified: mobile-app/lib/main.dart
|
||||
```
|
||||
|
||||
Now, you can commit your changes with a short message like so:
|
||||
Ahora, puedes hace commit de tus cambios con un mensaje corto, así:
|
||||
|
||||
```console
|
||||
git commit -m "fix: my short commit message"
|
||||
git commit -m "fix: mensaje corto"
|
||||
```
|
||||
|
||||
Some examples:
|
||||
Algunos ejemplos:
|
||||
|
||||
```md
|
||||
fix: update guide article for Java - for loop
|
||||
feat: add guide article for alexa skills
|
||||
```
|
||||
|
||||
Optional:
|
||||
Opcional:
|
||||
|
||||
We highly recommend making a conventional commit message. This is a good practice that you will see on some of the popular Open Source repositories. As a developer, this encourages you to follow standard practices.
|
||||
Recomendamos encarecidamente hacer un mensaje de commit convencional. Esta es una buena práctica que verás en algunos de los repositorios de Código Abierto populares. Como desarrollador, esto te anima a seguir las prácticas estándar.
|
||||
|
||||
Some examples of conventional commit messages are:
|
||||
Algunos ejemplos de mensajes de commits convencionales son:
|
||||
|
||||
```md
|
||||
fix: update HTML guide article
|
||||
@@ -341,29 +341,29 @@ Follow these steps:
|
||||
docs: update contributing guidelines
|
||||
```
|
||||
|
||||
Keep these short, not more than 50 characters. You can always add additional information in the description of the commit message.
|
||||
Manténlos cortos, no más de 50 caracteres. Siempre puedes añadir información adicional en la descripción del mensaje del commit.
|
||||
|
||||
This does not take any additional time than an unconventional message like 'update file' or 'add index.md'
|
||||
Esto no toma más tiempo que un mensaje no convencional como 'actualizar archivo' o 'añadir index.md'
|
||||
|
||||
You can learn more about why you should use conventional commits [here](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits).
|
||||
Puedes aprender más sobre por qué debes usar commits convencionales [aquí](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits).
|
||||
|
||||
9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with:
|
||||
9. Si te das cuenta de que necesitas editar un archivo o actualizar el mensaje de confirmación después de hacer un commit puedes hacerlo después de editar los archivos con:
|
||||
|
||||
```console
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
This will open up a default text editor like `nano` or `vi` where you can edit the commit message title and add/edit the description.
|
||||
Esto abrirá un editor de texto predeterminado como `nano` o `vi` donde puedes editar el título del mensaje de commit y añadir/editar la descripción.
|
||||
|
||||
10. Next, you can push your changes to your fork:
|
||||
10. A continuación, puedes enviar tus cambios a tu fork:
|
||||
|
||||
```console
|
||||
git push origin branch/name-here
|
||||
git push origin nombre/rama-aqui
|
||||
```
|
||||
|
||||
## Proposing a Pull Request (PR)
|
||||
## Proponer una Pull Request (PR)
|
||||
|
||||
After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md).
|
||||
Después de que hayas hecho commit de tus cambios, consulta aquí [cómo abrir una Pull Request](how-to-open-a-pull-request.md).
|
||||
|
||||
<!-- ## Quick commands reference - NEED TO DISCUSS ABOUT THIS
|
||||
|
||||
@@ -374,32 +374,32 @@ A quick reference to the commands that you will need when working locally.
|
||||
| `npm ci` | Installs / re-install all dependencies and bootstraps the different services. |
|
||||
| `npm run seed` | Parses all the challenge markdown files and inserts them into MongoDB. | -->
|
||||
|
||||
## Troubleshooting
|
||||
## Solución de problemas
|
||||
|
||||
### Issues with installing the recommended prerequisites
|
||||
### Problemas con la instalación de los prerrequisitos recomendados
|
||||
|
||||
We regularly develop on the latest or most popular operating systems like macOS 10.15 or later, Ubuntu 18.04 or later, and Windows 10 (with WSL2).
|
||||
Regularmente desarrollamos en los últimos o sistemas operativos más populares como macOS 10.15 o posterior, Ubuntu 18.04 o posterior y Windows 10 (con WSL2).
|
||||
|
||||
It is recommended to research your specific issue on resources such as Google, Stack Overflow, and Stack Exchange. There is a good chance that someone has faced the same issue and there is already an answer to your specific query.
|
||||
Se recomienda buscar tu problema específico en recursos como Google, Stack Overflow y Stack Exchange. Existe la posibilidad de que alguien haya tenido el mismo problema y ya exista una respuesta a tu pregunta específica.
|
||||
|
||||
If you are on a different OS and/or are still running into issues, see [getting help](#getting-help).
|
||||
Si estás en un sistema operativo diferente y/o todavía tienes problemas, consulta [obtener ayuda](#getting-help).
|
||||
|
||||
### Issues with the UI, build errors, etc.
|
||||
### Problemas con la interfaz de usuario, fuentes, errores de compilación, etc.
|
||||
|
||||
If you face issues with the UI, or builds errors a cleanup can be useful:
|
||||
Si tienes problemas con la interfaz de usuario, o errores de compilación, una limpieza puede ser útil:
|
||||
|
||||
```console
|
||||
flutter clean
|
||||
```
|
||||
|
||||
### Issues installing dependencies
|
||||
### Problemas al instalar dependencias
|
||||
|
||||
If you get errors while installing the dependencies, please make sure that you are not in a restricted network or your firewall settings do not prevent you from accessing resources.
|
||||
Si obtienes errores al instalar las dependencias, por favor asegúrate de que no estés en una red restringida o que tu configuración de firewall no te impida acceder a los recursos.
|
||||
|
||||
Be patient as the first time setup can take a while depending on your network bandwidth.
|
||||
Se paciente ya que la primera configuración puede tomar un tiempo dependiendo del ancho de banda de tu red.
|
||||
|
||||
## Getting Help
|
||||
## Obtener ayuda
|
||||
|
||||
If you are stuck and need help, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [the contributors chat room](https://discord.gg/PRyKn3Vbay).
|
||||
Si estás atascado y necesitas ayuda, siéntete libre de hacer preguntas en la categoría de ['Contribuyentes' en nuestro foro](https://forum.freecodecamp.org/c/contributors) o en [la sala de chat de contribuyentes](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
There might be an error in the console of your browser or in Bash / Terminal / Command Line that will help identify the problem. Provide this error message in your problem description so others can more easily identify the issue and help you find a resolution.
|
||||
Puede haber un error en la consola de tu navegador o en Bash / Terminal / Línea de comandos que te ayudará a identificar el problema. Proporciona este mensaje de error en la descripción de tu problema para que otros puedan identificar el problema más fácilmente y ayudarte a encontrar una solución.
|
||||
|
||||
@@ -127,7 +127,7 @@ Ahora que has instalado los requisitos previos, sigue[nuestra guía de configura
|
||||
|
||||
## Enlaces útiles
|
||||
|
||||
- [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org)
|
||||
- [Una configuración de desarrollador de WSL2 con Ubuntu 20.04, Node.js, MongoDB, VS Code y Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - un artículo de Mrugesh Mohapatra (Staff Developer en freeCodeCamp.org)
|
||||
- Preguntas frecuentes sobre:
|
||||
- [Subsistema de Windows para Linux](https://docs.microsoft.com/en-us/windows/wsl/faq)
|
||||
- [Docker Desktop para Windows](https://docs.docker.com/docker-for-windows/faqs)
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
|
||||
## Prepárate para las contribuciones
|
||||
|
||||
> The freeCodeCamp Localization Roadmap – There Are No Speed Limits
|
||||
> Guía de orientación de freeCodeCamp - Sin límites de velocidad
|
||||
|
||||
> [!TIP] You can start by reading [this announcement](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/). We recommend joining [our community forum](https://forum.freecodecamp.org/c/contributors/3) and [Discord chat server](https://discord.gg/PRyKn3Vbay).
|
||||
> [!TIP] Puedes comenzar leyendo [este anuncio](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/). Recomendamos unirte a [nuestro foro de la comunidad](https://forum.freecodecamp.org/c/contributors/3) y al [servidor de Discord](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
You can translate as much as you want, when you want. It's only a matter of how much time and energy you are willing to invest as a volunteer translator.
|
||||
Puedes traducir tanto como quieras, y cuando quieras. Es solo cuestión de cuánto tiempo y energía estás dispuesto a invertir como traductor voluntario.
|
||||
|
||||
We just ask that you understand the following:
|
||||
solo queremos que entiendas lo siguiente:
|
||||
|
||||
1. **Las traducciones son un esfuerzo de equipo.**
|
||||
|
||||
Traducir los recursos de freeCodeCamp es una de las experiencias más divertidas y gratificantes como colaborador, y funciona mejor si involucras a tus amigos y colegas que hablan el mismo idioma que tú.
|
||||
|
||||
You can start by reading [this announcement](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/). We recommend joining [our community forum](https://forum.freecodecamp.org/c/contributors/3) and [Discord chat server](https://discord.gg/PRyKn3Vbay) with your friends and showing your interest before starting off with translations. Crowdin and other tools make it easy to contribute translations, but it's still a lot of work.
|
||||
Puedes comenzar leyendo [este anuncio](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/). Recomendamos te unas al [foro de la comunidad](https://forum.freecodecamp.org/c/contributors/3) y al [servidor de Discord](https://discord.gg/PRyKn3Vbay) con tus amigos, y muestres tu interés antes de comenzar a traducir. Crowdin y otras herramientas facilitan contribuir con traducciones, sin embargo, sigue siendo bastante de trabajo.
|
||||
|
||||
Queremos que disfrutes contribuyendo y no te canses o pierdas interés.
|
||||
|
||||
@@ -26,7 +26,7 @@ We just ask that you understand the following:
|
||||
|
||||
freeCodeCamp.org está comprometido a ofrecerlos gratis como siempre. Sin embargo, debemos priorizar los recursos para aquellos que más lo necesitan. Lo último que queremos es cerrar los servidores de un idioma si la actividad de traducción se apaga y las cosas se vuelven obsoletas.
|
||||
|
||||
For translating the curriculum, once a language reaches at least a few certifications we can begin deploying the language live on [`/learn`](https://www.freecodecamp.org/learn), while you continue to translate the remaining certifications.
|
||||
Al traducir el currículo, una vez que un idioma alcance al menos unas cuantas certificaciones, podremos comenzar a implementar el idioma en [`/learn`](https://www.freecodecamp.org/learn), mientras continúas traduciendo las certificaciones restantes.
|
||||
|
||||
Por ejemplo, nos gustaría implementar al menos toda la suite de certificaciones de front-end cuando enviamos un nuevo idioma por primera vez.
|
||||
|
||||
@@ -42,13 +42,13 @@ We just ask that you understand the following:
|
||||
|
||||
Una vez que tengas un pequeño grupo de personas (al menos 4-5) interesadas y comprometidas, podemos llamar. Te explicaremos todos los detalles y te guiaremos a través de algunas de las herramientas y procesos.
|
||||
|
||||
## Overview of Crowdin
|
||||
## Vista previa de Crowdin
|
||||
|
||||
It's our dream to provide you with the resources to learn, no matter the world language you speak. To help us with this massive effort, we have integrated our open-source code-base & curriculum with [Crowdin](https://crowdin.com/) - A tool to help us localize our code-base.
|
||||
Nuestro sueño es brindate los recursos para aprender, sin importar el idioma que hables. Para que nos ayuden con este gran esfuerzo, hemos integrado nuestro código-báse de código-abierto y nuestro currículo con [Crowdin](https://crowdin.com/) - Una herramienta que nos ayuda a localizar nuestro código-base.
|
||||
|
||||
> [!NOTE] We use a different tool and workflow for translating [news articles](https://www.freecodecamp.org/news). If you are interested in translating articles, read [this announcement](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/) and reach out to your Language Lead.
|
||||
> [!NOTE] Utilizamos una herramienta y un flujo de trabajo diferentes para traducir [artículos de noticias](https://www.freecodecamp.org/news). Si te interesa traducir artículos, lee [este anuncio](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/) y contacta al traductor lider de tu idioma.
|
||||
|
||||
The translation workflow is split into two main activities:
|
||||
El flujo de trabajo de traducción se divide en dos actividades principales:
|
||||
|
||||
- **Traduciendo** archivos de currículo, documentación y elementos de interfaz de usuario como botones, etiquetas, etc.:
|
||||
|
||||
@@ -58,11 +58,11 @@ The translation workflow is split into two main activities:
|
||||
|
||||
Los revisores verifican que las traducciones aportadas por la comunidad sean uniformes en el tono y libres de problemas comunes como errores tipográficos, etc. En resumen, aseguran que la calidad de las traducciones sea alta. Ten en cuenta que no utilizamos traducciones automáticas por una razón.
|
||||
|
||||
> [!WARNING] We are no longer using GitHub to translate files directly, if you are a returning contributor head to our [translation platform](https://translate.freecodecamp.org/) instead.
|
||||
> [!WARNING] Ya no estamos usando GitHub para traducir archivos directamente. Si fuiste colaborador y estás regresando, entonces dirígete a nuestra [plataforma de traducción](https://translate.freecodecamp.org/).
|
||||
|
||||
## Getting started
|
||||
## Comenzando
|
||||
|
||||
First, make sure you come say "Hi" in our [Discord](https://discord.gg/PRyKn3Vbay). Publicamos actualizaciones regulares sobre los recursos de traducción y respondemos a muchas de tus consultas allí.
|
||||
Primero, asegúrate de decir "Hola" en nuestro [Discord](https://discord.gg/PRyKn3Vbay). Publicamos actualizaciones regulares sobre los recursos de traducción y respondemos a muchas de tus consultas allí.
|
||||
|
||||
A continuación, dirígete a nuestro [plataforma de traducción](https://translate.freecodecamp.org/) e inicia sesión (si no has contribuido a traducciones anteriormente, deberás crear una cuenta).
|
||||
|
||||
@@ -70,7 +70,7 @@ Por último, ve a través del recorrido detallado a continuación para comprende
|
||||
|
||||
Feliz traducción.
|
||||
|
||||
## Select a Project and File
|
||||
## Selecciona un Proyecto y un Archivo
|
||||
|
||||
Una vez que visites la plataforma de traducción, verás varios "proyectos" disponibles para traducción:
|
||||
|
||||
@@ -90,9 +90,9 @@ Cada archivo y carpeta mostrará una barra de progreso. La parte **azul** de la
|
||||
|
||||
Selecciona un archivo para trabajar y Crowdin abrirá la vista de edición.
|
||||
|
||||
> [!NOTE] When the editor view opens, you will need to click the settings icon (shown as a gear) and switch the 'HTML tags displaying' setting to 'SHOW'. This will ensure you can see tags such as `<code></code>` instead of `<0></0>`.
|
||||
> [!NOTE] Cuando se abra la vista de edición, deberás hacer clic en el icono de configuración (que se muestra como un engranaje) y cambiar la configuración ''HTML tags displaying (Mostrar etiquetas HTML)" por "SHOW (Mostrar)". Esto asegurará que puedas ver las etiquetas como `<code></code>` en lugar de `<0></0>`.
|
||||
|
||||
## Translate Curriculum
|
||||
## Traducir el Currículo
|
||||
|
||||

|
||||
|
||||
@@ -109,49 +109,49 @@ Crowdin separa un documento en "cadenas" traducibles, normalmente oraciones. Cad
|
||||
9. Aquí puedes ver la ventana de comentarios. Si tienes preguntas o inquietudes sobre una cadena en particular, puedes dejar aquí un comentario sobre la cadena para que lo vean otros traductores.
|
||||
10. Estos dos botones de "panel" ocultarán las vistas izquierda (documento) y derecha (comentarios).
|
||||
|
||||
> [!NOTE] If you see a hidden string that includes translations, please notify us in the [Discord](https://discord.gg/PRyKn3Vbay) so we can remove the translation from memory.
|
||||
> [!NOTE] Si observas una cadena oculta que incluye traducciones, por favor notifícanos en el [Discord](https://discord.gg/PRyKn3Vbay) para que podemos eliminar esa traducción de la memoria.
|
||||
|
||||
Cuando hayas completado la traducción de una cadena, pulsa el botón `Save` (guardar) para almacenar tu traducción en Crowdin. Luego, otros contribuyentes podrán votar tu traducción y el equipo de revisores podrán aprobarla.
|
||||
|
||||
Eres bienvenido a traducir tantas cadenas como desees, no se requieren pasos adicionales cuando completas todo un archivo o propones una nueva traducción. Hacer clic en el botón `Save` es todo lo que se necesita para almacenar una traducción.
|
||||
|
||||
> [!NOTE] If you see something in the English source file that is inaccurate or incorrect, please do not fix it through the translation flow. Instead, leave a comment on the string to notify us that there is a discrepancy, or create a GitHub issue.
|
||||
> [!NOTE] Si ves algo en el archivo fuente en inglés que sea inexacto o incorrecto, por favor no lo corrijas a través del flujo de traducción. En su lugar, deja un comentario en la cadena para notificarnos que hay una discrepancia, o crea un issue en GitHub.
|
||||
|
||||
## Translate the Learn Interface
|
||||
## Traducir la Interfaz de Aprendizaje
|
||||
|
||||
Our `/learn` interface relies on JSON files loaded into an i18n plugin to generate translated text. This translation effort is split across both Crowdin and GitHub.
|
||||
Nuestra interfaz `/learn` se basa en archivos JSON cargados en un plugin i18n para generar texto traducido. Este esfuerzo de traducción está dividido entre Crowdin y GitHub.
|
||||
|
||||
### On GitHub
|
||||
### En GitHub
|
||||
|
||||
The `links.json`, `meta-tags.json`, `motivation.json`, and `trending.json` files contain information that needs to be updated to reflect your language. However, we cannot load these into Crowdin, as the content isn't something that would be a one-to-one translation.
|
||||
Los archivos `links.json`, `meta-tags.json`, `motivación.json` y `trending.json` contienen información que necesita ser actualizada para reflejar tu idioma. Sin embargo, no podemos cargarlos en Crowdin, ya que el contenido no es algo que sea una traducción uno-a-uno.
|
||||
|
||||
These files will most likely be maintained by your language lead but you are welcome to [read about how to translate them](language-lead-handbook.md).
|
||||
Estos archivos probablemente serán mantenidos por el líder de tu idioma, pero serás bienvenido a [leer sobre cómo traducirlos](language-lead-handbook.md).
|
||||
|
||||
### On Crowdin
|
||||
### En Crowdin
|
||||
|
||||
> [!ATTENTION] Do not edit the following files through a GitHub PR.
|
||||
> [!ATTENTION] No edites los siguientes archivos a través de un PR de GitHub.
|
||||
|
||||
The `intro.json` and `translations.json` files are both translated on Crowdin, in the Learn User Interface project. Translating these can be a bit tricky, as each individual JSON value appears as its own string and sometimes the context is missing.
|
||||
Los archivos `intro.json` y `translations.json` están traducidos en Crowdin, en el proyecto Learn User Interface. Traducir estos puede ser un poco complicado, ya que cada valor JSON individual aparece como su propia cadena y a veces falta contexto.
|
||||
|
||||
However, the `Context` information provided in Crowdin can help understand where the string fits in to the larger structure.
|
||||
Sin embargo, la información de `Contexto` proporcionada en Crowdin puede ayudar a entender dónde se ajusta la cadena a la estructura más grande.
|
||||
|
||||

|
||||

|
||||
|
||||
If you have any questions about where a string fits in to the prose, reach out to us in our [contributor chat](https://discord.gg/PRyKn3Vbay).
|
||||
Si tienes alguna pregunta sobre donde encaja una cadena en el texto, contacta con nosotros en nuestro [chat de colaborador](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
## Translate Documentation
|
||||
## Traducir la Documentación
|
||||
|
||||
Translating our contributing documentation is a similar flow to translating our curriculum files.
|
||||
Traducir nuestra documentación de contribución es un flujo similar a la traducción de nuestros archivos de currículum.
|
||||
|
||||
> [!NOTE] Our contributing documentation is powered by `docsify`, and we have special parsing for message boxes like this one. If you see strings that start with `[!NOTE]`, `[!WARNING]`, or `[!TIP]`, these words should NOT be translated.
|
||||
> [!NOTE] Nuestra documentación de contribución esta basada en `docsify`, y tenemos una forma especial de procesar los cuadros de mensaje como este. Si ves cadenas que comiencen con `[!NOTE]`, `[!WARNING]` o ` [!TIP]`, estas palabras NO deben traducirse.
|
||||
|
||||
### How to translate documentation with internal links
|
||||
### Cómo traducir la documentación con enlaces internos
|
||||
|
||||
When you work on translating contributing documentation, watch out for internal links targeting a different section of the documentation.
|
||||
Cuando trabajes en la traducción de la documentación, ten en cuenta los enlaces internos que apuntan a una sección diferente de la documentación.
|
||||
|
||||
Make sure to replace the id of the target section (the part after `#`) with the id on the translated document. For example, it will look like this in Japanese:
|
||||
Asegúrate de reemplazar el id de la sección de destino (la parte después de `#`) con el id en el documento traducido. Por ejemplo, se verá así en japonés:
|
||||
|
||||
Before translation
|
||||
Antes de traducir
|
||||
|
||||
```
|
||||
// in HTML
|
||||
@@ -163,7 +163,7 @@ Before translation
|
||||
[Link text](#target-section-heading-id)
|
||||
```
|
||||
|
||||
After translation
|
||||
Después de traducir
|
||||
|
||||
```
|
||||
// in HTML
|
||||
@@ -175,15 +175,15 @@ After translation
|
||||
[翻訳後のリンクテキスト](#翻訳後の-id)
|
||||
```
|
||||
|
||||
The actual files in docs are written in Markdown, but they will appear as HTML tags on Crowdin.
|
||||
Los archivos reales de la documentación están escritos en Markdown, pero aparecerán como etiquetas HTML en Crowdin.
|
||||
|
||||
You can find out how `docsify` converts a string in your language into an id by looking into the translated pages. If the translation is not deployed yet, you can preview it by [running the docs site locally](how-to-work-on-the-docs-theme.md#serving-the-documentation-site-locally).
|
||||
Puedes averiguar cómo `docsify` convierte una cadena en tu idioma en un id mirando las páginas traducidas. Si la traducción no está desplegada todavía, puedes previsualizarla [ejecutar el sitio de la documentación localmente](how-to-work-on-the-docs-theme.md#ejecutar-el-sitio-de-la-documentación-localmente).
|
||||
|
||||
You can learn more about [internal links in our docs here](how-to-work-on-the-docs-theme.md#how-to-create-an-internal-link).
|
||||
Puedes obtener más información sobre [enlaces internos en nuestra documentación aquí](how-to-work-on-the-docs-theme.md#como-crear-un-enlace-interno).
|
||||
|
||||
## Translate the LearnToCode RPG
|
||||
## Traducir el LearnToCode RPG
|
||||
|
||||
The LearnToCode RPG runs on Ren'Py, which uses special syntax for translated strings: (See [Ren'Py Text documentation](https://www.renpy.org/doc/html/text.html))
|
||||
El LearnToCode RPG se ejecuta en Ren'Py, el cual utiliza una sintaxis especial para las cadenas traducidas: (Ver [ documentación de texto Ren'Py](https://www.renpy.org/doc/html/text.html))
|
||||
|
||||
- Las oraciones a traducir están siempre entre `""`. Estos son diálogos o cadenas de interfaz de usuario. Las palabras clave que vienen antes o después del diálogo son palabras clave de control del motor del juego y se explicarán en detalle en las reglas posteriores. Tenga en cuenta que esta primera regla rige todas las reglas posteriores enumeradas.
|
||||
- En el caso de `new "..."` No traduzcas la palabra clave `new`.
|
||||
@@ -193,7 +193,7 @@ The LearnToCode RPG runs on Ren'Py, which uses special syntax for translated str
|
||||
- No traduzca la palabra clave `nointeract` al final de la oración.
|
||||
- Si intentamos usar paréntesis de ancho completo `()`, se mostrará una advertencia de QA. Para evitar la advertencia de QA, utilice paréntesis de ancho medio `()`
|
||||
|
||||
### Examples
|
||||
### Ejemplos
|
||||
|
||||
---
|
||||
|
||||
@@ -201,7 +201,7 @@ The LearnToCode RPG runs on Ren'Py, which uses special syntax for translated str
|
||||
|
||||
```renpy
|
||||
# "[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that."
|
||||
"[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that." <--- this is the line that needs to be translated. see translation below
|
||||
"[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that." <--- esta es la línea que necesita traducirse. ver traducción a continuación
|
||||
```
|
||||
|
||||
#### Después de traducir
|
||||
@@ -211,7 +211,7 @@ The LearnToCode RPG runs on Ren'Py, which uses special syntax for translated str
|
||||
"[player_name]?好巧,我们的VIP队友{a=[vip_profile_url]}[player_name]{/a}会很高兴的。"
|
||||
```
|
||||
|
||||
Note: The `[]` and `{}` tags should be left intact.
|
||||
Nota: Las etiquetas `[]` y `{}` deben dejarse intactas.
|
||||
|
||||
---
|
||||
|
||||
@@ -219,7 +219,7 @@ Note: The `[]` and `{}` tags should be left intact.
|
||||
|
||||
```renpy
|
||||
old "{icon=icon-fast-forward} Skip"
|
||||
new "{icon=icon-fast-forward} Skip" <-- translate this line, see below
|
||||
new "{icon=icon-fast-forward} Skip" <-- traducir esta línea, ver abajo
|
||||
```
|
||||
|
||||
#### Después de traducir
|
||||
@@ -229,7 +229,7 @@ old "{icon=icon-fast-forward} Skip"
|
||||
new "{icon=icon-fast-forward} 跳过"
|
||||
```
|
||||
|
||||
Note: Again, the `new` prefix and the `{icon=icon-fast-forward}` tag should be left intact.
|
||||
Nota: De nuevo, el prefijo `new` y la etiqueta `{icon=icon-fast-forward}` deben dejarse intactos.
|
||||
|
||||
---
|
||||
|
||||
@@ -247,7 +247,7 @@ layla @ neutral "Hehe, [player_name], you are a fun one. I'm sure you will enjoy
|
||||
layla @ neutral "哈哈,[player_name],你真有趣。我相信你一定会喜欢你的开发者工作的。"
|
||||
```
|
||||
|
||||
Note: `layla @ neutral` and `[player_name]` are left unchanged.
|
||||
Nota: `layla @ neutral` y `[player_name]` se quedan sin cambios.
|
||||
|
||||
---
|
||||
|
||||
@@ -267,71 +267,71 @@ player "也许这都是一场梦?" nointeract
|
||||
|
||||
---
|
||||
|
||||
### A Note on How Crowdin Segments a Sentence
|
||||
### Una observación sobre cómo Crowdin segmenta una oración
|
||||
|
||||
Pay attention to how Crowdin segments a line of dialogue wrapped between opening and closing quotes `""`. When we are translating the dialogue, we need to make sure to retain the opening and closing quotes, even if the quotes appear in different segments.
|
||||
Presta atención a cómo Crowdin segmenta una línea de diálogo envuelta entre comillas de apertura y cierre `""`. Cuando traducimos el diálogo, tenemos que asegurarnos de mantener las comillas de apertura y cierre, incluso si las comillas aparecen en diferentes segmentos.
|
||||
|
||||
This is the line to be translated:
|
||||
Esta es la línea a traducir:
|
||||
|
||||
```renpy
|
||||
player @ surprised "{b}Full-stack{/b}... What is that? I better take notes so I can learn more about it."
|
||||
```
|
||||
|
||||
Crowdin segments it into three parts like below:
|
||||
Crowdin lo segmenta en tres partes como a continuación:
|
||||
|
||||
<img width="836" alt="Screen Shot 2022-01-23 at 10 36 43" src="https://user-images.githubusercontent.com/35674052/150693962-d3b091e5-2432-44d0-9d24-195ea7d7aeda.png" />
|
||||
<img width="836" alt="Captura de pantalla 2022-01-23 a las 10 36 43" src="https://user-images.githubusercontent.com/35674052/150693962-d3b091e5-2432-44d0-9d24-195ea7d7aeda.png" />
|
||||
|
||||
```renpy
|
||||
# original
|
||||
player @ surprised "{b}Full-stack{/b}
|
||||
# translated, keeping the opening quotes `"`
|
||||
# traducido, manteniendo las comiilas de apertura `"`
|
||||
player @ surprised "{b}全栈{/b}
|
||||
```
|
||||
|
||||
<img width="750" alt="Screen Shot 2022-01-23 at 10 36 49" src="https://user-images.githubusercontent.com/35674052/150693965-15411504-791a-4db3-8b14-bc9177be6375.png" />
|
||||
<img width="750" alt="Captura de pantalla 2022-01-23 a las 10 36 49" src="https://user-images.githubusercontent.com/35674052/150693965-15411504-791a-4db3-8b14-bc9177be6375.png" />
|
||||
|
||||
```renpy
|
||||
# original
|
||||
What is that?
|
||||
# translated, no quotes on either side
|
||||
# traducido, sin comillas en ninguno de los lados.
|
||||
这是什么?
|
||||
```
|
||||
|
||||
<img width="857" alt="Screen Shot 2022-01-23 at 10 36 54" src="https://user-images.githubusercontent.com/35674052/150693969-062e3268-580f-4ad2-97db-cab6240b6095.png" />
|
||||
<img width="857" alt="Captura de pantalla 2022-01-23 a las 10 36 54" src="https://user-images.githubusercontent.com/35674052/150693969-062e3268-580f-4ad2-97db-cab6240b6095.png" />
|
||||
|
||||
```renpy
|
||||
# original
|
||||
I better take notes so I can learn more about it."
|
||||
# translated, keeping the closing quotes `"`
|
||||
# traducido, manteniendo las comillas de cierre `"`
|
||||
我最好做笔记,这样我可以学习更多东西。"
|
||||
```
|
||||
|
||||
## Rate Translations
|
||||
## Calificar traducciones
|
||||
|
||||
Crowdin allows you to rate the existing proposed translations. If you attempt to save a translation, you may see a message indicating that you cannot save a duplicate translation - this means another contributor has proposed that identical translation. If you agree with that translation, click the `+` button to "upvote" the translation.
|
||||
Crowdin te permite calificar las traducciones propuestas existentes. Si intentas guardar una traducción, es posible que veas un mensaje que indica que no puedes guardar una traducción duplicada, esto significa que otro contribuyente ha propuesto una traducción idéntica. Si estás de acuerdo con esa traducción, haz clic en el botón `+` para votar a favor de la traducción.
|
||||
|
||||
If you see a translation that is inaccurate or does not provide the same clarity as the original string, click the `-` button to "downvote" the translation.
|
||||
Si ves una traducción que es inexacta o no proporciona la misma claridad que la cadena original, haz clic en el botón `-` para votar en contra de la traducción.
|
||||
|
||||
Crowdin uses these votes to give a score to each proposed translation for a string, which helps the proofreading team determine which translation is the best fit for each string.
|
||||
Crowdin usa estos votos para dar una puntuación a cada traducción propuesta para una cadena, lo que ayuda al equipo de revisión a determinar qué traducción es la mejor para cada cadena.
|
||||
|
||||
## Quality Assurance Checks
|
||||
## Comprobaciones de aseguración de la calidad
|
||||
|
||||
We have enabled some quality assurance steps that will verify a translation is as accurate as possible - this helps our proofreaders review proposed translations.
|
||||
Hemos habilitado algunos pasos de control de la calidad que verificarán que una traducción sea lo más precisa posible, esto ayuda a nuestro equipo de revisión a comprobar las traducciones propuestas.
|
||||
|
||||
When you attempt to save a translation, you may see a warning message appear with a notification regarding your proposed translation.
|
||||
Cuando intentes guardar una traducción, puede que aparezca un mensaje de advertencia con una notificación con respecto a tu traducción propuesta.
|
||||
|
||||

|
||||

|
||||
|
||||
This message appears when Crowdin's QA system has identified a potential error in the proposed translation. In this example, we have modified the text of a `<code>` tag and Crowdin has caught that.
|
||||
Este mensaje aparece cuando el sistema de QA de Crowdin ha identificado un posible error en la traducción propuesta. En este ejemplo, hemos modificado el texto de una etiqueta `<code>` y Crowdin lo ha capturado.
|
||||
|
||||
> [!WARNING] You have the option to save a translation in spite of errors. If you do, by clicking "Save Anyway", you should also tag a proofreader or project manager and explain why the QA message needs to be ignored in this case.
|
||||
> [!WARNING] Tienes la opción de guardar una traducción a pesar de los errores. Si lo haces, al hacer clic en "Save Anyway (Guardar de todos modos)", también debes etiquetar a un miembro del equipo de revisión o encargado del proyecto y explicar por qué el mensaje de QA debe ignorarse en este caso.
|
||||
|
||||
## Translation Best Practices
|
||||
## Mejores prácticas de traducción
|
||||
|
||||
Follow these guidelines to ensure our translations are as accurate as possible:
|
||||
Sigue estas pautas para asegurarte de que nuestras traducciones sean lo más precisas posible:
|
||||
|
||||
- No traduzca el contenido con etiquetas de `<code>`. Estas etiquetas indican texto que se encuentra en código y que debe dejarse en inglés.
|
||||
- No agregues contenido adicional. Si sientes que un desafío requiere cambios en el contenido de texto o información adicional, debería proponer los cambios a través de un problema de GitHub o una pull request que modifique el archivo en inglés.
|
||||
- No cambiar el orden del contenido.
|
||||
|
||||
If you have any questions, feel free to reach out to us in our [Discord](https://discord.gg/PRyKn3Vbay) and we will be happy to assist you.
|
||||
Si tienes alguna duda, siéntete libre de pedir ayuda en nuestro [Discord](https://discord. gg/PRyKn3Vbay) y con gusto te ayudaremos.
|
||||
|
||||
@@ -10,7 +10,7 @@ Ten en cuenta que para la versión 7.0 del plan de estudios gratuito, estamos av
|
||||
|
||||
La creación de estos desafíos requiere una inmensa creatividad y atención al detalle. Hay mucha ayuda disponible. Tendrás el apoyo de todo un equipo de colaboradores a los que podrás comentar tus ideas y demostrar tus desafíos.
|
||||
|
||||
And as always, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [the contributors chat room](https://discord.gg/PRyKn3Vbay).
|
||||
Y como siempre, sientase libre de hacer preguntas en la [categoría de 'Contribuidores' de nuestro foro](https://forum.freecodecamp.org/c/contributors) o [en la sala de chat de contribuidores](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
Con tu ayuda, podemos diseñar un currículo de código interactivo que ayudará a millones de personas a aprender a programar en los próximos años.
|
||||
|
||||
@@ -80,9 +80,9 @@ assert.equal(
|
||||
|
||||
# --notas--
|
||||
|
||||
Extra information for a challenge, in markdown
|
||||
Información adicional para un desafío, en markdown
|
||||
|
||||
# --seed--
|
||||
# --semilla-
|
||||
|
||||
## --before-user-code--
|
||||
|
||||
@@ -142,13 +142,13 @@ Las soluciones se utilizan para las pruebas de CI para garantizar que los cambio
|
||||
// tercera solución, etc. - Sus soluciones deben estar en HTML.
|
||||
```
|
||||
|
||||
# --question--
|
||||
# --pregunta--
|
||||
|
||||
Estos campos se utilizan actualmente para los desafíos de Python de opción múltiple.
|
||||
|
||||
## --text--
|
||||
|
||||
The question text goes here.
|
||||
El texto de la pregunta va aquí.
|
||||
|
||||
## --answers--
|
||||
|
||||
@@ -164,7 +164,7 @@ Más respuestas
|
||||
|
||||
## --video-solution--
|
||||
|
||||
The number for the correct answer goes here.
|
||||
El número de respuestas correctas va aquí.
|
||||
````
|
||||
|
||||
> [!NOTE]
|
||||
@@ -209,13 +209,13 @@ título: Título del desafío
|
||||
|
||||
## Nombrando desafíos
|
||||
|
||||
Naming things is hard. We've made it easier by imposing some constraints.
|
||||
Nombrar cosas es difícil. Lo hemos hecho más fácil imponiendo algunas restricciones.
|
||||
|
||||
All challenge titles should be explicit and should follow this pattern:
|
||||
Todos los títulos del desafío deben ser explícitos y deben seguir este patrón:
|
||||
|
||||
\[verb\]\[object clause\]
|
||||
\[verb\]\[cláusula del objeto\]
|
||||
|
||||
Here are some example challenge names:
|
||||
Estos son algunos ejemplos de nombres de desafíos:
|
||||
|
||||
- Utilice Notación en sentido de la derecha para especificar el relleno de un elemento
|
||||
- Condensa arreglos con ".reduce"
|
||||
@@ -223,19 +223,19 @@ Here are some example challenge names:
|
||||
|
||||
## Descripciones/Instrucciones de Desafíos
|
||||
|
||||
Sentences should be clear and concise with minimal jargon. If used, jargon should be immediately defined in plain English.
|
||||
Las oraciones deben ser claras y concisas con el menor uso posible de jerga. Si se utiliza, la jerga debe aclararse inmediatamente en español sencillo.
|
||||
|
||||
Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text.
|
||||
Mantenga los párrafos cortos (alrededor de 1-4 oraciones). Es más probable que la gente lea varios párrafos cortos que un muro de texto.
|
||||
|
||||
Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us").
|
||||
El texto del desafío debe utilizar la segunda persona ("tú") para ayudar a darle un tono de conversación. De esta manera el texto y las instrucciones parecen hablar directamente con el acampador que trabaja a través del desafío. Trate de evitar usar la primera persona ("yo", "nosotros", "déjanos", y "nosotros").
|
||||
|
||||
Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article.
|
||||
No usar enlaces salientes. Estos interrumpen el flujo. Los campistas no deben tener que googlear nada durante estos desafíos. Si hay recursos de los que piensas que los campistas se beneficiarían, añádelos al artículo relacionado con la guía del desafío.
|
||||
|
||||
You can add diagrams if necessary.
|
||||
Puedes añadir diagramas si fuera necesario.
|
||||
|
||||
Don't use emojis or emoticons in challenges. freeCodeCamp has a global community, and the cultural meaning of an emoji or emoticon may be different around the world. Also, emojis can render differently on different systems.
|
||||
No utilices emojis o emoticonos en desafíos. freeCodeCamp tiene una comunidad global, y el significado cultural de un emoji o emoticono puede ser diferente en distintas partes del mundo. Además, los emojis pueden renderizarse de manera diferente en sistemas diferentes.
|
||||
|
||||
Proper nouns should use correct capitalization when possible. Below is a list of words as they should appear in the challenges.
|
||||
Los sustantivos adecuados deben usar una capitalización correcta cuando sea posible. A continuación se muestra una lista de palabras como deben aparecer en los desafíos.
|
||||
|
||||
- JavaScript (mayúsculas en "J" y "S" y sin abreviaturas)
|
||||
- Node.js
|
||||
@@ -243,24 +243,24 @@ Proper nouns should use correct capitalization when possible. Below is a list of
|
||||
|
||||
### La regla de los 2 minutos
|
||||
|
||||
Each challenge should be solvable within 120 seconds by a native English speaker who has completed the challenges leading up to it. This includes the amount of time it takes to read the directions/instructions understand the seeded code, write their code and get all the tests to pass.
|
||||
Cada desafío debe ser resuelto en un plazo de 120 segundos por un hablante nativo de español que haya completado los desafíos que lo preceden. Esto incluye la cantidad de tiempo que se tarda en leer las indicaciones/instrucciones entender el código sembrado, escribir su código y conseguir que todas las pruebas pasen.
|
||||
|
||||
If it takes longer than two minutes to complete the challenge, you have two options:
|
||||
Si toma más de dos minutos completar el desafío, tienes dos opciones:
|
||||
|
||||
- Simplificar el desafío, o
|
||||
- Dividir el desafío en dos desafíos.
|
||||
|
||||
The 2-minute rule forces you, the challenge designer, to make your directions concise, your seed code clear, and your tests straight-forward.
|
||||
La regla de los 2 minutos le obliga a usted, el diseñador del desafío, a hacer sus instrucciones concisas, su código semilla claro y sus pruebas directas.
|
||||
|
||||
We track how long it takes for campers to solve changes and use this information to identify challenges that need to be simplified or split.
|
||||
Hacemos un seguimiento del tiempo que tardan los campistas en resolver los cambios y utilizamos esta información para identificar los desafíos que deben simplificarse o dividirse.
|
||||
|
||||
### Modularidad
|
||||
|
||||
Each challenge should teach exactly one concept, and that concept should be apparent from the challenge's name.
|
||||
Cada desafío debe enseñar exactamente un concepto, y ese concepto debe ser evidente por el nombre del reto.
|
||||
|
||||
We can reinforce previously covered concepts through repetition and variations - for example, introducing h1 elements in one challenge, then h3 elements a few challenges later.
|
||||
Podemos reforzar los conceptos previamente cubiertos a través de la repetición y las variaciones - por ejemplo, introduciendo los elementos h1 en un desafío, y luego los elementos h3 unos pocos desafíos más tarde.
|
||||
|
||||
Our goal is to have thousands of 2-minute challenges. These can flow together and reiterate previously-covered concepts.
|
||||
Nuestro objetivo es tener miles de desafíos de 2 minutos. Estos pueden fluir juntos y reiterar los conceptos previamente cubiertos.
|
||||
|
||||
### Formateando el texto del desafío
|
||||
|
||||
@@ -277,9 +277,9 @@ Usa `parseInt` para convertir la variable `realNumber` en un entero.
|
||||
- Los bloques de código de múltiples líneas **deben estar precedidos por una línea vacía**. La siguiente línea debe comenzar con tres backticks seguidos inmediatamente por uno de los [idiomas soportados](https://prismjs.com/#supported-languages). Para completar el bloque de código, debe iniciar una nueva línea que solo tiene tres backticks y **otra línea vacía**. Ver el ejemplo a continuación:
|
||||
- El espacio en blanco es importante en Markdown, por lo que le recomendamos que lo haga visible en su editor.
|
||||
|
||||
**Note:** If you are going to use an example code in YAML, use `yaml` instead of `yml` for the language to the right of the backticks.
|
||||
**Nota:** Si va a utilizar un código de ejemplo en YAML, utilice yaml en lugar de yml para el idioma a la derecha de la comilla inversa.
|
||||
|
||||
The following is an example of code:
|
||||
Lo siguiente es un ejemplo de código:
|
||||
|
||||
````md
|
||||
`` `{idioma}
|
||||
@@ -328,7 +328,7 @@ Ejemplo de un comentario de CSS válido:
|
||||
/* Only change code above this line */
|
||||
```
|
||||
|
||||
If a challenge only has a single place where code changes are needed, please use the comments in the following example to instruct the user where changes should be made.
|
||||
Si un desafío solo tiene un lugar en el que se necesitan cambios de código, utilice los comentarios del siguiente ejemplo para indicar al usuario dónde deben realizarse los cambios.
|
||||
|
||||
```js
|
||||
var a = 3;
|
||||
@@ -341,7 +341,7 @@ b = 9 + b;
|
||||
c = c + 7;
|
||||
```
|
||||
|
||||
If a challenge has multiple places where the user is expected to change code (i.e. the React challenges)
|
||||
Si un desafío tiene varios lugares donde se espera que el usuario cambie el código (es decir, los desafíos de React)
|
||||
|
||||
```jsx
|
||||
class MyComponent extends React.Component {
|
||||
@@ -374,9 +374,9 @@ class MyComponent extends React.Component {
|
||||
|
||||
### Traducción de comentarios de código de semilla
|
||||
|
||||
There are separate comment dictionaries for each language. The [English version of the comment dictionary](/curriculum/dictionaries/english/comments.js) is the basis for the translations found in the corresponding non-English versions of the files. The non-English version of the Chinese comment dictionary would be located at `/curriculum/dictionaries/chinese/comments.js`. Each dictionary consists of an array of objects with a unique `id` property and a `text` property. Only the `text` should be modified to encompass the translation of the corresponding English comment.
|
||||
Hay diccionarios de comentarios separados para cada idioma. La [versión inglesa del diccionario de comentarios](/curriculum/dictionaries/english/comments.js) es la base de las traducciones que se encuentran en las correspondientes versiones no inglesas de los archivos. La versión no inglesa del diccionario de comentarios en chino se encuentra en `/curriculum/dictionaries/chinese/comments.js`. Cada diccionario consiste en un arreglo de objetos con una propiedad `id` única y una propiedad `text`. Solo debe modificarse el `text` para abarcar la traducción del comentario inglés correspondiente.
|
||||
|
||||
Some comments may contain a word/phrase that should not be translated. For example, variable names or proper library names like "React" should not be translated. See the comment below as an example. The word `myGlobal` should not be translated.
|
||||
Algunos comentarios pueden contener una palabra/frase que no debe ser traducida. Por ejemplo, los nombres de las variables o los nombres propios de las bibliotecas, como "React", no deben traducirse. Vea el comentario siguiente como ejemplo. La palabra `myGlobal` no debe traducirse.
|
||||
|
||||
```text
|
||||
Declara la variable myGlobal debajo de esta línea
|
||||
@@ -388,13 +388,13 @@ Declara la variable myGlobal debajo de esta línea
|
||||
|
||||
## Consejos y soluciones
|
||||
|
||||
Each challenge has a `Get a Hint` button, so a user can access any hints/solutions which have been created for the challenge. Curriculum hints/solutions topics are located on [our forum](https://forum.freecodecamp.org/c/guide) under the `Guide` category.
|
||||
Cada desafío tiene un botón de `Obtener un consejo`, para que un usuario pueda acceder a cualquier pista/solución que haya sido creada para el reto. Los temas de las pistas/soluciones del plan de estudios se encuentran en [nuestro foro](https://forum.freecodecamp.org/c/guide), en la categoría `Guía`.
|
||||
|
||||
If you find a problem with an existing challenge's hints/solutions topic, you can make suggestions in the [contributors category](https://forum.freecodecamp.org/c/contributors) on the forum. Moderators and users with trust level 3 will review the comments and decide whether or not to include the changes in the corresponding hint/solutions topic.
|
||||
Si encuentras un problema en el tema de pistas/soluciones de un desafío existente, puedes hacer sugerencias en la [categoría de colaboradores](https://forum.freecodecamp.org/c/contributors) del foro. Los moderadores y los usuarios con nivel de confianza 3, revisarán los comentarios y decidirán si se incluyen o no los cambios en el tema de pistas/soluciones correspondiente.
|
||||
|
||||
### Añadir nuevos temas de sugerencias/soluciones de Desafío
|
||||
|
||||
Take the following steps when adding a new challenge hints/solutions related topic.
|
||||
Siga los siguientes pasos cuando añada un nuevo tema relacionado con las pistas/soluciones del desafío.
|
||||
|
||||
1. Comience siguiendo los mismos pasos para crear un nuevo tema pero revise el siguiente para crear el título.
|
||||
2. El título del tema debe comenzar con `Guía de Desafío gratuita:` concatenada con el título real del desafío curricular. Por ejemplo, si el desafío se llama "`Chunky Monkey`", el título del tema sería "`Guía gratuita del Desafío CodeCamp: Chunky Monkey`".
|
||||
@@ -403,7 +403,7 @@ Take the following steps when adding a new challenge hints/solutions related top
|
||||
|
||||
### Orientaciones para el contenido de pistas y temas de soluciones
|
||||
|
||||
When proposing a solution for a curriculum challenge related Guide topic, the full code must be added. This includes all the original seed code plus any changes needed to pass all the challenge tests. The following template should be used when creating new hints/solutions topics:
|
||||
Cuando se proponga una solución para un tema de la Guía relacionado con el desafío del plan de estudios, debe añadirse el código completo. Esto incluye todo el código semilla original más los cambios necesarios para pasar todas las pruebas de desafío. Para crear nuevos temas de pistas/soluciones debe utilizarse la siguiente plantilla:
|
||||
|
||||
````md
|
||||
# El nombre del desafío va aquí
|
||||
@@ -481,12 +481,12 @@ También puedes probar un desafío individualmente realizando los siguientes pas
|
||||
cd curriculum
|
||||
```
|
||||
|
||||
2. Run the following for each challenge file for which you have changed (replacing `challenge-title-goes-here` with the full title of the challenge):
|
||||
2. Ejecute lo siguiente para cada archivo de desafío para el que haya cambiado (sustituyendo "el-titulo-del-desafio-va-aqui" por el título completo del desafío):
|
||||
|
||||
```
|
||||
npm run test -- -g challenge-title-goes-here ```
|
||||
npm run test -- -g el-titulo-del-desafio-va-aqui ```
|
||||
|
||||
Once you have verified that each challenge you've worked on passes the tests, [please create a pull request](how-to-open-a-pull-request.md).
|
||||
Una vez que haya verificado que cada desafío en el que ha trabajado supera las pruebas, [cree una solicitud de extracción](how-to-open-a-pull-request.md).
|
||||
|
||||
> [!TIP] Puede establecer la variable de entorno `LOCALE` en `.env` en el idioma de los retos que necesita probar.
|
||||
>
|
||||
|
||||
@@ -77,7 +77,7 @@ Algunos de estos archivos son traducidos en nuestra plataforma de traducción (C
|
||||
|
||||
- El archivo`meta-tags.json` contiene la información para nuestra informacion de la Meta etiqueta del sitio web.
|
||||
|
||||
Los cambios en estos archivos son usualmente realizados por nuestro personal. If you see something out of the ordinary we recommend you reach us in the [contributors chat room](https://discord.gg/PRyKn3Vbay).
|
||||
Los cambios en estos archivos son usualmente realizados por nuestro personal. Si ves algo raro o fuera de lo normal, deberías comunicarte con nosotros en el [chat de colaboradores](https://discord.gg/PRyKn3Vbay).
|
||||
|
||||
## Probando la app cliente en un idioma mundial
|
||||
|
||||
@@ -98,7 +98,7 @@ A continuación, sigue las instrucciones en los comentarios en el mismo archivo
|
||||
|
||||
Finalmente, establece la variable `CLIENT_LOCALE` en tu archivo `.env` en la configuración regional que quieres crear y estás listo.
|
||||
|
||||
## How to Structure Components
|
||||
## Como estructurar los componentes
|
||||
|
||||
Si estás trabajando en una característica o en un error para el cliente de la app web, por ejemplo agregando unos nuevos elementos UI en la página de configuración, debes seguir las líneas de ayuda siguientes. Te ayudarán a preparar los componentes para localizarlo en todos los idiomas mundiales soportados.
|
||||
|
||||
@@ -175,53 +175,53 @@ La regla general es usar la función "t" cuando puedas. Pero hay un componente `
|
||||
### Elementos básicos anidados
|
||||
|
||||
```js
|
||||
// in the component:
|
||||
// en el componente
|
||||
import { Trans } from 'react-i18next'
|
||||
|
||||
<p>
|
||||
<Trans>fcc.greeting</Trans>
|
||||
</p>
|
||||
|
||||
// in the JSON file:
|
||||
// en el archivo JSON:
|
||||
{
|
||||
"fcc": {
|
||||
"greeting": "Welcome to <strong>freeCodeCamp</strong>"
|
||||
}
|
||||
}
|
||||
|
||||
// output:
|
||||
// salida:
|
||||
<p>Welcome to <strong>freeCodeCamp</strong></p>
|
||||
```
|
||||
|
||||
You can place the key inside the component tags like the above example if the text contains "simple" tags with no attributes. `br`, `strong`, `i`, and `p` are the default, but that list can be expanded in the i18n config.
|
||||
Puedes colocar la clave dentro de la etiqueta del componente como en el ejemplo de arriba, si el texto contiene etiquetas "simples" sin atributos. `br`, `strong`, `i`, and `p` están por defecto, pero esa lista puede ser extendida en la configuración i18n.
|
||||
|
||||
### Complex Elements Nested
|
||||
### Elementos complejos anidados
|
||||
|
||||
Other times, you will want to have certain text inside another element, an anchor tag is a good example:
|
||||
En otros tiempos, querrás tener cierto texto dentro de otro elemento, una etiqueta de anclaje es un buen ejemplo:
|
||||
|
||||
```js
|
||||
// in the component:
|
||||
// en el componente:
|
||||
<p>
|
||||
<Trans i18nKey='check-forum'>
|
||||
<a href='https://forum.freecodecamp.org/'>placeholder</a>
|
||||
</Trans>
|
||||
</p>
|
||||
|
||||
// in the JSON file:
|
||||
// en el archivo JSON:
|
||||
{
|
||||
"check-forum": "Check out <0>our forum</0>."
|
||||
}
|
||||
|
||||
// output:
|
||||
// salida:
|
||||
<p>Check out <a href='https://forum.freecodecamp.org/'>our forum</a></p>
|
||||
```
|
||||
|
||||
In the above example, the key is set in the attributes of the `Trans` component. The `<0>` and `</0>` in the JSON represent the first child of the component, in this case, the anchor element. If there were more children, they would just count up from there using the same syntax. You can find the children of a component in the react dev tools by inspecting it. `placeholder` is simply there because the linter complains about empty `<a>` elements.
|
||||
En el ejemplo de arriba, la clave es colocada en los atributos del componente `Trans`. El `<0>` y `</0>` en el JSON representa el primer hijo del componente, en este caso, el elemento ancla. Si hubiera más hijos, podrían contarlos después de que usen la misma sintaxis. Puedes encontrar el hijo de un componente en las herramientas dev de react inspeccionándolos. El `placeholder` están simplemente ahí debido a que el linter busca un elemento vacío `<a>`.
|
||||
|
||||
### With a Variable
|
||||
### Con una variable
|
||||
|
||||
```js
|
||||
// in the component:
|
||||
// en el componente:
|
||||
const email = 'team@freecodecamp.org';
|
||||
|
||||
<p>
|
||||
@@ -232,36 +232,36 @@ const email = 'team@freecodecamp.org';
|
||||
</Trans>
|
||||
</p>
|
||||
|
||||
// in the JSON file:
|
||||
// en el archivo JSON:
|
||||
{
|
||||
"fcc": {
|
||||
"email": "Send us an email at: <0>{{email}}</0>"
|
||||
}
|
||||
}
|
||||
|
||||
// output:
|
||||
// salida:
|
||||
<p>Send us an email at: <a href='mailto:team@freecodecamp.org'>team@freecodecamp.org</a><p>
|
||||
```
|
||||
|
||||
In the above example, the key and a variable are set in the attributes of the `Trans` component. `{{ email }}` needs to be somewhere in the `Trans` component as well, it doesn't matter where.
|
||||
En el ejemplo de arriba, la clave y la variable son establecidas en el atributo del componente `Trans`. El `{{ email }}` necesita estar en algún lado del componente `Trans` tan bien, no importa donde.
|
||||
|
||||
## Changing Text
|
||||
## Cambiar texto
|
||||
|
||||
To change text on the client side of things, go to the relevant `.json` file, find the key that is being used in the React component, and change the value to the new text you want. You should search the codebase for that key to make sure it isn't being used elsewhere. Or, if it is, that the changes make sense in all places.
|
||||
Para cambiar el texto de las cosas del lado del cliente, ve al archivo relevante `.json`, encuentra la clave que es usada en el componente React, y cambia el valor al nuevo texto que quieras. Deberías de buscar en la base del código para que esa clave para asegurarte de que no está siendo usada en ningún otro sitio. O, si es así, que el cambio tenga sentido en todos los sitios.
|
||||
|
||||
## Adding Text
|
||||
## Agregar texto
|
||||
|
||||
If the text you want to add to the client exists in the relevant `.json` file, use the existing key. Otherwise, create a new key.
|
||||
Si el texto que quieres añadir al cliente existe en el archivo pertinente, `.json`, usa la clave existente. En el caso contrario, crea una clave nueva.
|
||||
|
||||
The English file is the "source of truth" for all of the `.json` files sharing the same name. If you need to add a new key, add it there. Then, add the key to **all** of the `translations.json` files.
|
||||
El archivo English es la "fuente de la verdad" para todos los archivos `.json` que compartan el mismo nombre. Si necesitas añadir una nueva clave, añádela ahí. Después, añade la clave **all** de los archivos `translations.json`.
|
||||
|
||||
> [!NOTE] Use English text for all languages if the file is translated through Crowdin. The tests will fail if you don't.
|
||||
> [!NOTE] Utiliza texto en inglés para todos los idiomas si el archivo se traduce a través de Crowdin. La prueba se caerá si no lo haces.
|
||||
|
||||
It would be nice to keep the keys in the same order across all the files as well. Also, try to put all punctuation, spacing, quotes, etc in the JSON files and not in the components or server files.
|
||||
Sería bueno mantener la clave en el mismo orden en todos los archivos también. Además, intenta poner todos los signos de puntuación, el espaciado, las comillas, etc. en los archivos JSON y no en los componentes o archivos del servidor.
|
||||
|
||||
> [!NOTE] The underscore (`_`) is a reserved character for keys in the client side files. See [the documentation](https://www.i18next.com/translation-function/plurals) for how they are used.
|
||||
> [!NOTE] El guion bajo (`_`) es un caracter especial para las claves en los archivos del lado del cliente. Vea [the documentation](https://www.i18next.com/translation-function/plurals) de como debe ser usado.
|
||||
|
||||
## Helpful Documentation
|
||||
## Documentación útil
|
||||
|
||||
- [react-i18next docs](https://react.i18next.com/latest/usetranslation-hook)
|
||||
- [i18next docs](https://www.i18next.com/translation-function/essentials)
|
||||
- [Documentación de react-i18next ](https://react.i18next.com/latest/usetranslation-hook)
|
||||
- [Documentación de i18next](https://www.i18next.com/translation-function/essentials)
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# Cómo Trabajar en Proyectos de Práctica
|
||||
|
||||
Our practice projects use a step-based approach to teach concepts to campers. A project will consist of multiple files, which we refer to as **"steps"**. These files are named by the challenge ID, to avoid issues with the translation flow. Unfortunately, this makes it difficult to find the file associated with a specific step.
|
||||
Nuestros proyectos de práctica utilizan un enfoque basado en pasos para enseñar conceptos a los campistas. Un proyecto constará de múltiples archivos, a los que nos referimos como **"pasos"**. Estos archivos son nombrados por el ID de desafío, para evitar problemas con el flujo de traducción. Desafortunadamente, esto hace difícil encontrar el archivo asociado a un paso específico.
|
||||
|
||||
We've built a challenge editor tool that helps remedy this. This tool allows you to navigate the available projects, and the steps for each project (in order). There's also an embedded code editor you can use to work on the files directly.
|
||||
Hemos creado una herramienta de edición de desafíos que ayuda a remediar eso. Esta herramienta permite navegar los proyectos disponibles y los pasos para cada proyecto (en orden). También hay un editor de código embebido que se puede utilizar para trabajar directamente sobre los archivos.
|
||||
|
||||
## Using the Challenge Editor
|
||||
## Utilizando el editor de desafíos
|
||||
|
||||
These instructions will tell you how to use our challenge editor tool to work on the practice projects.
|
||||
Estas instrucciones le indicarán cómo utilizar nuestra herramienta de edición de desafíos para trabajar en los proyectos de práctica.
|
||||
|
||||
### Starting the Editor
|
||||
### Iniciar el Editor
|
||||
|
||||
To start the editor, make sure you are in the root freecodecamp directory. Then, run `npm run challenge-editor` to start both the client and the API that powers the editor.
|
||||
Para iniciar el editor, asegúrese de estar en el directorio raíz de freecodecamp. Then, run `npm run challenge-editor` to start both the client and the API that powers the editor.
|
||||
|
||||
The client will run on port `3300`, so you can access it at `http://localhost:3300`. The API runs on port `3200`, to avoid conflicts with the learn client and server. This will allow you to run the freeCodeCamp application at the same time as the editor, so you can test your changes locally.
|
||||
|
||||
|
||||
@@ -50,49 +50,49 @@ Cada componente es diferente, pero en general un componente debería:
|
||||
- Estilo internamente basado en sus accesorios (los consumidores no deben necesitar reponer el componente con el accesorio `className`)
|
||||
- Utilizar el sistema de estilo incorporado desde Tailwind, en lugar de tener estilos personalizados
|
||||
|
||||
### Using colors
|
||||
### Uso de los colores
|
||||
|
||||
There are two color "layers" in the component library:
|
||||
Hay dos "capas" de color en la biblioteca de componentes:
|
||||
|
||||
- The base layer, where the color names describe what the colors are, e.g. `gray00`, `blue50`
|
||||
- The semantic layer, where the color names describe what the colors are for, e.g. `foreground-primary`, `background-danger`
|
||||
- La capa base, donde los nombres de los colores describen lo que son los colores, por ejemplo, `gray00`, `blue50`
|
||||
- La capa semántica, donde los nombres de los colores describen para qué sirven, por ejemplo, `foreground-primary`, `background-danger`
|
||||
|
||||
Generally when using colors in a component, you should choose semantic variables over the base ones. There are exceptions, however, specifically when you are styling the component's states such as hover, active, disabled, etc. In these cases, we recommend using the base variables directly instead of creating new semantic variables, since each component can have different styles for their states.
|
||||
Generalmente, cuando se utilizan colores en un componente, se deben elegir variables semánticas en lugar de las básicas. Sin embargo, hay excepciones, específicamente cuando se estilan los estados del componente, tales como hover, active, disabled, etc. En estos casos, recomendamos utilizar directamente las variables base en lugar de crear nuevas variables semánticas, ya que cada componente puede tener diferentes estilos para sus estados.
|
||||
|
||||
> [!NOTE] Color definition can be found in the [`colors.css` file](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/tools/ui-components/src/colors.css). A color is only available for use if it is added to the [`tailwind.config.js` file](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/tools/ui-components/tailwind.config.js) under the `colors` property.
|
||||
> [!NOTE] La definición del color se encuentra en el [archivo `colors.css`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/tools/ui-components/src/colors.css). Un color sólo está disponible para su uso si se añade al [archivo `tailwind.config.js`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/tools/ui-components/tailwind.config.js) bajo la propiedad `colors`.
|
||||
|
||||
### Enlaces útiles
|
||||
|
||||
- [Tailwind CSS Configuration](https://tailwindcss.com/docs/configuration)
|
||||
- [React Bootstrap v0.33 Docs](https://react-bootstrap-v3.netlify.app)
|
||||
- [Bootstrap 3.3.7 stylesheet](https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css)
|
||||
- [React Bootstrap current implementation](https://github.com/react-bootstrap/react-bootstrap/tree/master/src)
|
||||
- [React Bootstrap current tests](https://github.com/react-bootstrap/react-bootstrap/tree/master/test)
|
||||
- [Configuración del CSS de Tailwind](https://tailwindcss.com/docs/configuration)
|
||||
- [Documentación de React Bootstrap v0.33](https://react-bootstrap-v3.netlify.app)
|
||||
- [Hoja de estilo de Bootstrap 3.3.7](https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css)
|
||||
- [Implementación actual de React Bootstrap](https://github.com/react-bootstrap/react-bootstrap/tree/master/src)
|
||||
- [Pruebas actuales de React Bootstrap](https://github.com/react-bootstrap/react-bootstrap/tree/master/test)
|
||||
|
||||
## Mostrar los casos de uso en el Storybook
|
||||
|
||||
Use cases of the component should be added to the Storybook file (`.stories.tsx`).
|
||||
Los casos de uso del componente deben añadirse al archivo Storybook (`.stories.tsx`).
|
||||
|
||||
To start Storybook, run the following command from the root directory:
|
||||
Para iniciar Storybook, ejecute el siguiente comando desde el directorio raíz:
|
||||
|
||||
```bash
|
||||
npm run storybook
|
||||
```
|
||||
|
||||
The Storybook page is available on [http://localhost:6006](http://localhost:6006).
|
||||
La página Storybook está disponible en [http://localhost:6006](http://localhost:6006).
|
||||
|
||||
## Escribir pruebas unitarias
|
||||
|
||||
We use [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/) to write unit tests. The tests should assert that the components behave as expected and are accessible.
|
||||
Usamos [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/) para escribir pruebas unitarias. Las pruebas deben afirmar que los componentes se comportan como se espera y son accesibles.
|
||||
|
||||
To run tests against the component library, run the following command from the root directory:
|
||||
Para ejecutar pruebas a la biblioteca de componentes, ejecute el siguiente comando desde el directorio raíz:
|
||||
|
||||
```bash
|
||||
npm run test-ui-components
|
||||
```
|
||||
|
||||
### Useful links
|
||||
### Enlaces útiles
|
||||
|
||||
- [Testing for Accessibility](https://testing-library.com/docs/dom-testing-library/api-accessibility)
|
||||
- [Order of priority of React Testing Library's queries](https://testing-library.com/docs/queries/about/#priority)
|
||||
- [Common mistakes with React Testing Library](https://kentcdodds.com/blog/common-mistakes-with-react-testing-library)
|
||||
- [Pruebas de Accesibilidad](https://testing-library.com/docs/dom-testing-library/api-accessibility)
|
||||
- [Orden de prioridad de las consultas de React Testing Library](https://testing-library.com/docs/queries/about/#priority)
|
||||
- [Errores comunes con la biblioteca de pruebas de React](https://kentcdodds.com/blog/common-mistakes-with-react-testing-library)
|
||||
|
||||
@@ -1,75 +1,75 @@
|
||||
# How to work on documentation
|
||||
# Cómo trabajar en la documentación
|
||||
|
||||
## Work on the content of the docs
|
||||
## Trabajar en el contenido de los documentos
|
||||
|
||||
To work on the contributing guidelines, you can edit or add files in the `docs` directory [available here](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/docs). When your changes are merged, they will be made available automatically at the documentation site.
|
||||
Para trabajar en las pautas de contribución, puedes editar o agregar archivos al directorio `docs`, [disponible aquí](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/docs). Cuando tus cambios se fusionen, automáticamente estarán disponibles en el sitio de documentación.
|
||||
|
||||
### How to create an internal link
|
||||
### Cómo crear un enlace interno
|
||||
|
||||
If you want to create a link targeting a different section of the contributing guidelines, follow this format:
|
||||
Si desea crear un enlace dirigido a una sección diferente de las pautas de contribución, siga el siguiente formato:
|
||||
|
||||
```md
|
||||
[Link text](target-file-name.md#target-section-heading-id)
|
||||
|
||||
// If the target section is within the same page, you can omit the file name
|
||||
// Si la sección de destino está dentro de la misma página, puedes omitir el nombre del archivo
|
||||
[Link text](#target-section-heading-id)
|
||||
```
|
||||
|
||||
Make sure you include the file extension (`.md`). Don't specify the full URL or append `/` before the file name.
|
||||
Asegurate de incluir la extensión del archivo(`.md`). No especifique la URL completa o añada `/` antes del nombre del archivo.
|
||||
|
||||
This is necessary to make these links work for the translated version of the document. Otherwise, they will redirect to the English version of the page regardless of the language.
|
||||
Esto es necesario para que estos enlaces funcionen en la versión traducida del documento. De lo contrario, serán redirigidos a la versión de la pagina en inglés independientemente del idioma.
|
||||
|
||||
#### Translating docs with internal links
|
||||
#### Traduciendo archivos con enlaces internos
|
||||
|
||||
When you work on translating docs on Crowdin, make sure to replace the `#target-section-heading-id` with the id on the translated document. [Learn more about translating docs here](how-to-translate-files.md#translate-documentation).
|
||||
Cuando traduces documentos en Crowdin, asegurate de reemplazar el `#target-section-heading-id` con el id del documento traducido. [Más información sobre la traducción de documentos aquí](how-to-translate-files.md#translate-documentation).
|
||||
|
||||
## Work on the docs theme
|
||||
## Trabajar en el tema de los documentos
|
||||
|
||||
> [!NOTE] A quick reminder that you do not need to set up anything for working on the content for the documentation site.
|
||||
> [!NOTE] Recuerda que no necesitas establecer nada para trabajar en el contenido para el sitio de documentación.
|
||||
>
|
||||
> To work on the contributing guidelines, see [work on the docs content](#work-on-the-docs-content) section.
|
||||
> Para trabajar en las directrices de contribución, consulte [trabajar en la sección de contenido de documentos](#work-on-the-docs-content).
|
||||
|
||||
### Structure of the docs website
|
||||
### Estructura de los documentos de la página web
|
||||
|
||||
The site is generated using [`docsify`](https://docsify.js.org) and served using GitHub pages.
|
||||
El sitio es generado con [`docsify`](https://docsify.js.org) y hosteado por medio de GitHub pages.
|
||||
|
||||
Typically you would not need to change any configuration or build the site locally. In case you are interested, here is how it works:
|
||||
Normalmente no necesitarías modificar ninguna configuración ni compilar el sitio localmente. En caso de que te interese, así es como funciona:
|
||||
|
||||
- El código de la página de inicio para este sitio está disponible en [`docs/index.html`](index.html).
|
||||
- Servimos este archivo como SPA utilizando `docsify` y GitHub Pages.
|
||||
- The `docsify` script generates the content of `markdown` files in the `docs` directory on demand.
|
||||
- El script `docsify` genera el contenido de los archivos `lenguaje de marcado` en el directorio `docs` en linea.
|
||||
- La página de inicio se genera a partir del [`_coverpage.md`](_coverpage.md).
|
||||
- La barra de navegación lateral es generada desde [`_sidebar.md`](_sidebar.md).
|
||||
|
||||
### Serving the documentation site locally
|
||||
### Ejecutando el sitio de documentación localmente
|
||||
|
||||
Clone freeCodeCamp:
|
||||
Clonar freeCodeCamp:
|
||||
|
||||
```console
|
||||
git clone https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
Install `docsify`:
|
||||
Instalar `docsify`:
|
||||
|
||||
```console
|
||||
npm install -g docsify
|
||||
```
|
||||
|
||||
and serve the `/docs` directory
|
||||
y sirve el directorio `/docs`
|
||||
|
||||
```console
|
||||
docsify serve docs
|
||||
```
|
||||
|
||||
Alternatively, if you have installed freeCodeCamp locally (see the local setup guide), we bundled the CLI with the development tools so you can run any of the below commands as needed from the root of the repo:
|
||||
Alternativamente, si has instalado freeCodeCamp localmente (ver la guía de instalación local), agrupamos el CLI con las herramientas de desarrollo para que puedas ejecutar cualquiera de los siguientes comandos según sea necesario desde la raíz del repositorio:
|
||||
|
||||
#### Serve and launch the documentation site only
|
||||
#### Ejecutar y lanzar solo el sitio de documentación
|
||||
|
||||
```console
|
||||
npm run docs:serve
|
||||
```
|
||||
|
||||
#### Serve the documentation site alongside freeCodeCamp locally:
|
||||
#### Servir el sitio de documentación junto a freeCodeCamp local:
|
||||
|
||||
```console
|
||||
npm run develop
|
||||
|
||||
@@ -22,31 +22,31 @@ Puedes ayudar a ampliar y mejorar el plan de estudios. También puedes actualiza
|
||||
|
||||
Estamos localizando freeCodeCamp.org a los principales idiomas del mundo.
|
||||
|
||||
Certifications are already live in some major world languages like below:
|
||||
Las certificaciones ya están disponibles en algunos de los principales idiomas del mundo como:
|
||||
|
||||
- [Chinese (中文)](https://chinese.freecodecamp.org/learn)
|
||||
- [Spanish (Español)](https://www.freecodecamp.org/espanol/learn)
|
||||
- [Italian (Italiano)](https://www.freecodecamp.org/italian/learn)
|
||||
- [Portuguese (Português)](https://www.freecodecamp.org/portuguese/learn)
|
||||
- [Ukrainian (Українська)](https://www.freecodecamp.org/ukrainian/learn)
|
||||
- [Japanese (日本語)](https://www.freecodecamp.org/japanese/learn)
|
||||
- [Chino (中文)](https://chinese.freecodecamp.org/learn)
|
||||
- [Español](https://www.freecodecamp.org/espanol/learn)
|
||||
- [Italiano (Italiano)](https://www.freecodecamp.org/italian/learn)
|
||||
- [portugués (Português)](https://www.freecodecamp.org/portuguese/learn)
|
||||
- [Ucraniano (Українська)](https://www.freecodecamp.org/ukrainian/learn)
|
||||
- [Japonés (日本語)](https://www.freecodecamp.org/japanese/learn)
|
||||
|
||||
We encourage you to read the [announcement here](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/) and share it with your friends to get them excited about this.
|
||||
Te animamos a leer el anuncio [aquí](https://www.freecodecamp.org/news/help-translate-freecodecamp-language/) y compartirlo con tus amigos para que se sientan entusiasmados con esto.
|
||||
|
||||
**If you're interested in translating, here's [how to translate freeCodeCamp's resources](how-to-translate-files.md).**
|
||||
**Si estás interesado en traducir, aquí tienes [cómo traducir los recursos de freeCodeCamp](how-to-translate-files.md).**
|
||||
|
||||
## Plataforma de aprendizaje
|
||||
|
||||
Our learning platform runs on a modern JavaScript stack. It has various components, tools, and libraries. These include Node.js, MongoDB, OAuth 2.0, React, Gatsby, Webpack, and more.
|
||||
Nuestra plataforma de aprendizaje se ejecuta en un stack de JavaScript moderno. Tiene varios componentes, herramientas y librerías. Estos incluyen Node.js, MongoDB, OAuth 2.0, React, Gatsby, Webpack y más.
|
||||
|
||||
Broadly, we have a Node.js based API server, a set of React-based client applications, testing scripts to evaluate camper-submitted curriculum projects, and more. If you want to productively contribute to the learning platform, we recommend some familiarity with these tools.
|
||||
A grandes rasgos, tenemos un servidor API basado en Node.js, un conjunto de aplicaciones cliente basadas en React, scripts de prueba para evaluar proyectos currículo enviados por los estudiantes, y más. Si deseas contribuir de manera productiva a la plataforma de aprendizaje, te recomendamos que te familiarices un poco con estas herramientas.
|
||||
|
||||
If you want to help us improve our codebase...
|
||||
Si quieres ayudarnos a mejorar nuestro código base...
|
||||
|
||||
**you can either use Gitpod, a free online dev environment that starts a ready-to-code dev environment for freeCodeCamp in your browser.**
|
||||
**puedes optar por utilizar Gitpod, una herramienta gratuita de desarrollo en línea que crea entornos listos para escribir código para freeCodeCamp directamente en el navegador.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
Or you can...
|
||||
O puedes...
|
||||
|
||||
**[Set up freeCodeCamp locally](how-to-setup-freecodecamp-locally.md) on your machine.**
|
||||
**[Configura freeCodeCamp localmente](how-to-setup-freecodecamp-locally.md) en tu máquina.**
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
# The Official freeCodeCamp Language Lead Handbook
|
||||
# El manual oficial de liderazgo de idioma Freecodecamp
|
||||
|
||||
This handbook will help you set up and use the tools for your localization efforts.
|
||||
Este manual lo ayudará a configurar y utilizar las herramientas para sus esfuerzos de localización.
|
||||
|
||||
## How to invite new contributors to Ghost
|
||||
## Cómo invitar a los nuevos contribuyentes a Ghost
|
||||
|
||||
Ghost allows you to set contributors with different levels of authorizations.
|
||||
Ghost le permite establecer contribuyentes con diferentes niveles de autorizaciones.
|
||||
|
||||
Most of your invites will be for the "Contributor" level. This level allows the user to create drafts. Select this role when inviting a new translator.
|
||||
La mayoría de tus invitaciones serán para el nivel de "Colaborador". Este nivel permite al usuario crear borradores. Selecciona este rol cuando invitas a un nuevo traductor.
|
||||
|
||||
The "Author" level allows the user to create Drafts and publish them.
|
||||
El nivel "autor" permite al usuario crear borradores y publicarlos.
|
||||
|
||||
The "Editor" level allows the user to access all Drafts and publish them. Select this role when inviting a new proofreader.
|
||||
El nivel "Editor" permite al usuario acceder a todos los Borradores y publicarlos. Seleccione este rol al invitar a un nuevo revisor (proofreader).
|
||||
|
||||
The "Administrator" level is reserved for freeCodeCamp staff and Language Leads.
|
||||
El nivel "Administrador" está reservado para el personal de freeCodeCamp y los líderes de idiomas.
|
||||
|
||||
## How to mention the original author of a translated article
|
||||
## Cómo mencionar al autor original de un artículo traducido
|
||||
|
||||
The original author and the original article are linked automatically adding this code to the Code Injection -> head section in the Draft Settings on ghost.
|
||||
|
||||
@@ -24,18 +24,18 @@ The original author and the original article are linked automatically adding thi
|
||||
</script>
|
||||
```
|
||||
|
||||
With `link` being the link of the original article.
|
||||
Con `link` siendo el enlace del artículo original.
|
||||
|
||||
## How to update trending articles
|
||||
|
||||
> [!TIP] Changing the articles in the footer at least once a month means giving a boost to the linked articles on google results.
|
||||
|
||||
There are two places in which to change the trending articles.
|
||||
Hay dos lugares en los que cambiar las tendencias de artículos.
|
||||
|
||||
- [The curriculum repository](https://github.com/freeCodeCamp/freeCodeCamp/)
|
||||
- [The CDN repository](https://github.com/freeCodeCamp/cdn)
|
||||
- [El repositorio del currículo](https://github.com/freeCodeCamp/freeCodeCamp/)
|
||||
- [El repositorio CDN](https://github.com/freeCodeCamp/cdn)
|
||||
|
||||
For each article you will need to create a shorter title to use in the footer.
|
||||
Para cada artículo necesitarás crear un título más corto para usar en el pie de página.
|
||||
|
||||
### Change trending articles in the curriculum
|
||||
|
||||
@@ -45,7 +45,7 @@ This file is a `*.json` file that has the shape of an object with property keys
|
||||
|
||||
Each number rapresents one of the 30 articles in the footer. Make sure to match the title and the link correctly.
|
||||
|
||||
This is an example of how part of the `trending.json` file has to look.
|
||||
Este es un ejemplo de cómo tiene que verse parte del archivo `trending.json`.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -67,7 +67,7 @@ This is an example of how part of the `trending.json` file has to look.
|
||||
|
||||
You will want to [build the translated client locally](how-to-enable-new-languages.md) to see if the titles have the right length. Each title must stay on a single line and not go to a new line.
|
||||
|
||||
### How to update the trending articles in the cdn
|
||||
### Cómo actualizar los artículos de tendencia en el cdn
|
||||
|
||||
The file in the cdn repository is the file `universal/trending/<language>.yaml`.
|
||||
|
||||
@@ -168,11 +168,11 @@ flexibleAlerts: {
|
||||
}
|
||||
```
|
||||
|
||||
## How to translate the motivational quotes
|
||||
## Cómo traducir las citas motivacionales
|
||||
|
||||
The motivational quotes can be found in the [curriculum repository](https://github.com/freeCodeCamp/freeCodeCamp/) in the `/client/i18n/locales/<language>/motivation.json` file.
|
||||
|
||||
This file has a general structure of:
|
||||
Este archivo tiene una estructura general de:
|
||||
|
||||
```json
|
||||
{
|
||||
|
||||
@@ -1,127 +1,127 @@
|
||||
# The Official freeCodeCamp Moderator Handbook
|
||||
# El Manual Oficial del Moderador de freeCodeCamp
|
||||
|
||||
This handbook will help you moderate different places in our community. This covers conversations and interactions in issues and pull request threads on GitHub, the community forum, the chat rooms, and other official communities that we foster.
|
||||
Este manual te ayudará a moderar diferentes secciones dentro de nuestra comunidad. Esto cubre conversaciones e interacciones en asuntos e hilos de pull request en GitHub, el foro de la comunidad, las salas de chat y otras comunidades oficiales que proveemos.
|
||||
|
||||
> [!NOTE] All freeCodeCamp moderators are community-wide moderators. That means we trust you to oversee any of these places.
|
||||
> [!NOTE] Todos los moderadores de freeCodeCamp son moderadores de toda la comunidad. Esto significa que confiamos en ti para supervisar cualquiera de estos lugares.
|
||||
|
||||
You can serve as a moderator on any of the platforms that are of the most interest to you. Some moderators just help out on GitHub, while others just help out on the forum. Some moderators are active everywhere.
|
||||
Puedes ser moderador en cualquiera de las plataformas que sea de mas interés para ti. Algunos moderadores solo ayudan a través de GitHub, mientras que otros solo ayudan a través del foro. Algunos moderadores son activos en todas partes.
|
||||
|
||||
The bottom line is that we want you to enjoy being a moderator, and invest your scarce time in places that are of interest to you.
|
||||
Al final, lo que queremos es que disfrutes siendo moderador, e inviertas tu tiempo en las secciones que sean de tu interés.
|
||||
|
||||
> "With great power comes great responsibility." - Uncle Ben
|
||||
> "Con un gran poder, viene una gran responsabilidad" - Tio Ben
|
||||
|
||||
As a moderator, temperament is more important than technical skill.
|
||||
Como moderador, el temperamento es más importante que las habilidades técnicas.
|
||||
|
||||
Listen. Be helpful. Don't abuse your power.
|
||||
Escucha. Se servicial. No abuses de tu poder.
|
||||
|
||||
freeCodeCamp is an inclusive community, and we need to keep it that way.
|
||||
freeCodeCamp es una comunidad inclusiva y necesitamos mantenerla de esa manera.
|
||||
|
||||
We have a single [Code of Conduct](https://code-of-conduct.freecodecamp.org) that governs our entire community. The fewer the rules, the easier they are to remember. You can read those rules and commit them to memory [here](https://code-of-conduct.freecodecamp.org).
|
||||
Tenemos un solo [Código de Conducta](https://code-of-conduct.freecodecamp.org) que gobierna toda nuestra comunidad. Cuantas menos reglas, mas fácil serán de recordar. Puedes leerlas y memorizarlas [aquí](https://code-of-conduct.freecodecamp.org).
|
||||
|
||||
> [!NOTE] As a moderator we would add you to one or more teams on GitHub, our community forums & chat servers. If you are missing access on a platform that you would like to moderate, please [reach out to a staff member](FAQ.md#additional-assistance).
|
||||
|
||||
## Moderando GitHub
|
||||
|
||||
Moderators have two primary responsibilities on GitHub:
|
||||
Las moderadoras tienen dos responsabilidades principales en GiHub:
|
||||
|
||||
1. Triaging and responding to issues.
|
||||
2. Reviewing and merging pull requests (aka QA).
|
||||
1. Evaluar y responder a problemas.
|
||||
2. Revisión y fusión de pull requests (también conocido como QA).
|
||||
|
||||
### Moderating GitHub Issues
|
||||
### Moderando conflictos (issues) de GitHub
|
||||
|
||||
We use our main [`freeCodeCamp/freeCodeCamp`](https://github.com/freeCodeCamp/freeCodeCamp/issues) repository as a common issue tracker for all of our repositories. We get new issues every day, all of which need to be triaged, labeled, and addressed. This is also a great place to start helping with open-source codebase contributions.
|
||||
We use our main [`freeCodeCamp/freeCodeCamp`](https://github.com/freeCodeCamp/freeCodeCamp/issues) repository as a common issue tracker for all of our repositories. We get new issues every day, all of which need to be triaged, labeled, and addressed. Hay tambien una gran seccion para empezar a ayudar con proyectos de origen-abierto (open-source).
|
||||
|
||||
#### Issue Triage
|
||||
#### Problema de clasificación
|
||||
|
||||
[Triaging](https://en.wikipedia.org/wiki/Triage) is a process of prioritizing attention to each new issue report. We have an extensive list of labels that we use to mark each issue's priority, category, status, and scope.
|
||||
La clasificación (o triaging en inglés) es un proceso de priorización de atención para un nuevo reporte de problema. Tenemos una extensa lista de etiquetas que utilizamos para marcar la prioridad, categoría, estado y alcance de cada tema.
|
||||
|
||||
You can help us organize and triage the issue reports by applying labels from [this list](https://github.com/freeCodeCamp/freeCodeCamp/labels). Usually, a description is available alongside the label explaining its meaning.
|
||||
Puedes ayudarnos a organizar y clasificar los reportes de problemas mediante la aplicación de etiquetas de [esta lista](https://github.com/freeCodeCamp/freeCodeCamp/labels). Por lo general, hay una descripción junto a la etiqueta que explica su significado.
|
||||
|
||||
Please pay special attention to the labels `"help wanted"` and `"first timers only"`. These are to be added to threads that you think can be opened up to potential contributors for making a pull request.
|
||||
Por favor, presta especial atención a las etiquetas `"help wanted"` y `"first timers only"`. Estos se deben agregar a los hilos que creas que se puedan abrir a posibles contribuyentes para realizar una pull request.
|
||||
|
||||
A `"first timers only"` label should be applied to a trivial issue (ie a typo fix) and should include additional information. You can use this [reply template](moderator-handbook.md#first-timer-only-issues) for triage.
|
||||
Se debe aplicar una etiqueta `"first timer only"` a un problema trivial (por ejemplo, una corrección de errores tipográficos) y debe incluir información adicional. Puedes utilizar esta [plantilla de respuesta](moderator-handbook.md#first-timer-only-issues) para la clasificación.
|
||||
|
||||
#### Closing Stale, Outdated, Inactive Issues and Pull Requests
|
||||
#### Cierre de solicitudes de extracción y problemas obsoletos, desactualizados e inactivos
|
||||
|
||||
- Stale issues or PRs are those that have not seen any activity from the author for 21 days (3 weeks from the last activity), but only after a moderator has requested more information/changes.
|
||||
- Los problemas obsoletos o RP son aquellos que no han visto ninguna actividad del autor durante 21 días (3 semanas desde la última actividad), pero solo después de que un moderador haya solicitado más información / cambios.
|
||||
|
||||
- Activity is defined as: Comments requesting an update on the PR and triages like `status: update needed` label, etc.
|
||||
- La actividad se define como: Comentarios que solicitan una actualización en PR y clases como `estado: actualización necesaria` etiqueta, etc.
|
||||
|
||||
- If the contributor asks for additional assistance or even time, the above can be relaxed and revisited after a response is given. In any case, the mods should use their best judgment to resolve the outstanding PR's status.
|
||||
- Si el colaborador solicita ayuda adicional o incluso tiempo, lo anterior se puede relajar y revisar después de que se dé una respuesta. En cualquier caso, los mods deben usar su mejor criterio para resolver el estado de PR.
|
||||
|
||||
> [!TIP] We recommend you use this list of standard [reply templates](moderator-handbook.md#reply-templates) while triaging issues.
|
||||
> Le recomendamos que utilice esta lista de [ plantillas de respuesta ](moderator-handbook.md#reply-templates) estándar al evaluar los problemas.
|
||||
|
||||
### Moderating Pull Requests
|
||||
### Moderación de solicitudes de extracción
|
||||
|
||||
Pull Requests (PRs) are how contributors submit changes to freeCodeCamp's repository. We must perform Quality Assurance (QA) on pull requests before we decide whether to merge them, request changes, or close them.
|
||||
Las solicitudes de extracción (PRs) es la forma en que los colaboradores envían cambios a los repositorios de freeCodeCamp´s. Debemos realizar un control de calidad (QA) en los pull requests antes de decidir si, cambios de solicitud, o cerrarlos.
|
||||
|
||||
#### Types of Pull Requests
|
||||
#### Tipo de Pull Requests
|
||||
|
||||
1. **Challenge instruction edits**
|
||||
1. **Edición a las instrucciones del desafío**
|
||||
|
||||
These are changes to the text of challenges - the description, instructions, or test text.
|
||||
Estos son cambios en el texto de los desafíos: la descripción, las instrucciones o el texto de prueba.
|
||||
|
||||
You can also review these right on GitHub and decide whether to merge them. We need to be a bit more careful about these because millions of people will encounter this text as they work through the freeCodeCamp curriculum. Does the pull request make the text more clear without making it much longer? Are the edits relevant and not overly pedantic? Remember that our goal is for challenges to be as clear and as short as possible. They aren't the place for obscure details. Contributors may try to add links to resources to the challenges.
|
||||
Puedes revisar las ediciones directamente en GitHub y decidir ahí si aceptar o no los cambios. Aqui debemos ser un poco mas cuidadosos, porque millones de personas leerán estos textos en la medida que vayan completando el programa de freeCodeCamp. ¿El pull request hace más claro el texto sin alargarlo demasiado? ¿Son las recomendaciones relevantes o pedantes en exceso? Recuerda que nuestro objetivo es que los retos sean lo más claro y cortos posibles. No son el lugar para detalles oscuros. Además, los colaboradores podrían intentar añadir enlaces hacia recursos en los desafíos.
|
||||
|
||||
You can close invalid pull requests and reply to them with these [reply templates](moderator-handbook.md#closing-invalid-pull-requests).
|
||||
Tu puedes cerrar pull requests no válidas y responderlas con estas [ plantillas de respuesta ](moderator-handbook.md#closing-invalid-pull-requests).
|
||||
|
||||
If the changes look good, please ensure to leave an approval with a "LGTM" (Looks Good To Me) comment. Once a pull request gets at least two approvals (including yours) from the moderators or the dev-team, you can go ahead and merge it.
|
||||
Si los cambios se ven bien, por favor asegúrese de dejar una aprobación con un comentario "LGTM" (Looks Good To Me). Una vez que un Pull Request recibe al menos dos aprobaciones (incluyendo la tuya) de los moderadores o del equipo de desarrollo, puedes hacer un Merge.
|
||||
|
||||
2. **Challenge code edits**
|
||||
2. **Edición al código del desafío**
|
||||
|
||||
These are changes to the code in a challenge - the challenge seed, challenge solution, and test strings.
|
||||
|
||||
These pull requests need to be pulled down from GitHub and tested on your local computer or Gitpod to make sure the challenge tests can still be passed with the current solution and to make sure the new code doesn't introduce any errors.
|
||||
|
||||
Some contributors may try to add additional tests to cover pedantic corner-cases. We need to be careful to not make the challenge too complicated. These challenges and their tests should be as simple and intuitive as possible. Aside from the algorithm challenges and interview prep section, learners should be able to solve each challenge within about 2 minutes.
|
||||
Algunos colaboradores pueden intentar añadir pruebas adicionales para cubrir casos marginales. Debemos tener cuidado de no complicar demasiado el reto. Estos retos y sus pruebas deben ser tan simples e intuitivas como sea posible. Aparte de los desafíos del algoritmo y la sección de preparación de la entrevista, los estudiantes deberían ser capaces de resolver cada desafío en unos 2 minutos.
|
||||
|
||||
You can close invalid pull requests and reply to them with these [reply templates](moderator-handbook.md#closing-invalid-pull-requests).
|
||||
Tu puedes cerrar pull requests no válidas y responderlas con estas [ plantillas de respuesta ](moderator-handbook.md#closing-invalid-pull-requests).
|
||||
|
||||
If the changes look good, please ensure to leave an approval with a "LGTM" comment. Once a pull request gets at least two approvals (including yours) from the moderators or the dev-team, you can go ahead and merge it.
|
||||
If the changes look good, please ensure to leave an approval with a "LGTM" comment. Una vez que un Pull Request recibe al menos dos aprovaciones (incluyendo la tuya) de los moderadores o del equipo de desarrollo, puedes hacer un Merge.
|
||||
|
||||
3. **Platform changes**
|
||||
3. **Cambios a la Plataforma**
|
||||
|
||||
These code edits change the functionality of the freeCodeCamp platform itself.
|
||||
Estas ediciones de código cambian la funcionalidad de la propia plataforma freCodeCamp.
|
||||
|
||||
Sometimes contributors try to make changes without much explanation, but for code changes, we need to make sure there's a genuine need for the change. These pull requests should reference an existing GitHub issue where the reasons for the change are discussed. Then you can open the pull request on your computer and test them out locally.
|
||||
A veces los colaboradores tratan de hacer cambios sin mucha explicación, pero para cambios de código necesitamos asegurarnos de que alla una verdadera necesidad para los mismos. Estos Pull Request deben hacer referencia a un GitHub Issue preexistente, donde discutir las razones del cambio. Entonces puede abrir el pull request en su computadora y probarlo localmente.
|
||||
|
||||
After you've done so, if the changes look good, don't merge them quite yet. You can comment on the pull request saying "LGTM", then mention **"@freeCodeCamp/dev-team"** so they can take a final look.
|
||||
Después de haberlo hecho, si los cambios se ven bien, no los fusiones todavía. Puede comentar sobre la solicitud de extracción diciendo "LGTM", luego mencionar ** "@ freeCodeCamp / dev-team" ** para que puedan echar un vistazo final.
|
||||
|
||||
4. **Automated PRs (Dependabot)**
|
||||
4. **Relaciones públicas automatizadas (Dependabot)**
|
||||
|
||||
Some PRs are automated dependency updates made via an integration. You should not merge or approve these PRs. One of the dev-team members will take care of reviewing and merging such automated PRs.
|
||||
Algunos RP son actualizaciones de dependencia automatizadas realizadas a través de una integración. Tu no debes fusionar ni aprobar estos RP. Uno de los miembros del equipo de desarrollo se encargará de revisar y fusionar dichos PRs automatizados.
|
||||
|
||||
#### How to review, merge or close pull requests
|
||||
#### Cómo combinar o cerrar pull requests
|
||||
|
||||
##### Assign yourself to a pull request:
|
||||
##### Asignarse a una solicitud de extracción:
|
||||
|
||||
First of all, when you choose a pull request to review, you should assign yourself to it. You can do this by clicking the "assign yourself" link below the "assignees" part on the right-hand column of GitHub's interface.
|
||||
En primer lugar, cuando elijas un pull request a QA, deberás asignarte a él. Puedes hacer esto haciendo clic en el enlace "assign yourself" debajo de la parte "assignees" en la columna derecha de la interfaz de GitHub.
|
||||
|
||||
Depending on the type of pull request it is, follow the corresponding rules listed previously.
|
||||
Dependiendo del tipo de pull request que sea, siga las reglas indicadas arriba.
|
||||
|
||||
##### Ensure the CI checks are passing:
|
||||
##### Asegúrese de que las comprobaciones de CI estén pasando:
|
||||
|
||||
Before merging any pull request, make sure that GitHub is reporting all checks to be passing (green check marks) on the pull requests. If you see any of the checks failing, please investigate and clarify the root cause. Is the change being made breaking our tests? Will the site build correctly if the PR is merged? These checks are critical for the stability of the platform.
|
||||
Antes de hacer Merge a cualquier Pull Request, asegúrate que Github está tomando todos los Checks (las marcas verdes de aprobación) y que están pasando correctamente en los Pull Request. Si ves que falla alguna de las comprobaciones, investiga y obtén alguna aclaración sobre la causa raíz. ¿Se está realizando el cambio rompiendo nuestras pruebas? ¿El sitio compilará correctamente si el PR hace Merge? Estos controles son fundamentales para la estabilidad de la plataforma.
|
||||
|
||||
> [!WARNING] Merging a PR that fails CI/CD checks can cause difficulties for all stakeholders, including the dev-team and contributors.
|
||||
> [!ALERTA] Al fusionar un PR que no cumple con las comprobaciones de CI/CD puede causar dificultades a todas las partes interesadas, incluido el equipo de desarrollo y los colaboradores.
|
||||
|
||||
##### Handling Merge Conflicts:
|
||||
|
||||
Sometimes there will be a merge conflict.
|
||||
|
||||
This means that another pull request has made a change to that same part of that same file. GitHub has a tool for addressing these merge conflicts right on GitHub. You can try to address these conflicts. Use your best judgment.
|
||||
Esto significa que otro pull request ha hecho un cambio a esa parte exacta del mismo archivo. GitHub tiene una herramienta para abordar estos conflictos de fusión en GitHub. Puedes tratar de resolver estos conflictos. Utilice su mejor criterio.
|
||||
|
||||
The pull request's changes will be on top, and the main branch's changes will be on the bottom. Sometimes there will be redundant information in there that can be deleted. Before you finish, be sure to delete the `<<<<<<`, `======`, and `>>>>>>` that Git adds to indicate areas of conflict.
|
||||
Los cambios del pull request estarán en la parte superior, y los cambios de la rama principal estarán en la parte inferior. A veces habrá información redundante que se puede eliminar. Antes de que finalices, cerciórate de eliminar el `<<<<<<`, `======`, y `>>>>>>` que Git añade para indicar áreas de conflicto.
|
||||
|
||||
If you are uncertain, please ask one of the fellow moderators or the dev-team for assistance.
|
||||
Si no está seguro, pida ayuda a uno de los compañeros moderadores o al equipo de desarrollo.
|
||||
|
||||
##### Merging a valid pull request:
|
||||
##### Cerrando pull requests no válidos:
|
||||
|
||||
If the pull request looks ready to merge (and doesn't require additional approvals - remember we require at least two), you can go ahead and merge it. Be sure to use the default **"Squash and Merge"** option. This will squash all the pull requests commits down into a single commit, making the Git history much easier to read.
|
||||
Si el pull request parece estar listo para fusionarse (y no requiere la aprobación de @raisedadead), puedes seguir adelante y fusionarlo. Asegúrese de utilizar la opción predeterminada ** "Squash and Merge" **. Esto juntará todos los commits de las solicitudes de extracción en un solo commit, lo que hará que el historial de Git sea mucho más fácil de leer.
|
||||
|
||||
> You should then comment on the pull request, thanking the contributor in your own personal way!
|
||||
|
||||
If the pull request author is a "first-time contributor" you should also congratulate them on their first merged pull request to the repository. You can look at the upper right-hand corner of the PR's body to determine a first-time contributor. It will show `First-time contributor` as shown below:
|
||||
Si el autor del pull request es un "colaborador por primera vez" también deberias felicitarlos por su primera fusión de pull request en el repositorio. Puedes mirar la esquina superior derecha del cuerpo del PR, para determinar un colaborador de primera vez. Mostrará `First-time contributor` como se muestra a continuación:
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
@@ -129,50 +129,50 @@ If the pull request author is a "first-time contributor" you should also congrat
|
||||
</summary>
|
||||
|
||||
<br>
|
||||
<img src="https://i.imgur.com/dTQMjGM.png" alt="First time contributor badge on pull requests" />
|
||||
<img src="https://i.imgur.com/dTQMjGM.png" alt="Insignia de colaborador por primera vez en solicitudes de extracción (captura de pantalla" />
|
||||
</details>
|
||||
|
||||
If the pull request doesn't look ready to merge, you can politely reply telling the author what they should do to get it ready. Hopefully, they will reply and get their pull request closer to ready.
|
||||
Si el pull request no parece listo para fusionarse, puedes responder amablemente al autor que debe hacer para prepararlo. Con suerte, responderán y prepararán sus pull request.
|
||||
|
||||
If you need a second opinion on a pull request, go ahead and leave your comments on the pull request, then add the "discussing" label to the pull request.
|
||||
Si necesitas una segunda opinión sobre un pull request, sigue adelante y deja tus comentarios sobre el pull request, luego agregue la etiqueta "discussing" al pull request.
|
||||
|
||||
##### Closing an Invalid Pull Request:
|
||||
|
||||
Often, a pull request will be low effort. You can usually tell this immediately when the contributor didn't bother checking the checkboxes in the Pull Request Template or used a generic pull request title like "Made changes" or "Update index.md".
|
||||
A menudo, una pull request requiere poco esfuerzo. You can usually tell this immediately when the contributor didn't bother checking the checkboxes in the Pull Request Template or used a generic pull request title like "Made changes" or "Update index.md".
|
||||
|
||||
There are also situations where the contributor is trying to add a link to their website, include a library they created, or have a frivolous edit that doesn't help anyone but themselves.
|
||||
También hay situaciones en las que el colaborador está tratando de agregar un enlace a su sitio web, incluir una librería que creó o realizar una edición frívola que no ayuda a nadie más que a ellos mismos.
|
||||
|
||||
You can close these invalid pull requests and reply to them with these [reply templates](moderator-handbook.md#closing-invalid-pull-requests).
|
||||
|
||||
#### Other Guidelines for Moderators on GitHub
|
||||
#### Otras Directrices para Moderadores en GitHub
|
||||
|
||||
Though you will have write access to freeCodeCamp's repository, **you should never push code directly to freeCodeCamp repositories**. All code should enter freeCodeCamp's codebase in the form of a pull request from a fork of the repository.
|
||||
Aunque tendrá acceso de escritura al repositorio de freeCodeCamp, ** nunca debe enviar código directamente a los repositorios de freeCodeCamp **. Todo el código debe ingresar a la base de código de freeCodeCamp en forma de una solicitud de extracción desde una bifurcación del repositorio.
|
||||
|
||||
Also, you should never accept your own PRs. They must be reviewed by another moderator, just like any other PR.
|
||||
Además, nunca debe aceptar sus propios RP. Deben ser revisados por otro moderador, al igual que con cualquier otro RP.
|
||||
|
||||
If you notice anyone breaking the [Code of Conduct](https://code-of-conduct.freecodecamp.org) on GitHub issues, or opening pull requests with malicious content or code, email `support[at]freecodecamp.org` with a link to the offending pull request, and we can consider banning them from freeCodeCamp's GitHub organization entirely.
|
||||
|
||||
## Moderando el foro
|
||||
|
||||
As a moderator, you help keep our community an enjoyable place for anyone to learn and get help. You will deal with flagged posts and handle spam, off-topic, and other inappropriate conversations.
|
||||
As a moderator, you help keep our community an enjoyable place for anyone to learn and get help. Se ocupará de las publicaciones marcadas y manejará el spam, las conversaciones fuera de tema y otras conversaciones inapropiadas.
|
||||
|
||||
Note that once you are a moderator on the forum, you will start to see blue moderator hints about forum members, like "this is the first time [person] has posted - let's welcome them to the community!" or "[person] hasn't posted in a long time - let's welcome them back."
|
||||
Tenga en cuenta que una vez que sea un moderador en el foro, comenzará a ver sugerencias azules de moderador sobre los miembros del foro, como "esta es la primera vez que [persona] publica: ¡démosle la bienvenida a la comunidad!" o "[persona] no ha publicado en mucho tiempo, démosle la bienvenida".
|
||||
|
||||
![A blue text message saying "this is the first time [person] has posted - let's welcome them to the community!](https://i.imgur.com/mPmVgzK.png)
|
||||
![Un mensaje de texto azul que dice "esta es la primera vez que [person] ha publicado - ¡Demos la bienvenida a la comunidad!](https://i.imgur.com/mPmVgzK.png)
|
||||
|
||||
These are opportunities for you to welcome them and make them feel extra special. You never know which person who's marginally involved may become our next super-helper, helping many other people in their coding journey. Even the slightest kindness may trigger a cascade of good deeds.
|
||||
Estas son oportunidades para que les dé la bienvenida y los haga sentir muy especiales. Nunca se sabe qué persona que a sido marginada puede convertirse en nuestro próximo súper ayudante, ayudando a muchas otras personas en su viaje de codificación. Incluso la más mínima bondad puede desencadenar una cascada de buenas acciones.
|
||||
|
||||
### Deleting Forum Posts
|
||||
### Eliminando mensajes del foro
|
||||
|
||||
Forum moderators can delete users' posts. You should only do this for the following instances:
|
||||
Los moderadores del foro pueden borrar las publicaciones de los usuarios. Solo debes hacer esto en los siguientes casos:
|
||||
|
||||
1. Someone has posted a pornographic or graphically violent image.
|
||||
2. Someone has posted a link or code that is malicious in nature and could harm other campers who click on it.
|
||||
3. Someone has flooded a thread with a lot of spam messages.
|
||||
1. Alguien ha publicado una imagen pornográfica o gráficamente violenta.
|
||||
2. Alguien ha publicado un enlace o código que es de naturaleza maliciosa y podría dañar a otros usuarios que hagan clic en él.
|
||||
3. Alguien ha inundado un hilo con muchos mensajes de spam.
|
||||
|
||||
### Dealing with Spam
|
||||
### Tratando con Spam
|
||||
|
||||
For the first spam post of a user, send them a message explaining the problem, and remove the link or post as appropriate. Leave a note on the user's profile explaining the action you have taken. If the problem persists, then quietly block the user from posting (using the silence option on the User Admin panel). Send the user a warning with the [Code of Conduct](https://code-of-conduct.freecodecamp.org). Check the box in the private message indicating that your message is a "formal warning."
|
||||
Para la primera publicación de spam de un usuario, envíele un mensaje que explique el problema y elimine el enlace o la publicación según corresponda. Deje una nota en el perfil del usuario explicando la acción que ha realizado. Si el problema persiste, bloquee silenciosamente al usuario para que no publique (usando la opción de silencio en el panel de administración de usuarios). Send the user a warning with the [Code of Conduct](https://code-of-conduct.freecodecamp.org). Marque la casilla en el mensaje privado que indica que su mensaje es una "advertencia formal".
|
||||
|
||||
As a moderator, you can ask questions and report incidents in the [mod-team forum section](https://forum.freecodecamp.org/c/mod-team/4).
|
||||
|
||||
@@ -180,43 +180,43 @@ As a moderator, you can ask questions and report incidents in the [mod-team foru
|
||||
|
||||
Posts or topics that seem to be in the wrong place can be recategorized or renamed to whatever would be appropriate.
|
||||
|
||||
In exceptional circumstances, it may be appropriate for a moderator to fork a discussion into multiple threads.
|
||||
En circunstancias excepcionales, puede ser apropiado que un moderador divida una discusión en varios hilos.
|
||||
|
||||
Again, if you have any problems or questions, make a post with your actions in the `"Staff"` category, and tag another moderator if you want them to review your moderating actions.
|
||||
|
||||
### Usuarios Inderramados
|
||||
|
||||
Our [Terms of Service](https://freecodecamp.org/terms) require that freeCodeCamp users be at least 13 years of age. If a user reveals that they are under the age of 13, send them the below message and delete their forum account (if deletion is not available, suspending the account is sufficient).
|
||||
Nuestras [Condiciones del servicio](https://freecodecamp.org/terms) requieren que los usuarios de freeCodeCamp tengan al menos 13 años de edad. Si un usuario revela que es menor de 13 años, envíale el mensaje a continuación y elimina su cuenta del foro (si la eliminación no está disponible, suspender la cuenta es suficiente).
|
||||
|
||||
**Email `support[at]freecodecamp.org` to delete the user's freeCodeCamp account as well.**
|
||||
**Envía un correo electrónico a `support[at]freecodecamp.org` para eliminar también la cuenta de freeCodeCamp del usuario.**
|
||||
|
||||
```markdown
|
||||
SUBJECT: Users under 13 are not allowed to use the forum per our Terms of Service.
|
||||
SUBJECT: Los usuarios menores de 13 años no pueden utilizar el foro según nuestras Condiciones de Servicio.
|
||||
|
||||
It has come to our attention that you are under 13 years of age. Per the [freeCodeCamp Terms of Service](https://freecodecamp.org/terms), you must be at least 13 years old to use the site or the forum. We will be deleting both your freeCodeCamp account and your forum account. This restriction keeps us in compliance with United States laws.
|
||||
Nos hemos enterado de que usted es menor de 13 años. Por los [Términos de servicio de freeCodeCamp](https://freecodecamp.org/terms), debes tener al menos 13 años para usar el sitio o el foro. Eliminaremos tu cuenta de freeCodeCamp y tu cuenta del foro. Esta restricción nos mantiene en cumplimiento de las leyes estadounidenses.
|
||||
|
||||
Please rejoin once you have reached at least 13 years of age.
|
||||
Por favor, vuelva a unirse una vez que haya alcanzado al menos 13 años de edad.
|
||||
|
||||
Thank you for understanding.
|
||||
Gracias por su entendimiento.
|
||||
```
|
||||
|
||||
## Moderando Facebook
|
||||
|
||||
If you see anything that seems to break our [Code of Conduct](https://code-of-conduct.freecodecamp.org/), you should delete it immediately.
|
||||
Si ve algo que parece infringir nuestro [ Código de conducta ](https://code-of-conduct.freecodecamp.org/), debe eliminarlo de inmediato.
|
||||
|
||||
Sometimes people will post things that they think are funny. They don't realize that what they said or what they shared could be interpreted as offensive. You should delete such posts, but not necessarily ban the person. Hopefully, the user will come to understand that what they posted was inappropriate because the post was deleted.
|
||||
A veces, las personas publican cosas que creen que son divertidas. No se dan cuenta de que lo que dijeron o lo que compartieron podría interpretarse como ofensivo. Debes eliminar dichas publicaciones, pero no necesariamente prohibir a la persona. Con suerte, el usuario llegará a comprender que lo que publicó fue inapropiado porque la publicación fue eliminada.
|
||||
|
||||
But if it is an egregious offense that can't reasonably be attributed to a cultural difference or a misunderstanding of the English language. In that case, you should strongly consider blocking the member from the Facebook group.
|
||||
Pero si se trata de una ofensa atroz que no puede atribuirse razonablemente a una diferencia cultural o un malentendido del idioma Inglés. En ese caso, deberías considerar seriamente bloquear al miembro del grupo de Facebook.
|
||||
|
||||
## Moderating Discord
|
||||
## Moderando Discord
|
||||
|
||||
Here's how moderators deal with violations of our [Code of Conduct](https://code-of-conduct.freecodecamp.org/) on our chat server:
|
||||
Así es como los moderadores tratan las violaciones de nuestro [ Código de conducta ](https://code-of-conduct.freecodecamp.org/) en nuestro servidor de chat:
|
||||
|
||||
> [!NOTE] Camperbot serves as our moderation bot, and all of the commands use Discord's native slash command interface. You can see a list of all of the commands by typing `/` in any channel.
|
||||
|
||||
1. **Make sure the user intended to violate the [Code of Conduct](https://code-of-conduct.freecodecamp.org).**
|
||||
1. **Asegúrese de que el usuario ha querido violar el [Código de Conducta](https://code-of-conduct.freecodecamp.org).**
|
||||
|
||||
Not all violations of the [Code of Conduct](https://code-of-conduct.freecodecamp.org) were intended as such. A new camper might post a large amount of code for help, unaware that this can be disruptive to conversation. In these cases, you can just ask them to paste their code with services like CodePen or Pastebin.
|
||||
Not all violations of the [Code of Conduct](https://code-of-conduct.freecodecamp.org) were intended as such. A new camper might post a large amount of code for help, unaware that this can be disruptive to conversation. En estos casos, puedes pedir que copien su código en aplicaciones como CodePen o Pastebin.
|
||||
|
||||
2. **If the camper clearly and intentionally violates the [Code of Conduct](https://code-of-conduct.freecodecamp.org), the moderator will proceed as follows:**
|
||||
|
||||
@@ -226,12 +226,12 @@ Here's how moderators deal with violations of our [Code of Conduct](https://code
|
||||
|
||||
> [!WARNING] The reason provided to a moderation command will also be included in the DM notification to the camper. Please remember to be professional here.
|
||||
|
||||
3. **Creating a private discussion**
|
||||
3. **Creando una discusión privada**
|
||||
|
||||
There may be situations where you need to address a concern with a camper privately. This should not be done through DMs, which can lead to situations where you claim one thing and the camper claims another. Instead, use the bot's functionality to create a private discussion:
|
||||
Puede haber situaciones en las que necesites abordar una inquietud con un usuario en privado. Esto no debe hacerse a través de Mensajes Directos, lo que puede llevar a situaciones en las que reclamas una cosa y el campista reclama otra. En su lugar, use la funcionalidad del bot para crear una discusión privada:
|
||||
|
||||
- Call the `/private` command, where `target` is the camper you want to open a private channel with.
|
||||
- The bot will create a new channel, and add the mentioned camper and all moderators with the `Your Friendly Moderator` role. While all moderators are added to the channel for transparency, the moderator who calls this command should be the only one to interact with the camper unless they request assistance.
|
||||
- El bot creará un nuevo canal y agregará el usuario mencionado y todos los moderadores con el rol ` Tu moderador amigable `. Si bien todos los moderadores se agregan al canal por motivos de transparencia, el moderador que utiliza este comando debe ser el único que interactúe con el campista a menos que solicite ayuda.
|
||||
- When the conversation is complete, click the `❌ Close` button _on the first message in the private channel_ to have the bot close and delete that channel.
|
||||
|
||||
4. **Deleting messages**
|
||||
@@ -246,43 +246,43 @@ Here's how moderators deal with violations of our [Code of Conduct](https://code
|
||||
|
||||
If a violation was clearly unintended and doesn't warrant moderation action or private conversation, make the offending camper aware of their actions without making it come across as a warning.
|
||||
|
||||
For example:
|
||||
Por ejemplo:
|
||||
|
||||
- Camper posts a wall of code to request help:
|
||||
- Usuario publica un muro de código para solicitar ayuda:
|
||||
|
||||
Moderator: **@username** Please use CodePen or Pastebin when posting large amounts of code.
|
||||
Moderador: **@nombre-de-usuario** Por favor utilice Codepen o Pastebin cuando publique grandes cantidades de código.
|
||||
|
||||
- Or if you really have to explain why:
|
||||
- O si realmente tienes que explicar por qué:
|
||||
|
||||
Moderator: **@username** Please use CodePen or Pastebin when posting large amounts of code, because it disrupts the chat for everyone and could be considered spamming according to our [Code of Conduct](https://code-of-conduct.freecodecamp.org).
|
||||
|
||||
- For mild and unintentional violations of the [Code of Conduct](https://code-of-conduct.freecodecamp.org):
|
||||
- Por infracciones leves y no intencionales del [Código de Conducta](https://code-of-conduct.freecodecamp.org):
|
||||
|
||||
Moderator: This is a friendly reminder for everyone to follow the [Code of Conduct](https://code-of-conduct.freecodecamp.org): https://code-of-conduct.freecodecamp.org/
|
||||
|
||||
6. **Don’t brag about being a moderator**
|
||||
6. **No se preocupe de ser un moderador**
|
||||
|
||||
Do not see yourself as above the community. **You are the community.** And the community has trusted you to help protect something rare that we all share - a _welcoming_ place for new developers.
|
||||
|
||||
If you brag about being a moderator, people may feel uneasy around you, in the same way that people may feel uneasy around a police officer, even if they’re doing nothing wrong. This is just human nature.
|
||||
|
||||
7. **Don’t contradict other moderators**
|
||||
7. **No contradigas a otros moderadores**
|
||||
|
||||
If you disagree with a moderator's action, talk with them in private or bring it up in the #mod-chat channel. Never override a moderator's action, and never contradict the other moderator(s) publicly. Instead, have a cool-headed discussion in `#mod-chat` and convince the moderator that they themselves should reverse their ban or change their PoV (Point of View).
|
||||
|
||||
_Remember: We’re all on the same team. We want to dignify the role of moderators and present a unified front._
|
||||
|
||||
8. **Talk with other moderators**
|
||||
8. **Habla con otros moderadores**
|
||||
|
||||
We have a `#mod-chat` room for moderators only. Use it! If you feel uncomfortable with handling a certain situation, ask other moderators for help. If you think something should be discussed, do it. You're part of the team, and we value every team member's input! Even if you totally disagree with anything in these guidelines or the [Code of Conduct](https://code-of-conduct.freecodecamp.org)!
|
||||
|
||||
9. **Temporarily inactive**
|
||||
9. **Temporalmente inactivo**
|
||||
|
||||
If you're not going to be active as a Moderator for a while due to vacation, illness, or any other reason, make sure to let the others know in the `#mod-chat` channel. This is so we know if we can count on you to be regularly active on the server or not.
|
||||
|
||||
## How to Become a Moderator
|
||||
## Cómo convertirse en moderador
|
||||
|
||||
Suppose you are helping people in the community consistently over time. In that case, our moderator team will eventually take notice, and one of them will mention you as a possible moderator to [our staff](https://forum.freecodecamp.org/g/Team). There are no shortcuts to becoming a moderator.
|
||||
Supón que estás ayudando a las personas de la comunidad de manera constante a lo largo del tiempo. In that case, our moderator team will eventually take notice, and one of them will mention you as a possible moderator to [our staff](https://forum.freecodecamp.org/g/Team). No hay atajos para convertirse en moderador/a.
|
||||
|
||||
If you are approved, we will add you to our moderator teams on [GitHub](https://github.com/orgs/freeCodeCamp/teams/moderators), [forum](https://forum.freecodecamp.org/g/moderators), chat, etc.
|
||||
|
||||
@@ -292,104 +292,96 @@ If you are approved, we will add you to our moderator teams on [GitHub](https://
|
||||
|
||||
## How We Retire Inactive Moderators
|
||||
|
||||
Please note that we will frequently remove moderators whom we think are inactive. When we do this, we will send the following message:
|
||||
Please note that we will frequently remove moderators whom we think are inactive. Cuando hagamos esto, enviaremos el siguiente mensaje:
|
||||
|
||||
```markdown
|
||||
This is a standard message notifying you that, since you don't seem to have been an active moderator recently, we're removing you from our moderator team. We deeply appreciate your help in the past.
|
||||
This is a standard message notifying you that, since you don't seem to have been an active moderator recently, we're removing you from our moderator team. Agradecemos profundamente tu ayuda en el pasado.
|
||||
|
||||
If you think we did this in error, or once you're ready to come back and contribute more, just reply to this message letting us know.
|
||||
```
|
||||
|
||||
## How Our Contributors Room Works
|
||||
|
||||
Anyone is welcome in the [contributors room on our chat server](https://discord.gg/PRyKn3Vbay). It is the designated chat room for moderators and other campers who contribute to our community in any number of ways, including through study groups.
|
||||
Anyone is welcome in the [contributors room on our chat server](https://discord.gg/PRyKn3Vbay). Esta es la sala de chat designada para moderadores y otros campistas que contribuyen a nuestra comunidad de diversas formas, incluso a través de grupos de estudio.
|
||||
|
||||
We assume contributors will read anything in this room that directly mentions them with an **@username**. Everything else is optional, but feel free to read anything anyone posts in there and interact.
|
||||
We assume contributors will read anything in this room that directly mentions them with an **@username**. Todo lo demás es opcional, pero siéntete libre de leer cualquier cosa que publiquen y de interactuar.
|
||||
|
||||
## Dealing with Solicitors
|
||||
## Lidiando con solicitantes
|
||||
|
||||
You may be approached by organizations who want to partner or co-brand with freeCodeCamp somehow. Once you realize that this is what they're after, **please stop talking to them** and tell them to email `team[at]freecodecamp.org`.
|
||||
Es posible que se le acerquen organizaciones que quieran asociarse o compartir la marca con freeCodeCamp de alguna manera. Una vez que se des cuenta de que esto es lo que están buscando, **deja de hablar con ellos** y diles que envíen un correo electrónico al `equipo[at]freecodecamp. org`.
|
||||
|
||||
We get proposals like this all the time, and the staff are in the best position to judge whether such a relationship will be worth it for our community (and it rarely is).
|
||||
Recibimos propuestas como esta todo el tiempo, por ello nuestro personal está en la mejor posición para decidir si es conveniente o no para nuestra comunidad (y rara vez lo es).
|
||||
|
||||
## Dealing with (Mental) Health Inquiries
|
||||
## Tratamiento de consultas (mentales) de salud
|
||||
|
||||
You may come across situations where users seek medical advice or are dealing with mental health issues and are looking for support.
|
||||
Puedes encontrarte con situaciones en las que los usuarios buscan asesoramiento médico o están lidiando con problemas de salud mental y buscan apoyo.
|
||||
|
||||
As a matter of policy, you should avoid talking privately about these matters. Should the situation reflect back to freeCodeCamp, we want to have the conversation(s) on record. Make it clear that we are not medical professionals and that you encourage the user to find professional help.
|
||||
En cuanto a nuestra política, deberías evitar hablar en privado de estos asuntos. Si la situación se refleja en freeCodeCamp, queremos que se registren la o las conversaciones. Deja claro que no somos profesionales médicos y que animas al usuario a encontrar ayuda profesional.
|
||||
|
||||
As difficult as it sometimes can be, avoid giving any tips or advice and rather point the user in the direction of seeking professional help!
|
||||
|
||||
If this happens on our chat server: Create a private channel for the user and the moderator team. This can be done with the bot's `private` command.
|
||||
Si esto sucede en nuestro servidor de chat: Cree un canal privado para el usuario y el equipo de mods. Esto se puede hacer con el comando ` private ` del bot.
|
||||
|
||||
- The user is guaranteed some privacy.
|
||||
- Public chat is no longer disrupted.
|
||||
- Other team members can pitch in, should you feel uncomfortable dealing with the situation yourself.
|
||||
- El usuario tiene garantizado cierta privacidad.
|
||||
- El chat público ya no es interrumpido.
|
||||
- Otros miembros del equipo pueden entrar, en caso de que te sientas incómodo enfrentándote a la situación tú mismo.
|
||||
|
||||
Helpful URLs:
|
||||
URL útiles:
|
||||
|
||||
http://suicide.org/international-suicide-hotlines.html
|
||||
|
||||
## A Note on Free Speech
|
||||
## Una nota sobre la libertad de expresión
|
||||
|
||||
Sometimes people will defend something offensive or incendiary that they said as "free speech."
|
||||
A veces la gente defenderá algo ofensivo o incendiario que dijeron como "libertad de expresión".
|
||||
|
||||
This XKCD comic summarizes perfectly most communities' thoughts on free speech.
|
||||
Este cómic XKCD resume perfectamente los pensamientos de la mayoría de las comunidades sobre la libertad de expresión.
|
||||
|
||||
<div align="center"><img src='./images/github/xkcd-free-speech.png' width="400" height="400" /></div>
|
||||
|
||||
Thanks for reading this, and thanks for helping the developer community!
|
||||
¡Gracias por leer esto, y gracias por ayudar a la comunidad de desarrolladores!
|
||||
|
||||
## Reply Templates
|
||||
## Plantillas de Respuesta
|
||||
|
||||
These are some of the standard reply templates that you may use while reviewing pull requests and triaging issues/pull requests.
|
||||
|
||||
> You can make your own saved replies with GitHub's built-in [saved replies](https://github.com/settings/replies/) feature or use the ones below.
|
||||
|
||||
### Thank You
|
||||
### Gracias
|
||||
|
||||
```markdown
|
||||
Thank you for your contribution to the page! 👍
|
||||
We are happy to accept these changes and look forward to future contributions. 🎉
|
||||
Gracias por su contribución a la página! 👍
|
||||
Estamos felices de aceptar estos cambios y esperamos futuras contribuciones. 🎉
|
||||
```
|
||||
|
||||
### Thank you and congrats
|
||||
### Muchas gracias y felicidades
|
||||
|
||||
> For thanking and encouraging first-time contributors.
|
||||
> Por dar las gracias y animar a los que han contribuido por primera vez.
|
||||
|
||||
```markdown
|
||||
Hi @username. Congrats on your first pull request (PR)! 🎉
|
||||
Hola @nombre de usuario. ¡Felicidades por tu primer pull request (PR)! 🎉
|
||||
|
||||
Thank you for your contribution to the page! 👍
|
||||
We are happy to accept these changes and look forward to future contributions. 📝
|
||||
¡Gracias por tu contribución a la página! : Techns_up:
|
||||
Estamos encantados de aceptar estos cambios y esperamos futuras contribuciones. 📝
|
||||
```
|
||||
|
||||
### Build Error
|
||||
### Error de compilación
|
||||
|
||||
```markdown
|
||||
Hey @username
|
||||
Hola @username
|
||||
|
||||
We would love to be able to merge your changes but it looks like there is an error with the CI build. ⚠️
|
||||
|
||||
Once you resolve these issues, we will be able to review your PR and merge it. 😊
|
||||
|
||||
---
|
||||
|
||||
Feel free to reference the [contributing guidelines](how-to-work-on-coding-challenges.md#testing-challenges) for instructions on running the CI build locally. ✅
|
||||
Nos encantaría poder combinar tus cambios, pero parece que hay un error con la construcción de Travis CI. Una vez resueltos estos problemas, revisaremos tu PR para hacer un Merge. No dude en consultar las [pautas de contribución] (how-to-work-on-coding-challenges.md#testing-challenges) para obtener instrucciones sobre cómo ejecutar la compilación de CI localmente. ✅
|
||||
```
|
||||
|
||||
### Syncing Fork
|
||||
### Sincronizando bifurcación
|
||||
|
||||
> When PR is not up to date with the `main` branch.
|
||||
|
||||
````markdown
|
||||
Hey @username
|
||||
|
||||
We would love to be able to merge your changes, but it looks like the branch is not up to date. ⚠️
|
||||
Nos encantaría hacer Merge a los cambios realizados, pero parece que la rama aún no se encuentra actualizada. ⚠️Para pasar la compilación, tendrás que sincronizar los últimos cambios desde la rama master del repositorio freeCodeCamp/freeCodeCamp.
|
||||
|
||||
To resolve this error, you will have to sync the latest changes from the `main` branch of the `freeCodeCamp/freeCodeCamp` repo.
|
||||
|
||||
Using the command line, you can do this in three easy steps:
|
||||
Usando la línea de comando, puede hacer esto en tres sencillos pasos:
|
||||
|
||||
```bash
|
||||
git remote add upstream git://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
@@ -399,51 +391,49 @@ git fetch upstream
|
||||
git pull upstream main
|
||||
````
|
||||
|
||||
If you're using a GUI, you can simply `Add a new remote...` and use the link `git://github.com/freeCodeCamp/freeCodeCamp.git` from above.
|
||||
Si estás usando un GUI, puedes simplemente `Añadir un nuevo remoto...` y usar el enlace `git://github.com/freeCodeCamp/freeCodeCamp.git` desde arriba.
|
||||
|
||||
Once you sync your fork and pass the build, we will be able to review your PR and merge it. 😊
|
||||
Una vez que sincronice su bifurcación y pase la compilación, podremos revisar su PR y fusionarla. 😊
|
||||
|
||||
---
|
||||
|
||||
Feel free to reference the ["Syncing a fork"](https://help.github.com/articles/syncing-a-fork/) article on GitHub for more insight on how to keep your fork up-to-date with the upstream repository. 🔄
|
||||
````
|
||||
|
||||
### Merge Conflicts
|
||||
### Fusionar conflictos
|
||||
|
||||
> When PR has merge conflicts that need to be resolved.¹
|
||||
> Cuando las PR tienen conflictos que necesitan ser resueltos.1
|
||||
|
||||
```markdown
|
||||
Hey @username
|
||||
|
||||
We would love to be able to merge your changes, but it looks like you have some merge conflicts. ⚠️
|
||||
|
||||
Once you resolve these conflicts, we will be able to review your PR and merge it. 😊
|
||||
Nos encantaría poder fusionar sus cambios, pero parece que tiene algunos conflictos de fusion. Una vez que resuelva estos conflictos, podremos revisar su RP y fusionarlo. 😊
|
||||
|
||||
---
|
||||
|
||||
If you're not familiar with the merge conflict process, feel free to look over GitHub's guide on ["Resolving a merge conflict"](https://help.github.com/articles/resolving-a-merge-conflict-on-github/). 🔍️
|
||||
Si no estás familiarizado con el proceso de fusión de conflictos, no dudes en echar un vistazo a la guía de GitHub en ["Resolviendo un conflicto de fusiones"](https://help. ithub.com/articles/resolving-a-merge-conflict-on-github/). 🔍️
|
||||
|
||||
Also, it's good practice on GitHub to write a brief description of your changes when creating a PR. 📝
|
||||
Además, es buena práctica en GitHub escribir una breve descripción de los cambios al crear un PR. 📝
|
||||
````
|
||||
|
||||
¹ If a first-time-contributor has a merge conflict, maintainers will resolve the conflict for them.
|
||||
¹ Si un colaborador por primera vez tiene un conflicto de fusión, los mantenedores resolverán el conflicto por ellos.
|
||||
|
||||
### Duplicate
|
||||
### Duplicadas
|
||||
|
||||
> When PR is repetitive or a duplicate.
|
||||
|
||||
```markdown
|
||||
Hey @username
|
||||
Hola @nombredeusuario
|
||||
|
||||
This PR seems to make similar changes as the existing PR <#number>. As such, we are going to close this as duplicate.
|
||||
Este RP parece realizar cambios similares a los del RP existente & lt; # number & gt .
|
||||
|
||||
If you feel you have additional changes to expand upon this PR, please feel free to push your commits and request this PR be reopened.
|
||||
Como tal, vamos a cerrar esto como duplicado.
|
||||
|
||||
Thanks again! 😊
|
||||
Si cree que tiene cambios adicionales para expandir este PR, no dude en presionar sus confirmaciones y solicitar que este PR se vuelva a abrir.
|
||||
|
||||
¡Gracias de nuevo! 😊
|
||||
|
||||
---
|
||||
|
||||
If you have any questions, feel free to ask questions on the ["Contributors" category on our forum](https://forum.freecodecamp.org/c/contributors) or [the contributors chat room](https://discord.gg/PRyKn3Vbay).
|
||||
Si tienes alguna pregunta, no dudes en hacer preguntas en la categoría ["Colaboradores" en nuestro foro](https://forum.freecodecamp.org/c/contributors) o [la sala de chat de colaboradores](https://discord.gg/PRyKn3Vbay).
|
||||
```
|
||||
|
||||
### Closing Invalid Pull Requests
|
||||
@@ -451,57 +441,57 @@ If you have any questions, feel free to ask questions on the ["Contributors" cat
|
||||
> When PR is invalid.
|
||||
|
||||
```markdown
|
||||
Hey @username
|
||||
Hola @username
|
||||
|
||||
Thank you for opening this pull request.
|
||||
Gracias por abrir este pull request.
|
||||
|
||||
This is a standard message notifying you that we've reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
|
||||
Este es un mensaje estándar notificándole que hemos revisado su pull request y hemos decidido no fusionarlo. Damos la bienvenida a tus futuras pull request.
|
||||
|
||||
Thank you and happy coding.
|
||||
Gracias y ten un feliz día programando.
|
||||
```
|
||||
|
||||
> When PR adds links to external resources.
|
||||
|
||||
```markdown
|
||||
Thank you for your pull request.
|
||||
Gracias por abrir esta solicitud de extracción.
|
||||
|
||||
We are closing this pull request. Please suggest links and other details to add the challenge's corresponding guide post through [a forum topic](https://forum.freecodecamp.org/new-topic?category=Contributors&title=&body=**What%20is%20your%20hint%20or%20solution%20suggestion%3F**%0A%0A%0A%0A%0A**Challenge%3A**%0A%0A%0A**Link%20to%20the%20challenge%3A**) instead.
|
||||
Cerramos esta solicitud de extracción. Sugiera enlaces y otros detalles para agregar la publicación de la guía correspondiente al desafío a través de [un tema del foro] (https://forum.freecodecamp.org/new-topic?category=Contributors&title=&body=**What%20is% 20su% 20sugestión% 20o% 20solución% 20sugerencia% 3F **% 0A% 0A% 0A% 0A% 0A ** Desafío% 3A **% 0A% 0A% 0A ** Vínculo% 20a% 20el% 20 desafío% 3A **) en lugar de.
|
||||
|
||||
If you think we're wrong in closing this issue, please request for it to be reopened and add further clarification. Thank you and happy coding.
|
||||
Si consideras que nos hemos equivocado cerrando esta incidencia, por favor solicita su reapertura y añade más aclaraciones. Thank you and happy coding.
|
||||
```
|
||||
|
||||
### Closing Invalid Issues
|
||||
### Cerrar problemas no válidos
|
||||
|
||||
> When an issue relates to the camper's code.
|
||||
|
||||
```markdown
|
||||
Thank you for reporting this issue.
|
||||
Gracias por reportar este problema.
|
||||
|
||||
This is a standard message notifying you that this issue seems to be a request for help. Instead of asking for help here, please click the **"Get Help"** button on the challenge on freeCodeCamp and choose the **"Ask for help"** option, which will help you create a question in the right part of the forum. Volunteers on the forum usually respond to questions within a few hours and can help determine if there is an issue with your code or the challenge's tests.
|
||||
Este es un mensaje estándar que le notifica que esta cuestión parece ser una solicitud de ayuda. En lugar de pedir ayuda aquí, por favor haga clic en el botón \*\*"Ayuda"\*\* en el desafío en freeCodeCamp, que te ayudará a crear una pregunta en la parte correcta del foro. Los voluntarios en el foro generalmente responden a preguntas en unas pocas horas y pueden ayudar a determinar si hay un problema con tu código o con las pruebas del desafío.
|
||||
|
||||
If the forum members determine there is nothing wrong with your code, you can request this issue to be reopened.
|
||||
Si los miembros del foro determinan que no hay ningún problema con su código, puede solicitar que se vuelva a abrir este problema.
|
||||
|
||||
Thank you and happy coding.
|
||||
Gracias, y feliz programación.
|
||||
```
|
||||
|
||||
> When an issue is duplicate of an earlier issue.
|
||||
|
||||
```markdown
|
||||
Thank you for reporting this issue.
|
||||
Gracias por reportar este problema.
|
||||
|
||||
This is a standard message notifying you that this issue appears to be very similar to issue #XXXXX, so we are closing it as a duplicate.
|
||||
Este es un mensaje estándar para notificarle que esta incidencia parece muy similar a la incidencia #XXXXX, así que la cerraremos como duplicada.
|
||||
|
||||
If you think we're wrong in closing this issue, please request for it to be reopened and add further clarification. Thank you and happy coding.
|
||||
Si consideras que me equivoco al cerrar este issue, solicita volver a abrirlo y añade más aclaraciones. Gracias, y feliz programación.
|
||||
```
|
||||
|
||||
> When an issue is fixed in staging.
|
||||
|
||||
```markdown
|
||||
Thank you for reporting this issue.
|
||||
Gracias por reportar elproblema.
|
||||
|
||||
This is a standard message notifying you that the problem you mentioned here is present in production, but that it has already been fixed in staging. This means that the next time we push our staging branch to production, this problem should be fixed. Because of this, we're closing this issue.
|
||||
Este es un mensaje estándar que le notifica que el problema que ha mencionado aquí está presente en la producción, pero que ya ha sido arreglado en la etapa. Esto significa que la próxima vez que llevemos nuestra rama provisional a producción, este problema debería solucionarse. Debido a esto, estoy cerrando este problema.
|
||||
|
||||
If you think we're wrong in closing this issue, please request for it to be reopened and add further clarification. Thank you and happy coding.
|
||||
Si consideras que nos hemos equivocado cerrando esta incidencia, por favor solicita su reapertura y añade más aclaraciones. Gracias, y feliz programación.
|
||||
```
|
||||
|
||||
### `first timer only` Issues
|
||||
@@ -509,19 +499,18 @@ If you think we're wrong in closing this issue, please request for it to be reop
|
||||
> When an issue is deemed to be eligible for first-time code contributors.
|
||||
|
||||
```markdown
|
||||
Thanks for opening this issue.
|
||||
Gracias por reportar elproblema.
|
||||
|
||||
This looks like something that can be fixed by "first-time" code contributors to this repository. Here are the files that you should be looking at to work on a fix:
|
||||
This looks like something that can be fixed by "first-time" code contributors to this repository. Estos son los archivos que debería buscar para trabajar en una solución:
|
||||
|
||||
List of files:
|
||||
|
||||
1. ...
|
||||
Lista de archivos: ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
Please make sure you read our [guidelines for contributing](https://contribute.freecodecamp.org/#/), we prioritize contributors following the instructions in our guides. Join us in our [chat room](https://discord.gg/PRyKn3Vbay) or our [forum](https://forum.freecodecamp.org/c/contributors/3) if you need help contributing; our moderators will guide you through this.
|
||||
Por favor, asegúrate de leer nuestras [directrices para contribuir](https://contribute.freecodecamp.org/#/), priorizamos a los colaboradores siguiendo que siguen las instrucciones de nuestras guías. Únete a nosotros en [nuestra sala de chat] (https://discord.gg/PRyKn3Vbay) o [en el foro] (https://forum.freecodecamp.org/c/contributors/3) si necesitas ayuda para contribuir, nuestros moderadores te guiarán a través de esto.
|
||||
|
||||
Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first.
|
||||
|
||||
Happy contributing.
|
||||
A veces, podemos recibir más de una solicitud de extracción. Normalmente aceptamos la contribución de mayor calidad, seguida de la que se hace primero.
|
||||
|
||||
Contribuyendo felizmente.
|
||||
```
|
||||
|
||||
@@ -6,6 +6,6 @@ Si bien no ofrecemos ninguna recompensa o botín en este momento, estamos agrade
|
||||
|
||||
- Mehul Mohan de [codedamn](https://codedamn.com) ([@mehulmpt](https://twitter.com/mehulmpt)) - [Vulnerability Fix](https://github.com/freeCodeCamp/freeCodeCamp/blob/bb5a9e815313f1f7c91338e171bfe5acb8f3e346/client/src/components/Flash/index.js)
|
||||
- Peter Samir https://www.linkedin.com/in/peter-samir/
|
||||
- Laurence Tennant ([@hyperreality](https://github.com/hyperreality)) working with IncludeSecurity.com - [GHSA-cc3r-grh4-27gj](https://github.com/freeCodeCamp/freeCodeCamp/security/advisories/GHSA-cc3r-grh4-27gj)
|
||||
- Laurence Tennant ([@hyperreality](https://github.com/hyperreality)) trabajando con IncludeSecurity.com - [GHSA-cc3r-grh4-27gj](https://github.com/freeCodeCamp/freeCodeCamp/security/advisories/GHSA-cc3r-grh4-27gj)
|
||||
|
||||
> ### Thank you for your contributions :pray:
|
||||
> ### Gracias por sus contribuciones :pray:
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
# freeCodeCamp.org's Security Policy
|
||||
# Política de Seguridad de freeCodeCamp.org
|
||||
|
||||
Este documento describe nuestra política de seguridad para los códigos, plataformas que operamos, y cómo reportar vulnerabilidades.
|
||||
|
||||
## Informar una vulnerabilidad
|
||||
|
||||
> [!NOTE] If you think you have found a vulnerability, **please report it responsibly**. Do not create GitHub issues for security issues. Instead, follow this guide.
|
||||
> [!NOTE] Si crees que has encontrado una vulnerabilidad, **por favor, informa de ella de forma responsable**. No cree propuestas de GitHub para problemas de seguridad. En su lugar, siga esta guía.
|
||||
|
||||
### Guidelines
|
||||
### Directrices
|
||||
|
||||
We appreciate responsible disclosure of vulnerabilities that might impact the integrity of our platforms and users. In the interest of saving everyone time, we encourage you to report vulnerabilities with these in mind:
|
||||
Agradecemos la divulgación responsable de las vulnerabilidades que puedan afectar a la integridad de nuestras plataformas y usuarios. En aras de ahorrar tiempo a todo el mundo, le animamos a informar de las vulnerabilidades teniendo en cuenta esto:
|
||||
|
||||
1. Ensure that you are using the **latest**, **stable**, and **updated** versions of the Operating System and Web Browser(s) available to you on your machine.
|
||||
2. We consider using tools & online utilities to report issues with SPF & DKIM configs, SSL Server tests, etc., in the category of ["beg bounties"](https://www.troyhunt.com/beg-bounties) and are unable to respond to these reports.
|
||||
3. While we do not offer any bounties or swags at the moment, we'll be happy to list your name in our [Hall of Fame](security-hall-of-fame.md) list, provided the reports are not low-effort.
|
||||
1. Asegúrese de que está utilizando las versiones **más recientes**, **estables** y **actualizadas** del sistema operativo y del navegador o navegadores web disponibles en su máquina.
|
||||
2. Consideramos que el uso de herramientas y utilidades en línea para informar de problemas con las configuraciones de SPF y DKIM, las pruebas del servidor SSL, etc., entra en la categoría de ["mendigar recompensas"](https://www.troyhunt.com/beg-bounties) y no podemos responder a estos informes.
|
||||
3. Aunque por el momento no ofrecemos recompensas ni botines, estaremos encantados de incluir tu nombre en nuestra lista del [Salón de la Fama](security-hall-of-fame.md), siempre que los informes no sean de bajo esfuerzo.
|
||||
|
||||
### Reporting
|
||||
### Reportando
|
||||
|
||||
After confirming the above guidelines, please feel free to send an email to `possible-security-issue [at] freecodecamp.org`. You can also send us a PGP encrypted message at `flowcrypt.com/me/freecodecamp`.
|
||||
Después de confirmar las directrices anteriores, no dude en enviar un correo electrónico a `possible-security-issue [at] freecodecamp.org`. También puede enviarnos un mensaje cifrado con PGP a `flowcrypt.com/me/freecodecamp`.
|
||||
|
||||
Once you report a vulnerability, we will look into it and ensure that it is not a false positive. If we need to clarify any details, we will get back to you. You can submit separate reports for each issue you find. Please note that we will not be able to respond to any issues that we think are outside the guidelines.
|
||||
Una vez que nos informe de una vulnerabilidad, la investigaremos y nos aseguraremos de que no sea un falso positivo. Si necesitamos aclarar algún detalle, nos pondremos en contacto con usted. Puede enviar informes separados para cada problema que encuentre. Tenga en cuenta que no podremos responder a las cuestiones que consideremos que están fuera de las directrices.
|
||||
|
||||
## Plataformas y Bases de Código
|
||||
|
||||
Here is a list of the platforms and codebases we are accepting reports for:
|
||||
Esta es una lista de las plataformas y bases de código para las que aceptamos informes:
|
||||
|
||||
### Learn Platform
|
||||
### Plataforma de Aprendizaje
|
||||
|
||||
| Versión | Rama | Soportado | Sitio web activo |
|
||||
| ---------- | -------------- | --------- | ------------------------ |
|
||||
@@ -32,23 +32,23 @@ Here is a list of the platforms and codebases we are accepting reports for:
|
||||
| escenario | `prod-staging` | Sí | `freecodecamp.dev/learn` |
|
||||
| desarrollo | `principal` | No | |
|
||||
|
||||
### Publication Platform
|
||||
### Plataforma de Publicación
|
||||
|
||||
| Versión | Soportado | Sitio web activo |
|
||||
| ---------- | --------- | ---------------------------------------- |
|
||||
| producción | Sí | `freecodecamp.org/news` |
|
||||
| localizado | Sí | `freecodecamp.org/<language>/news` |
|
||||
|
||||
### Mobile App
|
||||
### Aplicación Móvil
|
||||
|
||||
| Versión | Soportado | Sitio web activo |
|
||||
| ---------- | --------- | ---------------------------------------------------------------- |
|
||||
| producción | Sí | `https://play.google.com/store/apps/details?id=org.freecodecamp` |
|
||||
|
||||
### Other Platforms
|
||||
### Otras Plataformas
|
||||
|
||||
Apart from the above, we are also accepting reports for repositories hosted on GitHub under the freeCodeCamp organization.
|
||||
Aparte de lo anterior, también aceptamos informes para los repositorios alojados en GitHub bajo la organización de freeCodeCamp.
|
||||
|
||||
### Other Self-hosted Applications
|
||||
### Otras Aplicaciones Autoalojadas
|
||||
|
||||
We self-host some of our platforms using open-source software like Ghost & Discourse. If you are reporting a vulnerability, please ensure that it is not a bug in the upstream software.
|
||||
Algunas de nuestras plataformas las alojamos nosotros mismos utilizando software de código abierto como Ghost y Discourse. Si está informando de una vulnerabilidad, asegúrese de que no se trata de un error en el software de origen.
|
||||
|
||||
Reference in New Issue
Block a user