chore(i8n,docs): processed translations (#41196)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
Randell Dawson
2021-02-20 23:14:29 -07:00
committed by GitHub
parent d7fee838d7
commit e0edae94bd
19 changed files with 409 additions and 297 deletions

View File

@@ -4,47 +4,51 @@ Lee nuestra ["Guía de como contribuir a Open Source"](https://github.com/freeCo
### ¿Puedo traducir el currículum de freeCodeCamp?
Sí. Pronto implementaremos las herramientas para traducir el plan de estudios de freeCodeCamp.
Yes - Read [this guide](/how-to-translate-files) if you are interested in contributing to translation.
Con el tiempo, tenemos la intención de traducir freeCodeCamp en varios idiomas mundiales importantes, comenzando con: Árabe, Chino, Hindi, Portugués, Ruso y Español.
Currently we have the user contributed translations being done in Chinese and Español.
At this time we are building our experience hosting the curriculum in the aforementioned languages. Eventually, we intend to localize freeCodeCamp into several major world languages, like: Arabic, Hindi, Portuguese, Russian and more.
We thank you for your patience while we iron out the workflow.
### ¿Cómo puedo reportar un nuevo error?
Si crees que has encontrado un error, primero lee el artículo ["Ayuda, he encontrado un bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) y sigue sus instrucciones.
If you think you've found a bug, first read the ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) article and follow its instructions.
Si estas seguro de que es un nuevo error, sigue adelante y crea una nueva propuesta en GitHub. Asegúrate de incluir tanta información como sea posible para que podamos reproducir el error. Tenemos una plantilla de propuestas predefinida para ayudarte en esto.
If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so that we can reproduce the bug. We have a pre-defined issue template to help you through this.
Ten en cuenta que estos reportes en GitHub son para discusiones y problemas relacionados con la base de código, no para obtener ayuda para aprender a programar. Cada vez que tengas dudas, deberías [buscar ayuda en el foro](https://forum.freecodecamp.org) antes de crear un reporte en GitHub.
Please note that these GitHub issues are for codebase-related issues and discussions not for getting help with learning to code. Whenever in doubt, you should [seek assistance on the forum](https://forum.freecodecamp.org) before creating a GitHub issue.
### ¿Cómo puedo informar sobre un problema de seguridad?
Por favor, no crees propuestas de GitHub para problemas de seguridad. En su lugar, por favor envía un correo electrónico a `security@freecodecamp.org` y lo estudiaremos inmediatamente.
Please don't create GitHub issues for security issues. Instead, please send an email to `security@freecodecamp.org` and we'll look into it immediately.
### Soy un estudiante. ¿Puedo trabajar en una funcionalidad para créditos académicos?
Sí. Ten en cuenta que no podemos comprometernos con ningún cronograma o papeleo que pueda ser un requisito de tu colegio o universidad. Recibimos muchos pull-requests y contribuciones de código por parte de desarrolladores voluntarios, y respetamos su tiempo y esfuerzos. Por respeto a todos nuestros demás colaboradores, no concederemos ninguna prioridad especial a las relaciones públicas sólo porque esté relacionada con la escuela.
Yes. Please note we are unable to commit to any timelines or paperwork that may be a requirement by your college or university. We receive many pull-requests and code contributions by volunteer developers, and we respect their time and efforts. Out of respect for all of our other contributors, we will not give any PR special priority just because it happens to be school-related.
Le pedimos que planifique con anticipación y que trabaje en las contribuciones de código teniendo esto en cuenta.
We request you to plan ahead and work on code contributions with this in mind.
### ¿Qué significan estas diferentes etiquetas que están agregadas en los temas?
Los mantenedores de código [clasifican](https://en.wikipedia.org/wiki/Software_bug#Bug_management) problemas y pull requests basados en su prioridad, gravedad y otros factores. Puedes [encontrar un glosario completo de sus significados aquí](https://github.com/freecodecamp/freecodecamp/labels).
The code maintainers [triage](https://en.wikipedia.org/wiki/Software_bug#Bug_management) issues and pull requests based on their priority, severity, and other factors. You can [find a complete glossary of their meanings here](https://github.com/freecodecamp/freecodecamp/labels).
### ¿Dónde comienzo si quiero trabajar en una propuesta?
Deberías pasar por los temas [**`se busca ayuda`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) o [**`solo principiantes`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) para una rápida visión general de lo que está disponible para que trabajes.
You should go through [**`help wanted`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [**`first timers only`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) issues for a quick overview of what is available for you to work on.
> [!TIP] Los temas de **`se busca ayuda`** están en marcha y no es necesario pedir permiso antes de trabajar en ellos. Sin embargo, temas con la etiqueta **`solo principiantes`** son temas especiales que están diseñados para personas que no han contribuido a la base de código de freeCodeCamp antes.
### Encontré un error tipográfico. ¿Debo informar de un problema antes de poder hacer un pull request?
Para los errores tipográficos y otros cambios de formulación, puedes abrir directamente pull-requests sin crear una propuesta primero. Por favor, asegúrese de mencionar los detalles en la descripción de la pull request para ayudarnos a entender y revisar su contribución incluso si es un cambio menor.
For typos and other wording changes, you can directly open pull requests without creating an issue first. Please be sure to mention details in the pull request description to help us understand and review your contribution even if it's just a minor change.
Por favor cree un problema si desea discutir aspectos más amplios del código base o currículum.
Please do create an issue if you want to discuss bigger aspects of the codebase or curriculum.
### ¿Cómo puedo conseguir que me asignen un número?
Por lo general, no asignamos los números a nadie más que a los colaboradores de larga duración. En lugar de ello, seguimos la política de abajo para ser justos con todos:
We typically do not assign issues to anyone other than long-time contributors. Instead, we follow the below policy to be fair to everyone:
1. Lo más probable es que fusionemos el primer pull request que aborde el número o problema.
2. En el caso de múltiples colaboradores abriendo un pull request para el mismo problema más o menos al mismo tiempo, daremos prioridad al pull request que aborde mejor la cuestión. Algunas de las cosas que consideramos:
@@ -57,18 +61,18 @@ Por lo general, no asignamos los números a nadie más que a los colaboradores d
### Estoy atascado en algo que no está incluido en esta documentación.
**Siéntete libre de pedir ayuda en:**
**Feel free to ask for help in:**
- La categoría de `colaboradores` de [nuestro foro de la comunidad](https://forum.freecodecamp.org/c/contributors).
- The `#Contributors` channel on [our chat server](https://chat.freecodecamp.org/channel/contributors).
Estamos encantados de ayudarte a contribuir a cualquiera de los temas en los que te gustaría trabajar. Si nos hace preguntas sobre los temas relacionados, estaremos encantados de aclararlos. Asegúrese de buscar su pregunta antes de publicar una nueva.
We are excited to help you contribute to any of the topics that you would like to work on. If you ask us questions on the related issue threads, we will be glad to clarify. Be sure to search for your question before posting a new one.
Gracias de antemano por ser educado y paciente. Recuerde esta comunidad se maneja principalmente por voluntarios.
Thanks in advance for being polite and patient. Remember this community is run mainly by volunteers.
**Asistencia Adicional:**
**Additional Assistance:**
Si tiene preguntas acerca del stack, arquitectura de la base de código, no dude en contactar con nuestro equipo de desarrollo:
If you have queries about the stack, architecture of the codebase, feel free to reach out to our staff dev team:
| Personal | Enviar mensaje en el Foro |
|:--------------------- |:---------------------------------------------------------------------------- |
@@ -79,4 +83,4 @@ Si tiene preguntas acerca del stack, arquitectura de la base de código, no dude
| Oliver Eyton-Williams | [@ojeytonwilliams](https://forum.freecodecamp.org/u/ojeytonwilliams) |
| Randell Dawson | [@RandellDawson](https://forum.freecodecamp.org/u/randelldawson) |
**Puedes enviar un correo electrónico a nuestro equipo de desarrolladores en: `dev[at]freecodecamp.org`**
**You can email our developer staff at: `dev[at]freecodecamp.org`**

View File

@@ -11,11 +11,11 @@
- **Translation Contribution**
- [Translating a Curriculum File](how-to-translate-files.md)
- [Proofreading a Curriculum File](how-to-proofread-files.md)
- [How to Translate the Website](how-to-translate-the-website.md)
- **Optional Guides**
- [Catch outgoing emails locally](how-to-catch-outgoing-emails-locally.md)
- [Set up freeCodeCamp on WSL](how-to-setup-wsl.md)
- [Add Cypress tests](how-to-add-cypress-tests.md)
- [How to Translate the Website](how-to-translate-the-website.md)
---

View File

@@ -16,13 +16,13 @@ Esto involucra tres pasos que deben seguirse en secuencia:
#### Construyendo la base de código - Mapeando las Ramas de Git con los Despliegues.
Typically, [`main`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main) (the default development branch) is merged into the [`production-staging`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) branch once a day and is released into an isolated infrastructure.
Typically, [`main`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main) (the default development branch) is merged into the [`prod-staging`](https://github.com/freeCodeCamp/freeCodeCamp/tree/prod-staging) branch once a day and is released into an isolated infrastructure.
Esta es una publicación intermedia para nuestros desarrolladores y colaboradores voluntarios. También es conocida como nuestra publicación "staging" o "beta".
Este es idéntico a nuestro entorno de producción en ` freeCodeCamp.org`, excepto que utiliza un conjunto separado de bases de datos, servidores, web-proxies, etc. Este aislamiento nos permite probar el desarrollo y las funcionalidades de manera continua en un escenario similar al de "producción", sin afectar a los usuarios regulares de las principales plataformas de freeCodeCamp.org.
Una vez que el equipo de desarrolladores [`@freeCodeCamp/dev-team`](https://github.com/orgs/freeCodeCamp/teams/dev-team/members) está satisfecho con los cambios en la plataforma de staging, estos cambios se trasladan cada pocos días a la rama [`production-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-current).
Once the developer team [`@freeCodeCamp/dev-team`](https://github.com/orgs/freeCodeCamp/teams/dev-team/members) is happy with the changes on the staging platform, these changes are moved every few days to the [`prod-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/prod-current) branch.
Esta es la versión final que despliega los cambios a nuestras plataformas de producción en freeCodeCamp.org.
@@ -94,10 +94,10 @@ Actualmente, solo los miembros del equipo de desarrolladores pueden enviar cambi
npm run clean-and-develop
```
5. Move changes from `main` to `production-staging` via a fast-forward merge
5. Move changes from `main` to `prod-staging` via a fast-forward merge
```
git checkout production-staging
git checkout prod-staging
git merge main
git push upstream
```
@@ -106,12 +106,10 @@ Actualmente, solo los miembros del equipo de desarrolladores pueden enviar cambi
>
> Si esto ocurre, es posible que hayas hecho algo incorrectamente y deberías comenzar de nuevo.
Los pasos anteriores activarán automáticamente un flujo de compilación para la rama `production-staging`. Una vez que se completa la compilación, los artefactos se guardan como archivos `.zip` en un almacenamiento en frío para ser recuperados y usados más adelante.
The above steps will automatically trigger a run on the build pipeline for the `prod-staging` branch. Una vez que se completa la compilación, los artefactos se guardan como archivos `.zip` en un almacenamiento en frío para ser recuperados y usados más adelante.
El flujo de publicación se activa automáticamente cuando hay un nuevo artefacto disponible en el flujo de compilación conectado. Para las plataformas de staging, este proceso no implica aprobación manual y los artefactos se envían a los servidores de API y CDN Cliente.
> [!TIP|label:Estimates] Por lo general, la ejecución de la compilación tarda entre 20 y 25 minutos en completarse, seguido de la ejecución de publicación que tarda aproximadamente entre 15 y 20 minutos para el cliente, y aproximadamente entre 5 y 10 minutos para que el API estén disponibles en vivo. Desde que el código se envía al servidor hasta que está en vivo en las plataformas de staging, todo el proceso toma **aproximadamente 35 a 45 minutos** en total.
### Publicando cambios a las Aplicaciones en Producción.
El proceso es prácticamente el mismo que el de las plataformas de staging, con algunas comprobaciones adicionales. Esto es solo para asegurarnos de que no rompemos nada en freeCodeCamp.org, el cual puede tener a cientos de usuarios usándolo en cualquier momento.
@@ -121,19 +119,19 @@ El proceso es prácticamente el mismo que el de las plataformas de staging, con
| |
1. Asegúrate de que tu rama `production-staging` no tenga cambios pendientes y esté sincronizada con upstream.
1. Make sure your `prod-staging` branch is pristine and in sync with the upstream.
```sh
git checkout production-staging
git checkout prod-staging
git fetch --all --prune
git reset --hard upstream/production-staging
git reset --hard upstream/prod-staging
```
2. Mueve los cambios de `production-staging` a `production-current` mediante una fusión fast-forward
2. Move changes from `prod-staging` to `prod-current` via a fast-forward merge
```
git checkout production-current
git merge production-staging
git checkout prod-current
git merge prod-staging
git push upstream
```
@@ -141,9 +139,7 @@ El proceso es prácticamente el mismo que el de las plataformas de staging, con
>
> Si esto ocurre, es posible que hayas hecho algo incorrectamente y deberías comenzar de nuevo.
Los pasos anteriores activarán automáticamente un flujo de compilación para la rama `production-current`. Una vez que un artefacto de compilación está listo, este activará la ejecución en el flujo de publicación.
> [!TIP|label:Estimates] Normalmente, la ejecución de la compilación tarda entre 20 y 25 minutos en completarse.
The above steps will automatically trigger a run on the build pipeline for the `prod-current` branch. Una vez que un artefacto de compilación está listo, este activará la ejecución en el flujo de publicación.
**Pasos Adicionales para el Staff Action**
@@ -158,21 +154,18 @@ Para uso del personal:
| |
Una vez que uno de los miembros del personal apruebe una publicación, el flujo enviará los cambios a los servidores de API y CDN de producción de freeCodeCamp.org. Por lo general, esto tomará entre 15 y 20 minutos para el cliente y aproximadamente 5 minutos para que los servidores API estén disponibles en vivo respectivamente.
> [!TIP|label:Estimates] La publicación suele tardar entre 15 y 20 minutos para cada instancia de cliente, y entre 5 y 10 minutos para que cada instancia de API esté disponible en vivo. Desde el envío del código hasta que está en vivo en las plataformas de producción, todo el proceso toma en total **entre 90 y 120 minutos aproximadamente** (sin contar el tiempo de espera para la aprobación del personal).
Once one of the staff members approves a release, the pipeline will push the changes live to freeCodeCamp.org's production CDN and API servers.
## Estado de la Compilación, Pruebas y Despliegue
Aquí está el estado actual de las pruebas, compilación y despliegue del código base.
| Tipo | Rama | Estado | Panel |
|:---------------- |:-------------------------------------------------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:---------------------------------------------------------------------------------------- |
| Build Pipeline | [`production-staging`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | [![Build Status](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_apis/build/status/dot-dev-ci?branchName=production-staging)](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build/latest?definitionId=15&branchName=production-staging) | [Ir al panel de estado](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build) |
| Release Pipeline | [`production-staging`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | | [Ir al panel de estado](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
| CI Tests | [`production-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-current) | ![Travis CI Build Status](https://travis-ci.com/freeCodeCamp/freeCodeCamp.svg?branch=production-current) | [Ir al panel de estado](https://travis-ci.com/github/freeCodeCamp/freeCodeCamp/branches) |
| Build Pipeline | [`production-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | [![Build Status](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_apis/build/status/dot-org-ci?branchName=production-current)](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build/latest?definitionId=17&branchName=production-current) | [Ir al panel de estado](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build) |
| Release Pipeline | [`production-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | | [Ir al panel de estado](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
| Branch | Unit Tests | Integration Tests | Builds & Deployments |
|:-------------------------------------------------------------------------------- |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |:--------------------------------------------------------------------------------------------------------------------------------- |
| [`main`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main) | [![Node.js CI](https://github.com/freeCodeCamp/freeCodeCamp/workflows/Node.js%20CI/badge.svg?branch=main)](https://github.com/freeCodeCamp/freeCodeCamp/actions?query=workflow%3A%22Node.js+CI%22) | [![Cypress E2E Tests](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/ke77ns/main&style=flat&logo=cypress)](https://dashboard.cypress.io/projects/ke77ns/analytics/runs-over-time) | - |
| [`prod-staging`](https://github.com/freeCodeCamp/freeCodeCamp/tree/prod-staging) | [![Node.js CI](https://github.com/freeCodeCamp/freeCodeCamp/workflows/Node.js%20CI/badge.svg?branch=prod-staging)](https://github.com/freeCodeCamp/freeCodeCamp/actions?query=workflow%3A%22Node.js+CI%22+branch%3Aprod-staging) | [![Cypress E2E Tests](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/ke77ns/prod-staging&style=flat&logo=cypress)](https://dashboard.cypress.io/projects/ke77ns/analytics/runs-over-time) | [Azure Pipelines](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_dashboards/dashboard/d59f36b9-434a-482d-8dbd-d006b71713d4) |
| [`prod-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/prod-staging) | [![Node.js CI](https://github.com/freeCodeCamp/freeCodeCamp/workflows/Node.js%20CI/badge.svg?branch=prod-current)](https://github.com/freeCodeCamp/freeCodeCamp/actions?query=workflow%3A%22Node.js+CI%22+branch%3Aprod-current) | [![Cypress E2E Tests](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/ke77ns/prod-current&style=flat&logo=cypress)](https://dashboard.cypress.io/projects/ke77ns/analytics/runs-over-time) | [Azure Pipelines](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_dashboards/dashboard/d59f36b9-434a-482d-8dbd-d006b71713d4) |
| `prod-next` (experimental, upcoming) | - | - | - |
## Acceso anticipado y pruebas beta
@@ -186,15 +179,25 @@ Te agradecemos por reportar los errores que encuentres y ayudar a mejorar freeCo
Actualmente una versión de prueba beta pública está disponible en:
<h1 align="center"><a href='https://www.freecodecamp.dev' _target='blank'>freecodecamp.dev</a></h1>
| Application | Language | URL |
|:----------- |:-------- |:---------------------------------------- |
| Learn | English | <https://www.freecodecamp.dev> |
| | Espanol | <https://www.freecodecamp.dev/espanol> |
| | Chinese | <https://chinese.freecodecamp.dev> |
| News | English | <https://www.freecodecamp.dev/news> |
| Forum | English | <https://forum.freecodecamp.dev> |
| | Chinese | <https://chinese.freecodecamp.dev/forum> |
| API | - | `https://api.freecodecamp.dev` |
> [!NOTE] El nombre de dominio es diferente a **`freeCodeCamp.org`**. Esto es intencional para evitar la indexación de los motores de búsqueda y evitar cualquier confusión en los usuarios habituales de la plataforma.
> [!NOTE] The domain name is different than **`freeCodeCamp.org`**. This is intentional to prevent search engine indexing and avoid confusion for regular users of the platform.
>
> The above list not exhaustive of all the applications that we provision. Also not all language variants are deployed in staging to conserve resources.
### Identificando la versión actual de las plataformas
**La versión actual de la plataforma siempre está disponible en [`freeCodeCamp.org`](https://www.freecodecamp.org).**
El equipo de desarrollo fusiona los cambios de la rama `production-staging` a `production-current` cuando se publican los cambios. El commit más reciente debe ser lo que ves en vivo en el sitio.
The dev-team merges changes from the `prod-staging` branch to `prod-current` when they release changes. 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://chat.freecodecamp.org/channel/contributors) for a confirmation.
@@ -220,16 +223,16 @@ Existen algunas limitaciones y problemas conocidos al utilizar la versión beta
## Reportando problemas y dejando retroalimentación
Por favor abre un nuevo reporte (issue) para discusiones e informes de errores. Puedes etiquetarlos como **[`release: next/beta`](https://github.com/freeCodeCamp/freeCodeCamp/labels/release%3A%20next%2Fbeta)** para clasificación.
Please open fresh issues for discussions and reporting bugs.
Puedes enviar un correo electrónico a `dev[at]freecodecamp.org` si tienes alguna consulta. Como siempre, todas las vulnerabilidades de seguridad deben notificarse a `security[at]freecodecamp.org` en lugar del registro público o el foro.
# Manual de Vuelo - Mantenimiento del Servidor
# Flight Manual - Server Maintenance
> [!WARNING]
>
> 1. La guía se aplica únicamente a los **miembros del personal de freeCodeCamp**.
> 2. Estas instrucciones no deben considerarse exhaustivas, por favor ten cuidado.
> 1. The guide applies to the **freeCodeCamp Staff members only**.
> 2. These instructions should not be considered exhaustive, please use caution.
Como miembro del equipo interno, es posible que se te haya dado acceso a nuestros proveedores de servicios en la nube como Azure, Digital Ocean, etc.
@@ -237,25 +240,25 @@ Estos son algunos comandos prácticos que puedes usar para trabajar en las Máqu
## Obtener una lista de las Máquinas Virtuales
> [!NOTE] Aunque es posible que ya tengas acceso SSH a las máquinas virtuales, esto solamente no te permitirá enumerar las máquinas virtuales a menos que también se te conceda acceso a los portales en la nube.
> [!NOTE] While you may already have SSH access to the VMs, that alone will not let you list VMs unless you been granted access to the cloud portals as well.
### Azure
Instala el CLI de Azure `az`: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli
> **(Una sola vez) Instalar en macOS con [`homebrew`](https://brew.sh):**
> **(One-time) Install on macOS with [`homebrew`](https://brew.sh):**
```
brew install azure-cli
```
> **(Una sola vez) Inicio de sesión:**
> **(One-time) Login:**
```
az login
```
> **Obtener la lista de nombres de las máquinas virtuales y direcciones IP:**
> **Get the list of VM names and P addresses:**
```
az vm list-ip-addresses --output table
@@ -279,7 +282,7 @@ Autenticación y cambio de contexto: https://github.com/digitalocean/doctl#authe
doctl auth init
```
> **Obtener la lista de nombres de las máquinas virtuales y direcciones IP:**
> **Get the list of VM names and IP addresses:**
```
doctl compute droplet list --format "ID,Name,PublicIPv4"
@@ -287,7 +290,7 @@ doctl compute droplet list --format "ID,Name,PublicIPv4"
## Iniciar una VM (o Conjunto de Escalado de VMs)
> Todo: Agregar instrucciones para iniciar VM(s)
> Todo: Add instructions for spinning VM(s)
<!--
@@ -388,10 +391,10 @@ az vmss create \
Debes mantener las máquinas virtuales actualizadas mediante la realización de actualizaciones. Esto asegurará que la máquina virtual se ha parcheado con las correcciones de seguridad más recientes.
> [!WARNING] Antes de ejecutar estos comandos:
> [!WARNING] Before you run these commands:
>
> - Asegúreate de que la máquina virtual se ha aprovisionado completamente y no hay en ejecución pasos posteriores a la instalación.
> - Si estás actualizando paquetes en una máquina virtual que ya está sirviendo una aplicación, asegúrate de que la aplicación se ha detenido / guardado. Las actualizaciones de paquetes causarán que el ancho de banda de la red, la memoria y/o CPU tengan picos que pueden ocasionar interrupciones en aplicaciones en ejecución.
> - Make sure that the VM has been provisioned completely and there is no post-install steps running.
> - If you are updating packages on a VM that is already serving an application, make sure the app has been stopped / saved. Package updates will cause network bandwidth, memory and/or CPU usage spikes leading to outages on running applications.
Actualizar la información de paquetes
@@ -538,7 +541,7 @@ Aprovisionamiento de las VMs con el código
```console
git clone https://github.com/freeCodeCamp/freeCodeCamp.git
cd freeCodeCamp
git checkout production-current # o cualquier otra rama a desplegar
git checkout prod-current # or any other branch to be deployed
```
4. Crea el archivo `.env` desde el almacenamiento de credenciales seguras.
@@ -578,7 +581,7 @@ pm2 monit
Los cambios en el código deben desplegarse en las instancias del API cada cierto tiempo. Esto puede ser una actualización continua o una actualización manual. La última es esencial al cambiar dependencias o al agregar variables de entorno.
> [!DANGER] Los flujos automáticos no están manejando actualizaciones de dependencias en el momento. Necesitamos realizar una actualización manual antes de que se ejecute cualquier flujo de despliegue.
> [!DANGER] The automated pipelines are not handling dependencies updates at the minute. We need to do a manual update before any deployment pipeline runs.
#### 1. Actualizaciones Manuales - Utilizadas para actualizar dependencias, variables de entorno.
@@ -612,7 +615,7 @@ pm2 start all --update-env && pm2 logs
pm2 reload all --update-env && pm2 logs
```
> [!NOTE] Estamos manejando las actualizaciones continuas de código, lógica, mediante flujos (pipelines). No deberías tener que ejecutar estos comandos. Están aquí para documentación.
> [!NOTE] We are handling rolling updates to code, logic, via pipelines. You should not need to run these commands. These are here for documentation.
## Trabajar en Instancias de Cliente
@@ -652,7 +655,7 @@ Aprovisionamiento de las VMs con el código
Inicia las instancias de marcador para el cliente web, estas se actualizarán con artefactos del flujo de Azure.
> Todo: Esta configuración debe moverse a S3 o Azure Blob Storage
> Todo: This setup needs to move to S3 or Azure Blob storage
>
> ```console
echo "serve -c ../../serve.json www -p 50505" >> client-start-primary.sh

View File

@@ -6,38 +6,78 @@ To learn how to write Cypress tests, or 'specs', please see Cypress' official [d
> Note: When writing tests for freeCodeCamp, remember to add `/* global cy */` to the top of the file to avoid ESLint issues.
### Where to add a test
## Where to add a test
- Cypress tests are in the `./cypress` directory.
- Cypress tests for a curriculum module are in the corresponding curriculum directory, i.e. `cypress/integration/learn/responsive-web-design/basic-css/index.js`.
### How to run tests
## How to run tests
**1. Ensure that MongoDB and client applications are running**
> [!NOTE] If using GitPod, please see [Cypress-GitPod Setup](/how-to-add-cypress-tests#cypress-gitpod-setup)
- [Start MongoDB and seed the database](/how-to-setup-freecodecamp-locally#step-3-start-mongodb-and-seed-the-database)
### 1. Ensure that MongoDB and client applications are running
- [Start the freeCodeCamp client application and API server](/how-to-setup-freecodecamp-locally#step-4-start-the-freecodecamp-client-application-and-api-server)
- [Start MongoDB and seed the database](/how-to-setup-freecodecamp-locally#step-3-start-mongodb-and-seed-the-database)
**2. Run the cypress tests**
- [Start the freeCodeCamp client application and API server](/how-to-setup-freecodecamp-locally#step-4-start-the-freecodecamp-client-application-and-api-server)
To run tests against production builds, replace `dev` with `prd` below.
### 2. Run the cypress tests
- To run all tests in the `./cypress` directory:
To run tests against production builds, replace `dev` with `prd` below.
```console
npm run cypress:dev:run
```
- To run all tests in the `./cypress` directory:
- To run a single test:
```console
npm run cypress:dev:run
```
```console
npm run cypress:dev:run -- --spec=cypress/pathToYourSpec/youSpecFileName.js
```
- To run a single test:
- To create a development build, start the development server, and run all existing cypress end-to-end tests:
```console
npm run cypress:dev:run -- --spec=cypress/pathToYourSpec/youSpecFileName.js
```
```console
npm run e2e:dev:run
```
- To create a development build, start the development server, and run all existing cypress end-to-end tests:
```console
npm run e2e:dev:run
```
## Cypress-GitPod Setup
### 1. Ensure you are on the _Feature Preview_ of GitPod _as of 01/02/2021_
- Go to [GitPod Docs - Feature Preview](https://www.gitpod.io/docs/feature-preview/) to see how to enable _Feature Preview_
### 2. Ensure Development Environment is Running
If starting the GitPod environment did not automatically develop the environment:
- Start the database
```console
mongod
```
- Seed the database
```console
npm run seed
```
- Develop the server and client
```console
npm run develop
```
### 3. Install Cypress Build Tools
```console
npm run cypress:install-build-tools
```
- When prompted in the terminal, select your keyboard layout by language/area
Now, [Cypress can be run](/how-to-add-cypress-tests#_2-run-the-cypress-tests)

View File

@@ -2,13 +2,15 @@
Una pull request (PR) le permite enviar cambios desde su bifurcación en GitHub al repositorio principal de freeCodeCamp.org. Una vez que haya hecho cambios en el código, puede seguir estas pautas para abrir un PR.
> [!NOTE] Your PR should be in English. See [here](#index.md?id=translations) for how to contribute translations.
## Prepara un buen título para tu PR
Recomendamos usar [titulos y mensajes convencionales](https://www.conventionalcommits.org/) para tus commits y pull request. La convención tiene el siguiente formato:
> `<type>([ámbito opcional(s)]): <description>`
> `<type>([optional scope(s)]): <description>`
>
> Por ejemplo:
> For example:
>
> `fix(learn): tests for the do...while loop challenge`
@@ -23,15 +25,15 @@ When opening a Pull Request(PR), you can use the below to determine the type, sc
| chore | Changes that are not related to code, tests, or verbiage of a lesson. |
| docs | Cambios al directorio `/docs` o a las pautas de contribución, etc. |
**Alcance:**
**Ámbito:**
Puede seleccionar un ámbito de [esta lista de etiquetas](https://github.com/freeCodeCamp/freeCodeCamp/labels?q=scope).
**Descripción:**
Manténgalo corto (menos de 30 caracteres) y simple, puede agregar más información en el cuadro de descripción de relaciones públicas y comentarios.
Mantenlo corto (menos de 30 caracteres) y sencillo, puedes agregar más información en la caja de descripción del PR y comentarios.
Algunos ejemplos de buenos títulos PRs serían:
Algunos ejemplos de buenos títulos para PRs serían:
- `fix(a11y): contraste mejorado en la barra de búsqueda`
- `feat: add more tests to HTML and CSS challenges`
@@ -70,13 +72,13 @@ Algunos ejemplos de buenos títulos PRs serían:
## Comentarios sobre pull requests
> ¡Felicidades! :tada: en hacer relaciones públicas y muchas gracias por tomarse el tiempo para contribuir.
> Congratulations! :tada: on making a PR and thanks a lot for taking the time to contribute.
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://chat.freecodecamp.org/channel/contributors).
> [!TIP] Si quieres contribuir con más solicitudes de extracción, te recomendamos que leas las directrices [haciendo cambios y sincronizando](https://contribute.freecodecamp.org/#/how-to-setup-freecodecamp-locally?id=making-changes-locally) para evitar tener que borrar tu bifurcación.
> [!TIP] If you are to be contributing more pull requests, we recommend you read the [making changes and syncing](https://contribute.freecodecamp.org/#/how-to-setup-freecodecamp-locally?id=making-changes-locally) guidelines to avoid having to delete your fork.
## Conflicto en un pull request

View File

@@ -20,6 +20,8 @@ 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>`.
## Traducir un archivo
![Imagen - Vista de edición](./images/crowdin/editor.png)
@@ -37,19 +39,19 @@ 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] Si ves una cadena oculta que incluye traducciones, notifícanos en la [ sala de chat de traductores ](https://chat.freecodecamp.org/channel/translators) para que podamos eliminar la traducción de la memoria.
> [!NOTE] If you see a hidden string that includes translations, please notify us in the [translators chat room](https://chat.freecodecamp.org/channel/translators) so we can remove the translation from memory.
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 los proofreaders 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] Si ves algo en el archivo fuente en inglés que sea inexacto o incorrecto, 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.
> [!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.
### Traducir la documentación
Traducir nuestra documentación de contribución es un proceso similar a traducir nuestros archivos de currículo.
> [!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.
> [!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.
## Calificar traducciones
@@ -69,20 +71,14 @@ Cuando intentes guardar una traducción, es posible que veas aparecer un mensaje
Este mensaje aparece cuando el sistema de control de calidad 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 detectado.
> [!WARNING] Tienes la opción de guardar una traducción a pesar de los errores, pero esto debe hacerse solo en circunstancias en las que el error pueda ser incorrecto.
Crowdin a veces convierte etiquetas HTML (como `<code>`) en valores numéricos, como `<0>text</0>` o `<1>text</1>`. Estas etiquetas suelen ser etiquetas de código y nuestro control de calidad verificará que no se hayan traducido. Sin embargo, a veces pueden ser etiquetas `<strong>` o `<em>`, que _deberían_ ser traducidas. Si pasas el cursor sobre una etiqueta numérica en la cadena de origen, puedes ver qué etiqueta o etiquetas HTML se han reemplazado:
![Imagen - Colocar el cursor sobre una etiqueta](./images/crowdin/tag-hover.png)
Si las etiquetas reemplazadas son algo que debería traducirse (como las etiquetas `strong`), traduce el contenido dentro de las etiquetas y selecciona "Save Anyway" (guardar de todos modos) cuando aparezca el error. Luego, deja un comentario en la cadena explicando que las etiquetas son `strong` (por ejemplo) para que otros traductores y proofreaders sepan que deben traducirse.
> [!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.
## Buenas prácticas de traducción
Sigue estas pautas para asegurarte de que nuestras traducciones sean lo más precisas posible:
Follow these guidelines to ensure our translations are as accurate as possible:
- No traduzcas el contenido dentro de las etiquetas `<code>`. Estas etiquetas indican texto que se encuentra en el código y deben dejarse en inglés.
- No agregues contenido adicional. Si crees que un desafío requiere cambios en el contenido del texto o información adicional, debes proponer los cambios a través de un issue de GitHub o una pull request que modifique el archivo en inglés.
- No cambies el orden del contenido.
Si tienes alguna pregunta, no dudes en comunicarte con nosotros en nuestra [sala de chat de traductores](https://chat.freecodecamp.org/channel/translators) y estaremos encantados de ayudarte.
If you have any questions, feel free to reach out to us in our [translators chat room](https://chat.freecodecamp.org/channel/translators) and we will be happy to assist you.

View File

@@ -1,6 +1,6 @@
The client/react side of our website is translated into various world languages using [react-i18next](https://react.i18next.com/) and [i18next](https://www.i18next.com/).
> [!NOTE] This does not include the curriculum
> [!NOTE] Curriculum lesson content is [translated separately](./how-to-translate-files.md).
## File Structure
@@ -8,7 +8,13 @@ The files for translating the website are located in the `client/i18n` folder. E
The values in the `translations.json` file contain the majority of the text that appears on the website. The keys are used in the codebase to get the correct text for whatever language is set. This file needs to have the exact same keys in all languages.
The `motivation.json` files are not required to have the same quotes, compliments, or array length. Just the same JSON structure.
The `intro.json` file contains the key-value pairs for the introduction text on the certification pages.
The `motivation.json` files are not required to have the same quotes, compliments, or array length. Just the same JSON structure. These are not translated via Crowdin.
The `trending.json` file contians the titles and links for the trending news articles in the website's footer. These are not translated via Crowdin.
The `meta-tags.json` file contains the information for our website's meta tag information. These are not translated via Crowdin.
## Adding a Language
@@ -18,16 +24,9 @@ In the `allLangs.js` file, add the language to the `client` array in the first v
## How to Translate
After a new language is added, you just need to translate the JSON files into the language.
Translating the `intro.json` and `translations.json` are done through [our translation site](https://translate.freecodecamp.org). View our [translation documentation for that site](/how-to-translate-files.md).
Here are some tips:
- Only translate the values in the JSON files, the keys need to stay the same
- The English versions of the JSON files are the "source of truth" for what needs to be translated. If you are unsure what text to translate, find the matching key in the English version of the file and translate that text
- Be sure to escape double quotes (`\"`) in the strings if you need to use them
- Most of the time, when you see text wrapped in number tags (`<0>`text`</0>`) tags, it's a link. It is okay to change the text that it is wrapped around. Just keep the same tags.
- A value that has something like `{{value}}` in it is a variable. Don't change any of those characters. You can move that whole group of characters around though.
There's some [help on how make changes and open a PR here](/how-to-setup-freecodecamp-locally).
Modifications to the `trending.json`, `meta-tags.json`, and `motivation.json` files should typically only be done by staff.
## Running it Locally
@@ -179,19 +178,23 @@ const email = 'team@freecodecamp.org';
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.
## Changing Text
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.
## Adding Text
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.
The matching filename`-schema.js` 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.
> [!NOTE] Use English text for all languages if the file is translated through Crowdin. The tests will fail if you don't.
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.
> [!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.
## Helpful Documentation
- [react-i18next docs](https://react.i18next.com/latest/usetranslation-hook)
- [i18next docs](https://www.i18next.com/translation-function/essentials)
## Changing Text
To change text on the client side of things, go to the `translations.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.
## Adding Text
If the text you want to add to the client exists in the `translations.json` file, use the existing key. No sense in creating another one.
The `translations-schema.js` file is the "source of truth" for all of the `translations.json` files. If you need to add a new key, add it there. Then, add the key to **all** of the `translations.json` files with placeholder text in the langauges you don't know. The tests will fail if you don't. 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.
> [!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.

View File

@@ -8,7 +8,7 @@ Te damos la bienvenida a:
- Crea, actualiza y corrige errores en nuestro [plan de estudios](#curriculum).
- Ayúdarnos a corregir errores en la [plataforma de aprendizaje](#learning-platform) de freeCodeCamp.org.
- _(Próximamente)_ Ayúdarnos a traducir freeCodeCamp.org a idiomas del mundo.
- [Help us translate](#translations) freeCodeCamp.org to world languages.
Respondemos a las preguntas más comunes sobre cómo contribuir [en nuestras preguntas frecuentes del contribuidor](/FAQ.md).
@@ -20,24 +20,32 @@ Puede ayudar a ampliar y mejorar el plan de estudios. También puede actualizar
**Si estás interesado en mejorar nuestro plan de estudios, aquí mostramos [cómo contribuir al plan de estudios](how-to-work-on-coding-challenges.md).**
## Plataforma de Aprendizaje
## Translations
Nuestra plataforma de aprendizaje se ejecuta sobre un apilar moderno de JavaScript. Tiene varios componentes, herramientas y librerías. Estas incluyen Node.js, MongoDB, OAuth 2.0, React, Gatsby, Webpack, entre otras.
We are localizing freeCodeCamp.org to world languages starting with Chinese and Espanol. We will be expanding the translations to more languages. It's our dream to provide you with resources to learn, no matter the world language you speak.
Ampliamente, hacemos uso de
To help us with this massive effort, we have integrated our open-source code-base & curriculum with [Crowdin](https://crowdin.com/).
**If you're interested in translating, here are the guides to translate our [curriculum](how-to-translate-files.md), the [learning platform](how-to-translate-the-website.md) and our [Contributing guidelines](https://translate.freecodecamp.org/contributing-docs).**
## Learning Platform
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.
Broadly, we use
- un servidor con una API basada en Node.js
- un conjunto de aplicaciones client-side basadas en React
- y scripts de prueba para evaluar los proyectos curriculares enviados por nuestros campers.
Si deseas contribuir de forma activa a la mejora del plan de estudios, te recomendamos familiarizarte con las herramientas que se han mencionado.
If you want to productively contribute to the curriculum, we recommend some familiarity with these tools.
Si deseas ayudarnos a mejorar nuestro código base...
If you want to help us improve our codebase...
**puedes optar por utilizar Gitpod, una herramienta de desarrollo en linea que crea ambientes listos para escribir código para freeCodeCamp directamente en el navegador.**
**you can either use Gitpod, a free online dev environment that starts a ready-to-code dev environment for freeCodeCamp in your browser.**
[![Abrir en Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
O también puedes...
Or you can...
**[configurar freeCodeCamp localmente](how-to-setup-freecodecamp-locally.md) en tu máquina. **
**[set up freeCodeCamp locally](how-to-setup-freecodecamp-locally.md) on your machine.**

View File

@@ -225,9 +225,9 @@ Los Bans de Discord son globales - no puedes banear a un usuario de un canal esp
There may be situations where you need to address a concern with a camper privately. This should not be done through DMs, as this 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:
- Call the `!fCC moderate private @username` command, where `@username` is the *Discord mention* of the user. If you are calling this command from a private channel (such as #mod-chat), you will need to parse the mention manually: Ensure you have Developer Mode turned on in your Discord settings, then right-click on the user's avatar and select `Copy ID`. Replace the `@username` parameter with `<@!ID>`, where `ID` is the value you copied earlier. The result should look like: `!fCC moderate private <@!465650873650118659>`.
- Call the `!fCC moderate private @username` command, where `@username` is the _Discord mention_ of the user. If you are calling this command from a private channel (such as #mod-chat), you will need to parse the mention manually: Ensure you have Developer Mode turned on in your Discord settings, then right-click on the user's avatar and select `Copy ID`. Replace the `@username` parameter with `<@!ID>`, where `ID` is the value you copied earlier. The result should look like: `!fCC moderate private <@!465650873650118659>`.
- The bot will create a new channel under the `private` category and add the `@username`-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.
- When the conversation is complete, call the `!fCC moderate close` command *in the private channel* to have the bot close and delete that channel.
- When the conversation is complete, call the `!fCC moderate close` command _in the private channel_ to have the bot close and delete that channel.
4. **Deleting messages** Moderators have the ability to delete messages on Discord. They should only exercise this ability in four very specific situations:
@@ -364,14 +364,14 @@ Feel free to reference the [contributing guidelines](https://contribute.freecode
### Syncing Fork
> When PR is not up to date with the `master` branch.
> 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. ⚠️
To resolve this error, you will have to sync the latest changes from the `master` branch of the `freeCodeCamp/freeCodeCamp` repo.
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: