diff --git a/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md b/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md index 1984bd4606b..54f12f912e6 100644 --- a/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md +++ b/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md @@ -481,10 +481,12 @@ You are also able to test one challenge individually by performing the following 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): ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. -> +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> > The currently accepted values are `english` and `chinese`, with `english` being set by default. ## Proposing a Pull Request (PR) @@ -498,3 +500,69 @@ Creating and Editing Challenges: 1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). 2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/chinese/how-to-work-on-coding-challenges.md b/docs/i18n/chinese/how-to-work-on-coding-challenges.md index 1984bd4606b..54f12f912e6 100644 --- a/docs/i18n/chinese/how-to-work-on-coding-challenges.md +++ b/docs/i18n/chinese/how-to-work-on-coding-challenges.md @@ -481,10 +481,12 @@ You are also able to test one challenge individually by performing the following 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): ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. -> +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> > The currently accepted values are `english` and `chinese`, with `english` being set by default. ## Proposing a Pull Request (PR) @@ -498,3 +500,69 @@ Creating and Editing Challenges: 1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). 2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/espanol/how-to-work-on-coding-challenges.md b/docs/i18n/espanol/how-to-work-on-coding-challenges.md index 9915032ecaa..230b2fa8eff 100644 --- a/docs/i18n/espanol/how-to-work-on-coding-challenges.md +++ b/docs/i18n/espanol/how-to-work-on-coding-challenges.md @@ -485,11 +485,13 @@ También puedes probar un desafío individualmente realizando los siguientes pas 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): ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] Puede establecer la variable de entorno `LOCALE` en `.env` en el idioma de los retos que necesita probar. -> -> Los valores aceptados actualmente son `english` y `chinese`, con `english` configurado de manera predeterminada. +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> +> The currently accepted values are `english` and `chinese`, with `english` being set by default. ## Proposing a Pull Request (PR) @@ -497,8 +499,74 @@ After you've committed your changes, check here for [how to open a Pull Request] ## Useful Links -Creación y edición de desafíos: +Creating and Editing Challenges: -1. [Tipos de desafío](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - lo que significan los valores numéricos del tipo de desafío (enum). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Contribuyendo a FreeCodeCamp - Escribiendo Pruebas de Desafío de ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - un vídeo que sigue a [Ethan Arrowood](https://twitter.com/ArrowoodTech) mientras contribuye a la versión antigua del currículo. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/german/how-to-work-on-coding-challenges.md b/docs/i18n/german/how-to-work-on-coding-challenges.md index 2a52e723045..b4098641e70 100644 --- a/docs/i18n/german/how-to-work-on-coding-challenges.md +++ b/docs/i18n/german/how-to-work-on-coding-challenges.md @@ -480,11 +480,13 @@ Du kannst eine Aufgabe auch einzeln testen, indem du die folgenden Schritte ausf 2. Führe das Folgende für jede Aufgabendatei aus, für die du Änderungen vorgenommen hast (ersetze dabei `Aufgabentitel hier eintragen` durch den vollständigen Titel der Aufgabe): ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] Du kannst die Umgebungsvariable `LOCALE` in der `.env` auf die Sprache der Aufgabe(n) setzen, die du testen willst. -> -> Die derzeit akzeptierten Werte sind `englisch` und `chinesisch`, wobei `englisch` standardmäßig eingestellt ist. +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> +> The currently accepted values are `english` and `chinese`, with `english` being set by default. ## Proposing a Pull Request (PR) @@ -492,8 +494,74 @@ After you've committed your changes, check here for [how to open a Pull Request] ## Useful Links -Aufgaben erstellen und bearbeiten: +Creating and Editing Challenges: -1. [Aufgabentypen](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - was die numerischen Aufgabentypenwerte bedeuten (Enum). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Beitrag zum FreeCodeCamp - ES6 Challenge Tests schreiben](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - ein Video, das [Ethan Arrowood](https://twitter.com/ArrowoodTech) bei seinem Beitrag zur alten Version des Lehrplans begleitet. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/italian/how-to-work-on-coding-challenges.md b/docs/i18n/italian/how-to-work-on-coding-challenges.md index c79e6350656..a5624c4e0eb 100644 --- a/docs/i18n/italian/how-to-work-on-coding-challenges.md +++ b/docs/i18n/italian/how-to-work-on-coding-challenges.md @@ -481,11 +481,13 @@ Puoi anche testare una sfida singola con i seguenti step: 2. Esegui i seguenti comandi per ogni singolo file in cui hai fatto cambiamenti (rimpiazziando `challenge-title-goes-here` con il titolo intero della sfida): ``` - pnpm run test -- -g titolo-sfida-qui ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] Puoi impostare la variabile d'ambiente `LOCALE` nel file `.env` alla lingua usata nelle sfide che devi testare. -> -> I valori attualmente accettati sono `english` (inglese) e `chinese` (cinese), con `english` come valore di default. +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> +> The currently accepted values are `english` and `chinese`, with `english` being set by default. ## Proposing a Pull Request (PR) @@ -493,8 +495,74 @@ After you've committed your changes, check here for [how to open a Pull Request] ## Useful Links -Creare e modificare sfide: +Creating and Editing Challenges: -1. [Tipo della sfida (challenge type)](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - cosa significa il tipo di sfida numerico (enum). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Contribuire a FreeCodeCamp - Scrivere Test per le sfide ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - un video che segue [Ethan Arrowood](https://twitter.com/ArrowoodTech) in quanto contributore della vecchia versione del curriculum. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/japanese/how-to-work-on-coding-challenges.md b/docs/i18n/japanese/how-to-work-on-coding-challenges.md index 9dc0b50a937..a859393ada1 100644 --- a/docs/i18n/japanese/how-to-work-on-coding-challenges.md +++ b/docs/i18n/japanese/how-to-work-on-coding-challenges.md @@ -481,11 +481,13 @@ FCC_SUPERBLOCK='responsive-web-design' pnpm run test:curriculum 2. 変更したチャレンジファイルごとに以下を実行します ( `challenge-title-goes-here` を正式なチャレンジのタイトルに置き換えてください)。 ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] `.env` にある環境変数 `LOCALE` で、テストするチャレンジの言語を設定できます。 -> -> 現在受け入れられている値は、`english` と `chinese`で、デフォルトは `english` です。 +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> +> The currently accepted values are `english` and `chinese`, with `english` being set by default. ## Proposing a Pull Request (PR) @@ -493,8 +495,74 @@ After you've committed your changes, check here for [how to open a Pull Request] ## Useful Links -チャレンジの作成および編集 +Creating and Editing Challenges: -1. [チャレンジタイプ](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - チャレンジタイプの値の、どの数値が何を意味するか (enum) +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - 古いバージョンのカリキュラムに貢献している [Ethan Arrowood](https://twitter.com/ArrowoodTech) の動画 +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/portuguese/how-to-enable-new-languages.md b/docs/i18n/portuguese/how-to-enable-new-languages.md index 60b1d8518bc..9add2c96104 100644 --- a/docs/i18n/portuguese/how-to-enable-new-languages.md +++ b/docs/i18n/portuguese/how-to-enable-new-languages.md @@ -1,36 +1,36 @@ # Implantar novos idiomas no `/learn` -To enable a new language on `/learn` (curriculum), you need to complete the following steps: +Para habilitar um novo idioma em `/learn` (currículo), você precisa completar os seguintes passos: -- Complete translating and approving the first 3 certifications on Crowdin. (New Responsive Web Design, JavaScript Algorithms and Data Structures, and Front End Development Libraries) -- Complete translating and approving all strings in Learn UI project on Crowdin. -- Update Crowdin settings to add a custom language code for the new language. -- Open the 1st PR to configure GitHub Actions. You need to update 2 files: +- Traduzir e aprove por completo as três primeiras certificações no Crowdin. (Design responsivo para a web novo, Algoritmos e estruturas de dados em JavaScript e Bibliotecas de desenvolvimento de front-end) +- Complete a tradução e aprove todas as frases no projeto LearnUI (interface do usuário) no Crowdin. +- Atualize as configurações do Crowdin para adicionar um código de idioma personalizado para o novo idioma. +- Abra o primeiro PR para configurar o GitHub Actions. Você precisa atualizar 2 arquivos: - `crowdin-download.client-ui.yml` - `crowdin-download.curriculum.yml` -- Open the 2nd PR to add other configurations. You need to update/add the following files: - - Update `i18n.ts` - - Update `superblocks.ts` - - Update `algolia-locale-setup.ts` - - Add `links.json` - - Add `meta-tags.json` - - Add `motivation.json` -- Ask infrastructure team to spin up the VM for the new language. -- Once the VM is ready, open the 3rd PR to show the new language in the navigation menu. +- Abra o 2nd PR para adicionar outras configurações. Você precisa atualizar/adicionar os seguintes arquivos: + - Atualize `i18n.ts` + - Atualize `superblocks.ts` + - Atualize `algolia-locale-setup.ts` + - Adicione `links.json` + - Adicione `meta-tags.json` + - Adicione `motivation.json` +- Peça à equipe da infraestrutura para colocar a VM para funcionar para o novo idioma. +- Quando a VM estiver pronta, abra o terceiro PR para mostrar o novo idioma no menu de navegação. -We will explain each step in the following sections. +Explicaremos cada passo nas seções seguintes. ## Atualizar as configurações do Crowdin -Antes de lançar um novo idioma, você precisará permitir que os idiomas sejam baixados do Crowdin. To configure that, you need to add a custom language code for your language. +Antes de lançar um novo idioma, você precisará permitir que os idiomas sejam baixados do Crowdin. Para configurar isso, você precisa adicionar um código de idioma personalizado para seu idioma. -In the `Curriculum` and `Learn UI` projects on Crowdin, you will need to select `Settings` > `Languages` from the sidebar. Em seguida, desça até `Language Mapping`, onde você verá uma opção para adicionar códigos de idioma personalizados. Adicione uma nova entrada para o idioma que você está liberando, selecionando `language` como o valor de `Placeholder` e digitando um URL amigável em letras minúsculas do nome do seu idioma para o `Custom code`. If you aren't sure what to use, or you don't have an admin role and can't see the settings, reach out in our contributor chat and we will assist you. +Nos projetos `Curriculum` e `Learn UI` no Crowdin, você precisará selecionar `Settings` > `Languages`, na barra lateral. Em seguida, desça até `Language Mapping`, onde você verá uma opção para adicionar códigos de idioma personalizados. Adicione uma nova entrada para o idioma que você está liberando, selecionando `language` como o valor de `Placeholder` e digitando um URL amigável em letras minúsculas do nome do seu idioma para o `Custom code`. Se você não tem certeza do que usar, ou se você não tem uma função de administrador e não pode ver as configurações entre em contato pelo nosso chat de colaboradores e nós o ajudaremos. -## Updating Workflows for GitHub Actions +## Atualizando os fluxos de trabalho para o GitHub Actions -Then you need to configure the syncing between Crowdin and GitHub. +Em seguida, você precisa configurar a sincronização entre Crowdin e GitHub. -You will need to add a step to the [`crowdin-download.client-ui.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.client-ui.yml) and [`crowdin-download.curriculum.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.curriculum.yml). O passo para ambos será o mesmo. Por exemplo, se você quiser habilitar os downloads de Dothraki: +Você precisará adicionar um passo para o [`crowdin-download.client-ui.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.client-ui.yml) e para o [`crowdin-download.curriculum.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.curriculum.yml). O passo para ambos será o mesmo. Por exemplo, se você quiser habilitar os downloads de Dothraki: ```yml ##### Download Dothraki ##### @@ -71,14 +71,14 @@ Observe que a chave `download_language` precisa ser definida como código do idi Existem algumas etapas a serem seguidas para permitir que a base de código seja compilada no idioma desejado. -First, visit the [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts) file to add the language to the list of available languages and configure the values. Existem vários objetos aqui. +Primeiro, visite o arquivo [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts) para adicionar o idioma à lista de idiomas disponíveis e configurar os valores. Existem vários objetos aqui. - `Languages`: adiciona o novo idioma no enum `Languages`, do mesmo modo que com os outros. O valor da string aqui será usado no arquivo `.env` para definir o idioma da build posteriormente. - `availableLangs`: adiciona a nova propriedade do enum `Languages` aos dois arrays, `client` e `curriculum`. - `i18nextCodes`: esses são os códigos ISO de cada linguagem. Você vai precisar do código ISO apropriado para o idioma que você está habilitando. Eles precisam ser únicos para cada idioma. - `LangNames`: esses são os nomes dos idiomas que aparecerão para a seleção no menu de navegação. - `LangCodes`: esses são os códigos de idiomas usados para formatar datas e números. Esses deverão ser códigos Unicode CLDR ao invés de códigos ISO. -- `hiddenLangs`: Esses idiomas não serão exibidos no menu de navegação. Isto é usado para idiomas que ainda não estão prontos para liberação. Include your language in this array in the first PR and ask staff team to prepare the VM instance for your language. When the VM is ready, make another PR to remove it from the array. +- `hiddenLangs`: Esses idiomas não serão exibidos no menu de navegação. Isto é usado para idiomas que ainda não estão prontos para liberação. Inclua seu idioma nesse array no primeiro PR e peça à equipe para preparar a instância de VM para o seu idioma. Quando a VM estiver pronta, faça outro PR para removê-lo do array. - `rtlLangs`: estes são os idiomas que leem da direita para a esquerda. Como um exemplo, se você tivesse que habilitar o idioma Dothraki como seu idioma, os objetos `i18n.ts` devem ficar assim: @@ -138,7 +138,7 @@ export const hiddenLangs = ['dothraki']; export const rtlLangs = ['']; ``` -> [!NOTE] When a language has been set up in the deployment pipeline AND has a public `/learn` instance live, it can be removed from the `hiddenLangs` array and be made available to the public. +> [!NOTE] Quando um idioma for configurado no pipeline de implantação E tiver uma instância pública de `/learn` ativa, ele pode ser removido da matriz `hiddenLangs` e ser disponibilizado ao público. ### Configuração dos superblocos traduzidos @@ -171,7 +171,7 @@ Veja o enum `SuperBlocks` no início do mesmo arquivo para ver a lista completa ### Configurar a busca -Next, open the [`client/src/utils/algolia-locale-setup.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/utils/algolia-locale-setup.ts) file. Esse dado é usado para a barra de busca que carrega os artigos `/news`. Embora seja improvável que você venha a testar essa funcionalidade, não ter os dados para o seu idioma pode levar a erros quando tentar criar a base de código localmente. +Agora, abra o arquivo [`client/src/utils/algolia-locale-setup.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/utils/algolia-locale-setup.ts). Esse dado é usado para a barra de busca que carrega os artigos `/news`. Embora seja improvável que você venha a testar essa funcionalidade, não ter os dados para o seu idioma pode levar a erros quando tentar criar a base de código localmente. Adicione um objeto para seu idioma no objeto `algoliaIndices`. Você deve usar os mesmos valores do objeto `english` para o teste local, substituindo a chave `english` pelo valor de `availableLangs` do seu idioma. @@ -202,7 +202,7 @@ const algoliaIndices = { searchPage: 'https://www.freecodecamp.org/news/search/' } - // If we already have /news in the target language up and running, you can update the values like this: + // Se já tivermos /news no idioma de destino, é possível atualizar os valores assim: // dothraki: { // name: 'news-mis', // searchPage: 'https://www.freecodecamp.org/dothraki/news/search/' @@ -216,37 +216,37 @@ Você precisará dar um passo adicional para lidar com as traduções da interfa Os fluxos de trabalho do Crowdin serão automaticamente puxados _algumas_ das traduções da UI, mas há alguns arquivos que precisam ser movidos manualmente. -You will want to copy the following files from [`/client/i18n/locales/english`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n/locales/english) to `/client/i18n/locales/`, and apply translations as needed: +Você vai querer copiar os seguintes arquivos de [`/client/i18n/locales/english`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n/locales/english) to `/client/i18n/locales/` e aplicar as traduções conforme necessário: - `links.json` - `meta-tags.json` - `motivation.json` -You don't have to have everything in these 3 files translated at first. It's possible to translate only the relevant parts and make adjustments later. +Você não precisa ter tudo nestes 3 arquivos traduzidos no começo. É possível traduzir somente as partes relevantes e fazer ajustes mais tarde. #### `links.json` -You can replace any URLs that you have corresponding pages ready in your language. +Você pode substituir qualquer URL que tenha páginas correspondentes prontas no seu idioma. -For example, if you have the publication in your language, you can replace the URL for `"news"`. If you want to translate articles listed in the footer links, see [How to Translate Articles in the Footer Links](language-lead-handbook.md#how-to-translate-articles-in-the-footer-links). +Por exemplo, se você tiver a publicação no seu idioma, você pode substituir o URL para `"news"`. Se quiser traduzir artigos listados nos links de rodapé, consulte [Como traduzir artigos nos links de rodapé](language-lead-handbook.md#how-to-translate-articles-in-the-footer-links). #### `meta-tags.json` -This file contains metadata for the web page of `/learn` in your language. You can translate the values for `"title"`, `"description"`, and `"social-description"`. The value for `"youre-unsubscribed"` is used when someone unsubscribes from Quincy's weekly email. +Este arquivo contém metadados para a página da web de `/learn` no seu idioma. Você pode traduzir os valores para `"title"`, `"description"` e `"social-description"`. O valor de `"youre-unsubscribed"` é usado quando alguém cancela sua inscrição no e-mail semanal do Quincy. -Also, you can translate or add relevant keywords in your language to the `"keywords"` array. +Além disso, você pode traduzir ou adicionar palavras-chave relevantes em seu idioma para o array `"keywords"`. #### `motivation.json` -This file contains the compliments that will be displayed to campers when they complete a challenge, and motivational quotes that are displayed on the top page of `/learn`. +Este arquivo contém os elogios que serão exibidos para os campers quando completarem um desafio, bem como as citações motivacionais que são exibidas na parte superior da página do `/learn`. -You can translate them, or even replace them with relevant compliments/quotes of your choice in your language. +Você pode traduzi-los, ou até mesmo substituí-los por elogios/citações relevantes de sua escolha no seu idioma. ### Ativar os vídeos localizados -This section is applicable only if you have localized videos in the challenges. Otherwise, you can skip this section. +Esta seção só se aplica se você tiver vídeos localizados nos desafios. Caso contrário, você pode pular esta seção. -Para os desafios em vídeo, você precisa fazer algumas alterações. First, add the new locale to the GraphQL query in the [`client/src/templates/Challenges/video/Show.tsx`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/templates/Challenges/video/show.tsx) file. Por exemplo, para adicionar Dothraki à consulta: +Para os desafios em vídeo, você precisa fazer algumas alterações. Primeiro, adicione o novo idioma (locale) à consulta do GraphQL no arquivo [`client/src/templates/Challenges/video/Show.tsx`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/templates/Challenges/video/show.tsx). Por exemplo, para adicionar Dothraki à consulta: ```tsx query VideoChallenge($slug: String!) { @@ -314,17 +314,17 @@ Quando estes arquivos estiverem no local certo, você deve poder usar `pnpm run > [!ATTENTION] Embora você possa realizar as traduções localmente para fins de teste, lembramos a todos que as traduções _não_ devem ser enviadas pelo GitHub e devem ser feitas somente pelo Crowdin. Certifique-se de reiniciar sua base de código local após realizar os testes. -## Show the language in the navigation menu +## Mostrar o idioma no menu de navegação -When your prior PR is merged and the VM for your language is ready, make another PR to show your language in the navigation menu. +Quando seu PR anterior for mesclado e sua VM para seu idioma estiver pronta, faça outro PR para mostrar seu idioma no menu de navegação. -In [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts) file, you have included your language in `hiddenLangs` array in the prior PR. Remove it from the array now. +No arquivo [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts), você incluiu seu idioma no array `hiddenLangs` no PR anterior. Retire-o do array agora. ```js -export const hiddenLangs = []; // Remove your language from the array +export const hiddenLangs = []; // Remove seu idioma do array ``` -When this PR is merged and gets deployed, the curriculum in your language will be live. +Quando esse PR é mesclado e implantado, o currículo em seu idioma estará disponível na página. # Implantar novos idiomas em `/news` diff --git a/docs/i18n/portuguese/how-to-work-on-coding-challenges.md b/docs/i18n/portuguese/how-to-work-on-coding-challenges.md index 406bbe9de73..8ea155f20d1 100644 --- a/docs/i18n/portuguese/how-to-work-on-coding-challenges.md +++ b/docs/i18n/portuguese/how-to-work-on-coding-challenges.md @@ -484,20 +484,88 @@ Você também é capaz de testar um desafio individualmente seguindo as seguinte 2. Execute o comando a seguir para cada arquivo de desafio no qual você fez alteraçõess (substituindo `challenge-title-goes-here` com o título completo do desafio): ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] Você pode definir a variável de ambiente `LOCALE` no `.env` no idioma do(s) desafio(s) que precisa testar. -> -> Os valores atualmente aceitos são `english` e `chinese`, com `english` sendo o padrão. +> [!TIP] +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. +> +> The currently accepted values are `english` and `chinese`, with `english` being set by default. -## Propondo um Pull Request (PR) +## Proposing a Pull Request (PR) -Após ter feito as alterações, veja [como abrir um Pull Request](how-to-open-a-pull-request.md). +After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). -## Links úteis +## Useful Links -Criação e edição de desafios: +Creating and Editing Challenges: -1. [Tipos de desafio](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - o que significam os valores do tipo de desafio numérico (enum). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Contribuindo para o FreeCodeCamp - Escrevendo testes de desafio ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - um vídeo com [Ethan Arrowood](https://twitter.com/ArrowoodTech) contribuindo para a versão antiga do currículo. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges. diff --git a/docs/i18n/ukrainian/how-to-enable-new-languages.md b/docs/i18n/ukrainian/how-to-enable-new-languages.md index d6a77dcd984..f6a7c6acb11 100644 --- a/docs/i18n/ukrainian/how-to-enable-new-languages.md +++ b/docs/i18n/ukrainian/how-to-enable-new-languages.md @@ -1,36 +1,36 @@ # Додавання нових мов для `/learn` -To enable a new language on `/learn` (curriculum), you need to complete the following steps: +Виконайте такі кроки, щоб додати нову мову на `/learn` (навчальна програма): -- Complete translating and approving the first 3 certifications on Crowdin. (New Responsive Web Design, JavaScript Algorithms and Data Structures, and Front End Development Libraries) -- Complete translating and approving all strings in Learn UI project on Crowdin. -- Update Crowdin settings to add a custom language code for the new language. -- Open the 1st PR to configure GitHub Actions. You need to update 2 files: +- Перекладіть та відредагуйте перші три сертифікації на Crowdin. (Новий адаптивний вебдизайн, Алгоритми JavaScript та структури даних, Бібліотеки Front End) +- Перекладіть та відредагуйте всі рядки проєкту «Learn UI» на Crowdin. +- Оновіть налаштування Crowdin, додавши власний код нової мови. +- Відкрийте перший PR, щоб налаштувати GitHub Actions. Потрібно оновити 2 файли: - `crowdin-download.client-ui.yml` - `crowdin-download.curriculum.yml` -- Open the 2nd PR to add other configurations. You need to update/add the following files: - - Update `i18n.ts` - - Update `superblocks.ts` - - Update `algolia-locale-setup.ts` - - Add `links.json` - - Add `meta-tags.json` - - Add `motivation.json` -- Ask infrastructure team to spin up the VM for the new language. -- Once the VM is ready, open the 3rd PR to show the new language in the navigation menu. +- Відрийте другий PR, щоб додати інші налаштування. Потрібно оновити/додати такі файли: + - Оновіть `i18n.ts` + - Оновіть `superblocks.ts` + - Оновіть `algolia-locale-setup.ts` + - Додайте `links.json` + - Додайте `meta-tags.json` + - Додайте `motivation.json` +- Попросіть команду інфраструктури налаштувати та запустити віртуальну машину для нової мови. +- Як тільки віртуальна машина готова, відрийте третій PR, щоб додати нову мову до навігаційного меню. -We will explain each step in the following sections. +Ми пояснимо кожен крок у наступних розділах. ## Оновлення налаштувань Crowdin -Перш ніж випустити нову мову, потрібно дозволити завантаження мов з Crowdin. To configure that, you need to add a custom language code for your language. +Перш ніж випустити нову мову, потрібно дозволити завантаження мов з Crowdin. Для цього потрібно додати власний код нової мови. -In the `Curriculum` and `Learn UI` projects on Crowdin, you will need to select `Settings` > `Languages` from the sidebar. Прокрутіть вниз до `Language Mapping`, де ви побачите опцію додавання нового коду мови. Додайте нову мову, обравши значення `language` для `Placeholder` та ввівши назву мови у нижньому регістрі для `Custom code`. If you aren't sure what to use, or you don't have an admin role and can't see the settings, reach out in our contributor chat and we will assist you. +Оберіть `Settings` > `Languages` на бічній панелі проєктів `Curriculum` та `Learn UI` на Crowdin. Прокрутіть вниз до `Language Mapping`, де ви побачите опцію додавання нового коду мови. Додайте нову мову, обравши значення `language` для `Placeholder` та ввівши назву мови у нижньому регістрі для `Custom code`. Якщо ви не впевнені, що використовувати або у вас немає ролі адміністратора і ви не бачите налаштувань, напишіть у чаті та ми вам допоможемо. -## Updating Workflows for GitHub Actions +## Оновлення робочих процесів для GitHub Actions -Then you need to configure the syncing between Crowdin and GitHub. +Потім потрібно налаштувати синхронізацію між Crowdin та GitHub. -You will need to add a step to the [`crowdin-download.client-ui.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.client-ui.yml) and [`crowdin-download.curriculum.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.curriculum.yml). Він буде однаковим. Наприклад, якщо ви хочете завантажувати дотракійську мову: +Вам потрібно додати крок до [`crowdin-download.client-ui.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.client-ui.yml) та [`crowdin-download.curriculum.yml`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/crowdin-download.curriculum.yml). Він буде однаковим. Наприклад, якщо ви хочете завантажувати дотракійську мову: ```yml ##### Download Dothraki ##### @@ -71,14 +71,14 @@ You will need to add a step to the [`crowdin-download.client-ui.yml`](https://gi Щоб дозволити кодовій базі функціонувати на обраній вами мові, потрібно зробити декілька кроків. -First, visit the [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts) file to add the language to the list of available languages and configure the values. У ньому розміщено декілька об’єктів. +Спочатку відвідайте файл [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts), щоб додати мову до списку доступних мов та налаштувати значення. У ньому розміщено декілька об’єктів. - `Languages`: додайте нову мову до запису `Languages`, схоже до інших. Значення рядка пізніше буде використане у файлі `.env`, щоб налаштувати збірку мови. - `availableLangs`: додайте нову властивість із запису `Languages` до масивів `client` та `curriculum`. - `i18nextCodes`: мовні коди ISO для кожної мови. Вам потрібно додати відповідний код ISO для мови, з якою працюєте. Вони повинні бути унікальними для кожної мови. - `LangNames`: назви мов для перемикача мови у навігаційному меню. - `LangCodes`: мовні коди, які використовуються для форматування дат і чисел. Ними повинні бути коди Unicode CLDR замість кодів ISO. -- `hiddenLangs`: мови, які не показано у навігаційному меню. Використовують для мов, які не готові до випуску. Include your language in this array in the first PR and ask staff team to prepare the VM instance for your language. When the VM is ready, make another PR to remove it from the array. +- `hiddenLangs`: мови, які не показано у навігаційному меню. Використовують для мов, які не готові до випуску. Додайте мову до цього масиву в першому PR та попросіть персонал підготувати екземпляр VM для вашої мови. Коли VM буде готова, створіть інший PR, щоб видалити її з масиву. - `rtlLangs`: мови, які читаються справа наліво. Наприклад, якщо ви хочете використовувати дотракійську мову, об’єкти `i18n.ts` повинні виглядати так: @@ -138,7 +138,7 @@ export const hiddenLangs = ['dothraki']; export const rtlLangs = ['']; ``` -> [!NOTE] When a language has been set up in the deployment pipeline AND has a public `/learn` instance live, it can be removed from the `hiddenLangs` array and be made available to the public. +> [!NOTE] Коли мова буде налаштована у послідовності розгортання ТА матиме публічний активний екземпляр `/learn`, її можна видалити з масиву `hiddenLangs` та зробити доступною. ### Налаштуйте перекладені суперблоки @@ -171,7 +171,7 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ### Налаштування пошуку -Next, open the [`client/src/utils/algolia-locale-setup.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/utils/algolia-locale-setup.ts) file. Ці дані використовуються для рядка пошуку, який завантажує статті `/news`. Хоча й малоймовірно, що ви будете тестувати цю функціональність, відсутність даних мови може призвести до помилок при спробі створити кодову базу локально. +Потім відкрийте файл [`client/src/utils/algolia-locale-setup.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/utils/algolia-locale-setup.ts). Ці дані використовуються для рядка пошуку, який завантажує статті `/news`. Хоча й малоймовірно, що ви будете тестувати цю функціональність, відсутність даних мови може призвести до помилок при спробі створити кодову базу локально. Додайте об’єкт своєї мови до об’єкта `algoliaIndices`. Використовуйте значення об’єкта `english` для локального тестування, замінивши ключ `english` на значення своєї мови `availableLangs`. @@ -216,37 +216,37 @@ const algoliaIndices = { Робочі процеси на Crowdin автоматично завантажують _деякі_ переклади інтерфейсу, однак певні файли потрібно перемістити вручну. -You will want to copy the following files from [`/client/i18n/locales/english`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n/locales/english) to `/client/i18n/locales/`, and apply translations as needed: +Вам потрібно скопіювати такі файли з [`/client/i18n/locales/english`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n/locales/english) до `/client/i18n/locales/` та застосувати переклади там, де потрібно: - `links.json` - `meta-tags.json` - `motivation.json` -You don't have to have everything in these 3 files translated at first. It's possible to translate only the relevant parts and make adjustments later. +Спершу необов’язково мати всі значення цих трьох файлів. Ви можете перекласти лише потрібні частини та відредагувати все інше пізніше. #### `links.json` -You can replace any URLs that you have corresponding pages ready in your language. +Ви можете замінити URL, які мають відповідні сторінки вашою мовою. -For example, if you have the publication in your language, you can replace the URL for `"news"`. If you want to translate articles listed in the footer links, see [How to Translate Articles in the Footer Links](language-lead-handbook.md#how-to-translate-articles-in-the-footer-links). +Наприклад, якщо публікації доступні вашою мовою, можна замінити посилання на `"news"`. Якщо ви хочете перекласти статті з нижнього колонтитула, див. [як перекладати статті в нижньому колонтитулі](language-lead-handbook.md#how-to-translate-articles-in-the-footer-links). #### `meta-tags.json` -This file contains metadata for the web page of `/learn` in your language. You can translate the values for `"title"`, `"description"`, and `"social-description"`. The value for `"youre-unsubscribed"` is used when someone unsubscribes from Quincy's weekly email. +Цей файл містить метадані для вебсторінки `/learn` вашою мовою. Ви можете перекласти значення `"title"`, `"description"` та `"social-description"`. Значення `"youre-unsubscribed"` використовується, якщо хтось відписався від щотижневого повідомлення Квінсі. -Also, you can translate or add relevant keywords in your language to the `"keywords"` array. +Ви також можете перекласти та додати відповідні ключові слова до масиву `"keywords"`. #### `motivation.json` -This file contains the compliments that will be displayed to campers when they complete a challenge, and motivational quotes that are displayed on the top page of `/learn`. +Цей файл містить похвали, які з’являються після виконаного завдання та мотиваційні цитати, які з’являються зверху сторінки `/learn`. -You can translate them, or even replace them with relevant compliments/quotes of your choice in your language. +Ви можете перекласти їх або замінити відповідними фразами вашою мовою. ### Додавання локалізованих відео -This section is applicable only if you have localized videos in the challenges. Otherwise, you can skip this section. +Цей розділ корисний, якщо у вас є локалізовані відео до завдань. В іншому випадку ви можете пропустити його. -Вам потрібно дещо змінити стосовно відеозавдань. First, add the new locale to the GraphQL query in the [`client/src/templates/Challenges/video/Show.tsx`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/templates/Challenges/video/show.tsx) file. Ось так додається дотракійська мова: +Вам потрібно дещо змінити стосовно відеозавдань. Спочатку додайте нову локаль до запиту GraphQL у файлі [`client/src/templates/Challenges/video/Show.tsx`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/templates/Challenges/video/show.tsx). Ось так додається дотракійська мова: ```tsx query VideoChallenge($slug: String!) { @@ -314,17 +314,17 @@ videoLocaleIds: Joi.when('challengeType', { > [!ATTENTION] Ви можете працювати з перекладами локально, щоб провести тестування. Ми нагадуємо, що переклади _не_ потрібно надсилати через GitHub, а лише через Crowdin. Не забудьте скинути локальну кодову базу після закінчення тестування. -## Show the language in the navigation menu +## Додавання нової мови до навігаційного меню -When your prior PR is merged and the VM for your language is ready, make another PR to show your language in the navigation menu. +Як тільки попередній PR буде об’єднаний, а VM для вашої мови буде готовою, створіть ще один PR, щоб додати нову мову до навігаційного меню. -In [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts) file, you have included your language in `hiddenLangs` array in the prior PR. Remove it from the array now. +У файлі [`config/i18n.ts`](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/i18n.ts) ви додали мову до масиву `hiddenLangs` у попередньому PR. Тепер видаліть її з масиву. ```js -export const hiddenLangs = []; // Remove your language from the array +export const hiddenLangs = []; // видаліть свою мову з масиву ``` -When this PR is merged and gets deployed, the curriculum in your language will be live. +Коли PR буде об’єднаний та розроблений, навчальна програма стане доступною вашою мовою. # Додавання нових мов для `/news` diff --git a/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md index 3b8e068f359..033f8028231 100644 --- a/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md @@ -361,24 +361,24 @@ flutter run git push origin branch/name-here ``` -## Running mobile curriculum tests +## Запуск тестів навчальної програми мобільного застосунку -> [!NOTE] You only need to follow this section if you're modifying the challenge test runner in the mobile app. Otherwise, you can go to the next section on [how to open a pull request](#proposing-a-pull-request-pr). +> [!NOTE] Дотримуйтесь цього розділу, якщо змінюєте тестер завдань у мобільному застосунку. В іншому випадку перейдіть до наступного розділу [як відкрити запит на злиття](#proposing-a-pull-request-pr). -1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of freeCodeCamp mobile repo. Your folder structure should look like this: +1. Клонуйте копію [репозиторію freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp) локально зі своєї локальної копії репозиторію мобільного застосунку freeCodeCamp. Структура файлів має виглядати так: ```console ├── freeCodeCamp ├── mobile ``` -2. Change directory to the freeCodeCamp repo: +2. Змініть каталог на репозиторій freeCodeCamp: ```console cd freeCodeCamp ``` -3. Make a copy of the `.env` file: +3. Зробіть копію файлу `.env`: @@ -396,19 +396,19 @@ copy sample.env .env -4. Install the dependencies for the freeCodeCamp repo: +4. Встановіть залежності для репозиторію freeCodeCamp: ```console pnpm install && pnpm run create:config ``` -5. Generate the challenge data JSON file: +5. Створіть файл JSON з даними завдань: ```console pnpm run build:curriculum ``` -6. Copy the generated JSON file to the mobile app: +6. Скопіюйте створений файл JSON до мобільного застосунку: @@ -426,43 +426,43 @@ copy .\config\curriculum.json ..\mobile\mobile-app\curriculum.json -7. Change directory to the mobile app: +7. Змініть каталог на мобільний застосунок: ```console cd ../mobile/mobile-app ``` -8. Install the dependencies for the mobile app: +8. Встановіть залежності для мобільного застосунку: ```console flutter pub get ``` -9. Update the test file to use the challenge data JSON file: +9. Оновіть файл тестів, щоб використовувати файл JSON з даними завдань: ```console sed -i '' 's/..\/..\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` -10. Generate the challenge files: +10. Створіть файли завдань: ```console flutter test test/widget_test.dart ``` -11. Start a local server to serve the challenge files with the help of `serve` package: +11. Запустіть локальний сервер для обслуговування файлів завдань за допомогою пакету `serve`: ```console npx serve ``` -12. In a different terminal go back to the freeCodeCamp repo: +12. В іншому терміналі поверніться до репозиторію freeCodeCamp: ```console cd ../../freeCodeCamp ``` -13. Run the cypress tests: +13. Запустіть тести cypress: ```console pn cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome diff --git a/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md b/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md index 186cd41550a..94c81f64312 100644 --- a/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md +++ b/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md @@ -481,20 +481,88 @@ FCC_SUPERBLOCK='responsive-web-design' pnpm run test:curriculum 2. Виконайте цю команду для кожного файлу завдання, до якого ви внесли зміни (замінивши `challenge-title-goes-here` на повну назву завдання): ``` - pnpm run test -- -g challenge-title-goes-here ``` + pnpm run test -- -g challenge-title-goes-here + ``` -> [!TIP] Ви можете встановити змінну середовища ` LOCALE ` у `.env ` на мову завдань, які потрібно перевірити. -> +> [!TIP] +> Ви можете встановити змінну середовища `LOCALE` у `.env` на мову завдань, які потрібно протестувати. +> > Наразі прийнятними значеннями є `english` та `chinese` (`english` за замовчуванням). -## Запропонуйте запит на злиття (PR) +## Proposing a Pull Request (PR) -Як тільки ви затвердили свої зміни, див. [як відкрити запит на злиття](how-to-open-a-pull-request.md). +After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). -## Корисні посилання +## Useful Links -Створення і редагування завдань: +Creating and Editing Challenges: -1. [Типи завдань](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) — що означають числові значення завдань (перелік). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Внесок до FreeCodeCamp: написання тестів завдань ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) — відео [Ітана Арровуда](https://twitter.com/ArrowoodTech) про його внесок до старої версії навчальної програми. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. + +## Helper Scripts + +> [!NOTE] +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. + +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. Наприклад: + +```bash +cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting +``` + +### Add New Challenge + +To add a new challenge at the end of a block, call the script: + +```bash +pnpm run create-next-challenge +``` + +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. + +### Delete a Challenge + +To delete a challenge, call the script: + +```bash +pnpm run delete-challenge +``` + +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. + +### Insert a Challenge + +To insert a challenge before an existing challenge, call the script: + +```bash +pnpm run insert-challenge +``` + +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: + +```bash +a +b +c +``` + +And you choose `b`, your new order will be: + +```bash +a +new challenge +b +c +``` + +### Update Challenge Order + +If you need to manually re-order the challenges, call the script: + +```bash +pnpm run update-challenge-order +``` + +This will take you through an interactive process to select the order of the challenges.