From 2e0e2af6754d89f0706c3275dd5fe989b01bb27c Mon Sep 17 00:00:00 2001 From: camperbot Date: Mon, 5 Jun 2023 01:29:06 +0530 Subject: [PATCH] chore(i18n,docs): processed translations (#50587) --- .../how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 12 +++ .../language-lead-handbook.md | 2 +- .../chinese/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 12 +++ docs/i18n/chinese/language-lead-handbook.md | 2 +- .../espanol/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 12 +++ docs/i18n/espanol/language-lead-handbook.md | 2 +- .../german/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 12 +++ docs/i18n/german/language-lead-handbook.md | 2 +- .../italian/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 12 +++ docs/i18n/italian/language-lead-handbook.md | 2 +- .../japanese/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 12 +++ docs/i18n/japanese/language-lead-handbook.md | 2 +- .../portuguese/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 14 +++- .../i18n/portuguese/language-lead-handbook.md | 2 +- docs/i18n/ukrainian/_sidebar.md | 2 +- docs/i18n/ukrainian/devops.md | 24 +++--- .../ukrainian/how-to-enable-new-languages.md | 74 +++++-------------- .../how-to-work-on-practice-projects.md | 14 +++- docs/i18n/ukrainian/language-lead-handbook.md | 2 +- 26 files changed, 271 insertions(+), 463 deletions(-) diff --git a/docs/i18n/chinese-traditional/how-to-enable-new-languages.md b/docs/i18n/chinese-traditional/how-to-enable-new-languages.md index af975a8e144..76c33172d1c 100644 --- a/docs/i18n/chinese-traditional/how-to-enable-new-languages.md +++ b/docs/i18n/chinese-traditional/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] When a language has been set up in the deployment pipeline AND has a public `/news` instance live, it can be removed from the `hiddenLangs` array and be made available to the public. -### Configure the Language Superblock Order +### Set Translated SuperBlocks -In the [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts) file, you need to set the order and state of all the superblocks for the new language in the `superBlockOrder` object. Copy one of the language keys and all its values, paste it to the bottom of the object (or wherever), and change the key to your new language from the `Languages` enum. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -The order of the superblocks in this object is how they appear on the "Landing" page and "Learn" maps. Follow the comments in that file so you know how you are allowed to order the superblocks, then move them to their proper places for the new language. - -> [!ATTENTION] Do not change the order of any of the keys in the object, just move the superblocks to the different arrays - -The `CurriculumMaps.Landing` array should contain exactly one superblock for all our current certifications, and the `CurriculumMaps.Learn` object should have all existing superblocks in it. Translated superblocks go in `TranslationStates.Audited` and non-translated superblocks go in `TranslationStates.NotAudited`. Each of those two objects has four different states a superblock can be in. - -- `SuperBlockStates.Current`: Means that the superblock is current, `Responsive Web Design` for example. -- `SuperBlockStates.New`: These only show up when `SHOW_NEW_CURRICULUM` is set to `true` in your `.env` file. It is for displaying new superblocks on a specific build. For example, when we released the new RWD, we only showed it on English to start. -- `SuperBlockStates.Upcoming`: These only show up when `SHOW_UPCOMING_CHANGES` is set to `true` in your `.env` file. It is to show superblocks locally while they are in development. Or, if you just need to hide a superblock from the map for some other reason. -- `SuperBlockStates.Legacy`: A superblock is moved here when a newer version of that superblock has been fully translated and replaced it. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configure Search diff --git a/docs/i18n/chinese-traditional/how-to-work-on-practice-projects.md b/docs/i18n/chinese-traditional/how-to-work-on-practice-projects.md index e841f107add..f0caaf64b9f 100644 --- a/docs/i18n/chinese-traditional/how-to-work-on-practice-projects.md +++ b/docs/i18n/chinese-traditional/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ A one-off script that automatically updates the frontmatter in a project's markd pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Proposing a Pull Request (PR) After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). diff --git a/docs/i18n/chinese-traditional/language-lead-handbook.md b/docs/i18n/chinese-traditional/language-lead-handbook.md index ceb9f40d067..71b0c90da68 100644 --- a/docs/i18n/chinese-traditional/language-lead-handbook.md +++ b/docs/i18n/chinese-traditional/language-lead-handbook.md @@ -374,4 +374,4 @@ The user is now a proofreader. ## How to Add or Update a Language -Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [configuring the language superblock order](how-to-enable-new-languages.md#configure-the-language-superblock-order) should be helpful. +Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/chinese/how-to-enable-new-languages.md b/docs/i18n/chinese/how-to-enable-new-languages.md index 4b8cb33227d..6bf7c467eab 100644 --- a/docs/i18n/chinese/how-to-enable-new-languages.md +++ b/docs/i18n/chinese/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] When a language has been set up in the deployment pipeline AND has a public `/news` instance live, it can be removed from the `hiddenLangs` array and be made available to the public. -### Configure the Language Superblock Order +### Set Translated SuperBlocks -In the [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts) file, you need to set the order and state of all the superblocks for the new language in the `superBlockOrder` object. Copy one of the language keys and all its values, paste it to the bottom of the object (or wherever), and change the key to your new language from the `Languages` enum. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -The order of the superblocks in this object is how they appear on the "Landing" page and "Learn" maps. Follow the comments in that file so you know how you are allowed to order the superblocks, then move them to their proper places for the new language. - -> [!ATTENTION] Do not change the order of any of the keys in the object, just move the superblocks to the different arrays - -The `CurriculumMaps.Landing` array should contain exactly one superblock for all our current certifications, and the `CurriculumMaps.Learn` object should have all existing superblocks in it. Translated superblocks go in `TranslationStates.Audited` and non-translated superblocks go in `TranslationStates.NotAudited`. Each of those two objects has four different states a superblock can be in. - -- `SuperBlockStates.Current`: Means that the superblock is current, `Responsive Web Design` for example. -- `SuperBlockStates.New`: These only show up when `SHOW_NEW_CURRICULUM` is set to `true` in your `.env` file. It is for displaying new superblocks on a specific build. For example, when we released the new RWD, we only showed it on English to start. -- `SuperBlockStates.Upcoming`: These only show up when `SHOW_UPCOMING_CHANGES` is set to `true` in your `.env` file. It is to show superblocks locally while they are in development. Or, if you just need to hide a superblock from the map for some other reason. -- `SuperBlockStates.Legacy`: A superblock is moved here when a newer version of that superblock has been fully translated and replaced it. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configure Search diff --git a/docs/i18n/chinese/how-to-work-on-practice-projects.md b/docs/i18n/chinese/how-to-work-on-practice-projects.md index e841f107add..f0caaf64b9f 100644 --- a/docs/i18n/chinese/how-to-work-on-practice-projects.md +++ b/docs/i18n/chinese/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ A one-off script that automatically updates the frontmatter in a project's markd pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Proposing a Pull Request (PR) After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). diff --git a/docs/i18n/chinese/language-lead-handbook.md b/docs/i18n/chinese/language-lead-handbook.md index ceb9f40d067..71b0c90da68 100644 --- a/docs/i18n/chinese/language-lead-handbook.md +++ b/docs/i18n/chinese/language-lead-handbook.md @@ -374,4 +374,4 @@ The user is now a proofreader. ## How to Add or Update a Language -Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [configuring the language superblock order](how-to-enable-new-languages.md#configure-the-language-superblock-order) should be helpful. +Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/espanol/how-to-enable-new-languages.md b/docs/i18n/espanol/how-to-enable-new-languages.md index f3c5d4050cf..08f19fc2d07 100644 --- a/docs/i18n/espanol/how-to-enable-new-languages.md +++ b/docs/i18n/espanol/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] Cuando un lenguage ha sido configurado en el pipeline de despliegue Y se ha publicado como `/news`, puede ser quitado del arreglo `hiddenLangs` y puede ser disponible para el público. -### Configure the Language Superblock Order +### Set Translated SuperBlocks -In the [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts) file, you need to set the order and state of all the superblocks for the new language in the `superBlockOrder` object. Copy one of the language keys and all its values, paste it to the bottom of the object (or wherever), and change the key to your new language from the `Languages` enum. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -The order of the superblocks in this object is how they appear on the "Landing" page and "Learn" maps. Follow the comments in that file so you know how you are allowed to order the superblocks, then move them to their proper places for the new language. - -> [!ATTENTION] Do not change the order of any of the keys in the object, just move the superblocks to the different arrays - -The `CurriculumMaps.Landing` array should contain exactly one superblock for all our current certifications, and the `CurriculumMaps.Learn` object should have all existing superblocks in it. Translated superblocks go in `TranslationStates.Audited` and non-translated superblocks go in `TranslationStates.NotAudited`. Each of those two objects has four different states a superblock can be in. - -- `SuperBlockStates.Current`: Means that the superblock is current, `Responsive Web Design` for example. -- `SuperBlockStates.New`: These only show up when `SHOW_NEW_CURRICULUM` is set to `true` in your `.env` file. It is for displaying new superblocks on a specific build. For example, when we released the new RWD, we only showed it on English to start. -- `SuperBlockStates.Upcoming`: These only show up when `SHOW_UPCOMING_CHANGES` is set to `true` in your `.env` file. It is to show superblocks locally while they are in development. Or, if you just need to hide a superblock from the map for some other reason. -- `SuperBlockStates.Legacy`: A superblock is moved here when a newer version of that superblock has been fully translated and replaced it. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configure Search diff --git a/docs/i18n/espanol/how-to-work-on-practice-projects.md b/docs/i18n/espanol/how-to-work-on-practice-projects.md index cff73bdf10d..775fa5793e1 100644 --- a/docs/i18n/espanol/how-to-work-on-practice-projects.md +++ b/docs/i18n/espanol/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ A one-off script that automatically updates the frontmatter in a project's markd pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Proposing a Pull Request (PR) After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). diff --git a/docs/i18n/espanol/language-lead-handbook.md b/docs/i18n/espanol/language-lead-handbook.md index 7f170d0d509..a10225a82da 100644 --- a/docs/i18n/espanol/language-lead-handbook.md +++ b/docs/i18n/espanol/language-lead-handbook.md @@ -374,4 +374,4 @@ The user is now a proofreader. ## How to Add or Update a Language -Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [configuring the language superblock order](how-to-enable-new-languages.md#configure-the-language-superblock-order) should be helpful. +Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/german/how-to-enable-new-languages.md b/docs/i18n/german/how-to-enable-new-languages.md index f9cff2316ff..01c0afcdc47 100644 --- a/docs/i18n/german/how-to-enable-new-languages.md +++ b/docs/i18n/german/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] Wenn eine Sprache in der Deployment-Pipeline eingerichtet wurde UND eine öffentliche `/news`-Instanz live ist, kann sie aus dem `hiddenLangs`-Array entfernt und der Öffentlichkeit zugänglich gemacht werden. -### Configure the Language Superblock Order +### Set Translated SuperBlocks -In the [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts) file, you need to set the order and state of all the superblocks for the new language in the `superBlockOrder` object. Copy one of the language keys and all its values, paste it to the bottom of the object (or wherever), and change the key to your new language from the `Languages` enum. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -The order of the superblocks in this object is how they appear on the "Landing" page and "Learn" maps. Follow the comments in that file so you know how you are allowed to order the superblocks, then move them to their proper places for the new language. - -> [!ATTENTION] Do not change the order of any of the keys in the object, just move the superblocks to the different arrays - -The `CurriculumMaps.Landing` array should contain exactly one superblock for all our current certifications, and the `CurriculumMaps.Learn` object should have all existing superblocks in it. Translated superblocks go in `TranslationStates.Audited` and non-translated superblocks go in `TranslationStates.NotAudited`. Each of those two objects has four different states a superblock can be in. - -- `SuperBlockStates.Current`: Means that the superblock is current, `Responsive Web Design` for example. -- `SuperBlockStates.New`: These only show up when `SHOW_NEW_CURRICULUM` is set to `true` in your `.env` file. It is for displaying new superblocks on a specific build. For example, when we released the new RWD, we only showed it on English to start. -- `SuperBlockStates.Upcoming`: These only show up when `SHOW_UPCOMING_CHANGES` is set to `true` in your `.env` file. It is to show superblocks locally while they are in development. Or, if you just need to hide a superblock from the map for some other reason. -- `SuperBlockStates.Legacy`: A superblock is moved here when a newer version of that superblock has been fully translated and replaced it. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configure Search diff --git a/docs/i18n/german/how-to-work-on-practice-projects.md b/docs/i18n/german/how-to-work-on-practice-projects.md index 20d12a9cb94..178c7a6096c 100644 --- a/docs/i18n/german/how-to-work-on-practice-projects.md +++ b/docs/i18n/german/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ A one-off script that automatically updates the frontmatter in a project's markd pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Proposing a Pull Request (PR) After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). diff --git a/docs/i18n/german/language-lead-handbook.md b/docs/i18n/german/language-lead-handbook.md index 403c74ed0ca..84516281b72 100644 --- a/docs/i18n/german/language-lead-handbook.md +++ b/docs/i18n/german/language-lead-handbook.md @@ -374,4 +374,4 @@ Der Benutzer ist jetzt ein Korrekturleser. ## How to Add or Update a Language -Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [configuring the language superblock order](how-to-enable-new-languages.md#configure-the-language-superblock-order) should be helpful. +Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/italian/how-to-enable-new-languages.md b/docs/i18n/italian/how-to-enable-new-languages.md index b45e5b61e11..3db190d6bfe 100644 --- a/docs/i18n/italian/how-to-enable-new-languages.md +++ b/docs/i18n/italian/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] Quando è stato impostato il deployment per una lingua che ha già una sezione `/news` live, può essere rimossa dall'array `hiddenLangs` e resa disponibile al pubblico. -### Configurare l'ordine del superblocco di una lingua +### Set Translated SuperBlocks -Nel file [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts), devi impostare l'ordine e lo stato di tutti i superblocchi per la nuova lingua nell'oggetto `superBlockOrder`. Copia una delle chiavi della lingua e tutti i suoi valori, incollala in fondo all'oggetto (o in un'altra posizione) e cambia la chiave con la nuova lingua dall'enum `Languages`. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -L'ordine dei superblocchi in questo oggetto rispecchia il modo in cui appaiono sulla pagina "Landing" e sulle mappe "Learn". Segui i commenti in quel file in modo da sapere come ti è permesso ordinare i superblocchi, poi spostali nella posizione appropriata per la nuova lingua. - -> [!ATTENTION] Non modificare l'ordine di alcuna chiave nell'oggetto, sposta solo i superblocchi nei diversi array - -L'array `CurriculumMaps.Landing` dovrebbe contenere esattamente un superblocco per tutte le nostre certificazioni attuali e l'oggetto `CurriculumMaps.Learn` dovrebbe avere tutti i superblocchi esistenti al suo interno. I superblocchi tradotti vanno in `TranslationStates.Audited` e i superblocchi non tradotti vanno in `TranslationStates.NotAudited`. Ognuno di questi due oggetti ha i quattro stati diversi in cui può essere un superblocco. - -- `SuperBlockStates.Current`: Means that the superblock is current, `Responsive Web Design` for example. -- `SuperBlockStates.New`: Compare solo quando `SHOW_NEW_CURRICULUM` è impostato su `true` nel file `.env`. È per la visualizzazione di nuovi superblocchi su uno specifico build. For example, when we released the new RWD, we only showed it on English to start. -- `SuperBlockStates.Upcoming`: Compare solo quando `SHOW_UPCOMING_CHANGES` è impostato su `true` nel file `.env`. È per mostrare i superblocchi localmente mentre sono in sviluppo. Oppure, se hai solo bisogno di nascondere un superblocco dalla mappa per qualche altra ragione. -- `SuperBlockStates.Legacy`: Un superblocco viene spostato qui quando una versione più recente di quel superblocco è stata completamente tradotta e sostituita. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configurare la ricerca diff --git a/docs/i18n/italian/how-to-work-on-practice-projects.md b/docs/i18n/italian/how-to-work-on-practice-projects.md index 4f29309a10b..de7c7c44bae 100644 --- a/docs/i18n/italian/how-to-work-on-practice-projects.md +++ b/docs/i18n/italian/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ Uno script una tantum che aggiorna automaticamente il frontmatter nei file di ma pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Proposing a Pull Request (PR) After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). diff --git a/docs/i18n/italian/language-lead-handbook.md b/docs/i18n/italian/language-lead-handbook.md index 99acb96158a..5894d489f09 100644 --- a/docs/i18n/italian/language-lead-handbook.md +++ b/docs/i18n/italian/language-lead-handbook.md @@ -374,4 +374,4 @@ L'utente ora è un revisore. ## How to Add or Update a Language -Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [configuring the language superblock order](how-to-enable-new-languages.md#configure-the-language-superblock-order) should be helpful. +Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/japanese/how-to-enable-new-languages.md b/docs/i18n/japanese/how-to-enable-new-languages.md index 1f03dc1259b..e6a4f5e750b 100644 --- a/docs/i18n/japanese/how-to-enable-new-languages.md +++ b/docs/i18n/japanese/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] When a language has been set up in the deployment pipeline AND has a public `/news` instance live, it can be removed from the `hiddenLangs` array and be made available to the public. -### Configure the Language Superblock Order +### Set Translated SuperBlocks -In the [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts) file, you need to set the order and state of all the superblocks for the new language in the `superBlockOrder` object. Copy one of the language keys and all its values, paste it to the bottom of the object (or wherever), and change the key to your new language from the `Languages` enum. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -The order of the superblocks in this object is how they appear on the "Landing" page and "Learn" maps. Follow the comments in that file so you know how you are allowed to order the superblocks, then move them to their proper places for the new language. - -> [!ATTENTION] Do not change the order of any of the keys in the object, just move the superblocks to the different arrays - -The `CurriculumMaps.Landing` array should contain exactly one superblock for all our current certifications, and the `CurriculumMaps.Learn` object should have all existing superblocks in it. Translated superblocks go in `TranslationStates.Audited` and non-translated superblocks go in `TranslationStates.NotAudited`. Each of those two objects has four different states a superblock can be in. - -- `SuperBlockStates.Current`: Means that the superblock is current, `Responsive Web Design` for example. -- `SuperBlockStates.New`: These only show up when `SHOW_NEW_CURRICULUM` is set to `true` in your `.env` file. It is for displaying new superblocks on a specific build. For example, when we released the new RWD, we only showed it on English to start. -- `SuperBlockStates.Upcoming`: These only show up when `SHOW_UPCOMING_CHANGES` is set to `true` in your `.env` file. It is to show superblocks locally while they are in development. Or, if you just need to hide a superblock from the map for some other reason. -- `SuperBlockStates.Legacy`: A superblock is moved here when a newer version of that superblock has been fully translated and replaced it. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configure Search diff --git a/docs/i18n/japanese/how-to-work-on-practice-projects.md b/docs/i18n/japanese/how-to-work-on-practice-projects.md index e585a6b8424..d5f913de8ee 100644 --- a/docs/i18n/japanese/how-to-work-on-practice-projects.md +++ b/docs/i18n/japanese/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ A one-off script that automatically updates the frontmatter in a project's markd pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Proposing a Pull Request (PR) After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). diff --git a/docs/i18n/japanese/language-lead-handbook.md b/docs/i18n/japanese/language-lead-handbook.md index ceb9f40d067..71b0c90da68 100644 --- a/docs/i18n/japanese/language-lead-handbook.md +++ b/docs/i18n/japanese/language-lead-handbook.md @@ -374,4 +374,4 @@ The user is now a proofreader. ## How to Add or Update a Language -Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [configuring the language superblock order](how-to-enable-new-languages.md#configure-the-language-superblock-order) should be helpful. +Check out the [how to enable new language](how-to-enable-new-languages.md) docs. If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/portuguese/how-to-enable-new-languages.md b/docs/i18n/portuguese/how-to-enable-new-languages.md index e8d7d06c805..d4b3499f3ba 100644 --- a/docs/i18n/portuguese/how-to-enable-new-languages.md +++ b/docs/i18n/portuguese/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] Quando um idioma for configurado no pipeline de implantação E tiver uma instância pública de `/news` ativa, ele pode ser removido da matriz `hiddenLangs` e ser disponibilizado ao público. -### Configurar a ordem do superbloco do idioma +### Set Translated SuperBlocks -No arquivo [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts), você precisa definir a ordem e o estado de todos os superblocos para o novo idioma no objeto `superBlockOrder`. Copie uma das chaves do idioma e todos os seus valores, cole na parte inferior do objeto (ou seja onde for) e altere a chave para o seu novo idioma do enum `Languages`. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -A ordem dos superblocos neste objeto é como eles aparecem na página inicial e nos mapas em "Learn". Siga os comentários nesse arquivo para saber como você pode ordenar os superblocos. Em seguida, mova-os para os lugares apropriados para o novo idioma. - -> [!ATTENTION] Não altere a ordem das chaves no objeto. Apenas mova os superblocos para os diferentes arrays - -O array `CurriculumMaps.Landing` deve conter exatamente um superbloco para todas as nossas certificações atuais. O objeto `CurriculumMaps.Learn` deve ter em si todos os superblocos existentes. Os superblocos traduzidos vão em `TranslationStates.Audited` e os superblocos não traduzidos vão em `TranslationStates.NotAudited`. Esses dois objetos têm, cada um, quatro estados diferentes nos quais um superbloco pode estar. - -- `SuperBlockStates.Current`: representa que o superbloco pertence ao currículo atual, como o `Responsive Web Design`, por exemplo. -- `SuperBlockStates.New`: esses aparecem apenas quando `SHOW_NEW_CURRICULUM` estiver definido como `true` no arquivo `.env`. Ele serve para exibir novos superblocos em uma build específica. Por exemplo, quando lançamos a nova certificação de Design responsivo para a web, nós a mostramos apenas em inglês para começar. -- `SuperBlockStates.Upcoming`: esses aparecem apenas quando `SHOW_UPCOMING_CHANGES` estiver definido como `true` no arquivo `.env`. Eles servem para mostrar os superblocos em nível local enquanto eles estão em desenvolvimento. Como alternativa, podem ser usados quando precisamos ocultar um superbloco do mapa por alguma outra razão. -- `SuperBlockStates.Legacy`: um superbloco é movido para cá quando uma nova versão daquele superbloco já está totalmente traduzida e pronta para substituí-lo. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Configurar a busca diff --git a/docs/i18n/portuguese/how-to-work-on-practice-projects.md b/docs/i18n/portuguese/how-to-work-on-practice-projects.md index d6cfaf3486d..ff46dd44111 100644 --- a/docs/i18n/portuguese/how-to-work-on-practice-projects.md +++ b/docs/i18n/portuguese/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ Um script único que atualiza automaticamente a frontmatter nos arquivos markdow pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Propondo um 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). diff --git a/docs/i18n/portuguese/language-lead-handbook.md b/docs/i18n/portuguese/language-lead-handbook.md index 2df1843aaf3..9119122b869 100644 --- a/docs/i18n/portuguese/language-lead-handbook.md +++ b/docs/i18n/portuguese/language-lead-handbook.md @@ -373,4 +373,4 @@ O usuário agora é um revisor. ## Como adicionar ou atualizar um idioma -Confira a documentação sobre [como ativar um novo idioma](how-to-enable-new-languages.md). Se você estiver atualizando um idioma, a seção sobre a [configuração da ordem dos superblocos de idioma](how-to-enable-new-languages.md#configure-the-language-superblock-order) deve ser útil. +Confira a documentação sobre [como ativar um novo idioma](how-to-enable-new-languages.md). If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful. diff --git a/docs/i18n/ukrainian/_sidebar.md b/docs/i18n/ukrainian/_sidebar.md index 6a2a443771c..85833420ff9 100644 --- a/docs/i18n/ukrainian/_sidebar.md +++ b/docs/i18n/ukrainian/_sidebar.md @@ -30,7 +30,7 @@ --- -- **Посібники** (для персоналу & модераторів) +- **Довідники** (для персоналу та модераторів) - [Довідник модератора](moderator-handbook.md) - [Шаблони відповідей](reply-templates.md) - [Довідник мовного керівника](language-lead-handbook.md) diff --git a/docs/i18n/ukrainian/devops.md b/docs/i18n/ukrainian/devops.md index 5e2718bbbb9..cc3237e23f7 100644 --- a/docs/i18n/ukrainian/devops.md +++ b/docs/i18n/ukrainian/devops.md @@ -1,6 +1,6 @@ # Довідник DevOps -Цей посібник допоможе вам зрозуміти наш стек інфраструктури і те, як ми підтримуємо наші платформи. Хоча цей посібник не має вичерпних подробиць всіх операцій, його можна використовувати як довідник для розуміння систем. +Цей посібник допоможе вам зрозуміти наш стек інфраструктури і те, як ми підтримуємо наші платформи. Хоча цей посібник не містить повних деталей всіх операцій, його можна використовувати як довідник для розуміння систем. Зв’яжіться з нами, якщо у вас виникнуть запитання, і ми з радістю роз’яснимо всі деталі. @@ -20,7 +20,7 @@ Це проміжний випуск для наших розробників і волонтерів. Він також відомий як «staging» або «beta». -Він ідентичний нашому робочому середовищу на `freeCodeCamp.org`, а також використовує окремі набори баз даних, сервери, вебпроксі тощо. Ця ізоляція дозволяє нам протестувати поточну розробку та функції у «виробничому» сценарії, не впливаючи на звичайних користувачів основних платформ freeCodeCamp.org. +Він ідентичний нашому робочому середовищу на `freeCodeCamp.org`, але використовує окремі набори баз даних, сервери, вебпроксі тощо. Ця ізоляція дозволяє нам протестувати поточну розробку та функції у «виробничому» сценарії, не впливаючи на звичайних користувачів основних платформ freeCodeCamp.org. Як тільки команда [`@freeCodeCamp/dev-team`](https://github.com/orgs/freeCodeCamp/teams/dev-team/members) задоволена змінами на проміжній платформі, ці зміни переносяться кожні декілька днів до гілки [`prod-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/prod-current). @@ -286,11 +286,11 @@ doctl auth init doctl compute droplet list --format "ID,Name,PublicIPv4" ``` -## Spin New Resources +## Створюйте нові ресурси -We are working on creating our IaC setup, and while that is in works you can use the Azure portal or the Azure CLI to spin new virtual machines and other resources. +Ми працюємо над створенням налаштування IaC. Поки це відбувається, ви можете використовувати портал Azure або Azure CLI, щоб створити нову віртуальну машину та інші ресурси. -> [!TIP] No matter your choice of spinning resources, we have a few [handy cloud-init config files](https://github.com/freeCodeCamp/infra/tree/main/cloud-init) to help you do some of the basic provisioning like installing docker or adding SSH keys, etc. +> [!TIP] Незалежно від того, що ви використовуєте для створення нових ресурсів, у нас є декілька [корисних файлів конфігурації хмарної ініціалізації](https://github.com/freeCodeCamp/infra/tree/main/cloud-init), які допоможуть зробити базову ініціалізацію, як-от встановлення Docker або додавання SSH-ключів тощо. ## Зберігайте віртуальні машини в актуальному стані @@ -788,13 +788,13 @@ pm2 reload all --update-env && pm2 logs Are you sure you want to continue? [y/N] y ``` - Виберіть «так» (y), щоб видалити все, що не використовується. This will remove all stopped containers, all networks and volumes not used by at least one container, and all dangling images and build caches. + Виберіть «так» (y), щоб видалити все, що не використовується. Це видалить всі зупинені контейнери, мережі та томи, які не використовуються принаймні одним контейнером, а також завислі образи та кеш збірки. -## Work on Contributor Tools +## Робота над інструментами помічника -### Deploy Updates +### Розгорніть оновлення -ssh into the VM (hosted on Digital Ocean). +ssh у віртуальну машину (розміщену на Digital Ocean). ```console cd tools @@ -840,9 +840,9 @@ nvm alias default 16 nvm uninstall ``` -> [!ATTENTION] For client applications, the shell script can't be resurrected between Node.js versions with `pm2 resurrect`. Deploy processes from scratch instead. This should become nicer when we move to a docker-based setup. +> [!ATTENTION] Сценарій оболонки для клієнтських програм не можна відновити між версіями Node.js за допомогою `pm2 resurrect`. Замість цього розгорніть процеси з нуля. Цей процес стане простішим, коли ми перейдемо до налаштування на основі docker. > -> If using PM2 for processes you would also need to bring up the applications and save the process list for automatic recovery on restarts. +> Якщо для процесів використовується PM2, вам також потрібно буде запустити програми та зберегти список процесів для автоматичного відновлення під час перезапуску. Отримайте інструкції/команди видалення за допомогою команди `unstartup` та використайте вивід, щоб видалити служби systemctl @@ -909,7 +909,7 @@ pm2 logs sudo ./svc.sh uninstall ``` -4. Видаліть агента з pipeline pool +4. Видаліть агента з пулу конвеєра ```console ./config.sh remove diff --git a/docs/i18n/ukrainian/how-to-enable-new-languages.md b/docs/i18n/ukrainian/how-to-enable-new-languages.md index a5d1c2bb50a..5b5ec041c67 100644 --- a/docs/i18n/ukrainian/how-to-enable-new-languages.md +++ b/docs/i18n/ukrainian/how-to-enable-new-languages.md @@ -118,68 +118,32 @@ export const rtlLangs = ['']; > [!NOTE] Коли мова буде налаштована у послідовності розгортання ТА матиме публічний активний екземпляр `/news`, її можна видалити з масиву `hiddenLangs` та зробити доступною. -### Налаштуйте порядок суперблоків мови +### Set Translated SuperBlocks -У файлі [config/superblock-order.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblock-order.ts) потрібно встановити порядок та стан усіх суперблоків нової мови з об’єкту `superBlockOrder`. Скопіюйте один з мовних ключів і всі його значення, вставте їх знизу об’єкта та змініть ключ на нову мову з переліку `Languages`. +In the [config/superblocks.ts](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/config/superblocks.ts) file, add the new language to the `notAuditedSuperBlocks` object. This lists all the superblocks which are not fully translated. Add an array of superblocks which have not been fully translated to it: ```js -export const superBlockOrder: SuperBlockOrder = { +export const notAuditedSuperBlocks: NotAuditedSuperBlocks = { ... - [Languages.Dothraki]: { - [CurriculumMaps.Landing]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy - ], - [CurriculumMaps.Learn]: { - [TranslationStates.Audited]: { - [SuperBlockStates.Current]: [ - SuperBlocks.RespWebDesignNew, - SuperBlocks.JsAlgoDataStruct, - SuperBlocks.FrontEndDevLibs, - SuperBlocks.DataVis, - SuperBlocks.RelationalDb, - SuperBlocks.BackEndDevApis, - SuperBlocks.QualityAssurance, - SuperBlocks.SciCompPy, - SuperBlocks.DataAnalysisPy, - SuperBlocks.InfoSec, - SuperBlocks.MachineLearningPy, - SuperBlocks.CodingInterviewPrep - ], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew], - [SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign] - }, - [TranslationStates.NotAudited]: { - [SuperBlockStates.Current]: [], - [SuperBlockStates.New]: [], - [SuperBlockStates.Upcoming]: [], - [SuperBlockStates.Legacy]: [] - } - } - } + [Languages.Dothraki]: [ + SuperBlocks.DataVis, + SuperBlocks.RelationalDb, + SuperBlocks.BackEndDevApis, + SuperBlocks.QualityAssurance, + SuperBlocks.SciCompPy, + SuperBlocks.DataAnalysisPy, + SuperBlocks.InfoSec, + SuperBlocks.MachineLearningPy, + SuperBlocks.CollegeAlgebraPy, + SuperBlocks.CodingInterviewPrep, + SuperBlocks.ProjectEuler, + SuperBlocks.JsAlgoDataStructNew, + SuperBlocks.TheOdinProject + ] } ``` -У такому порядку суперблоки з’являються на цільовій сторінці та навчальних картах. Дотримуйтесь коментарів у цьому файлі, щоб розмістити суперблоки у правильному порядку, а потім перемістіть їх до потрібних місць нової мови. - -> [!ATTENTION] Не змінюйте порядок ключів у об‘єкті, а просто перемістіть суперблоки в інші масиви - -Масив `CurriculumMaps.Landing` повинен містити один суперблок для всіх актуальних сертифікацій, а об’єкт `CurriculumMaps.Learn` повинен містити всі наявні суперблоки. Перекладені суперблоки розміщуються у `TranslationStates.Audited`, а неперекладені — у `TranslationStates.NotAudited`. Суперблоки цих двох об’єктів можуть перебувати у чотирьох станах. - -- `SuperBlockStates.Current`: означає, що суперблок є актуальним (наприклад, `Responsive Web Design`). -- `SuperBlockStates.New`: з’являється лише тоді, коли `SHOW_NEW_CURRICULUM` налаштовано на `true` у файлі `.env`. Використовується для показу нових суперблоків певної збірки. Наприклад, коли ми опублікували новий адаптивний вебдизайн, він був доступний лише на англійській версії. -- `SuperBlockStates.Upcoming`: з’являється лише тоді, коли `SHOW_UPCOMING_CHANGES` налаштовано на `true` у файлі `.env`. Використовується для локального показу суперблоків у розробці. Або у випадку, якщо потрібно приховати суперблок з карти. -- `SuperBlockStates.Legacy`: суперблок переміщено сюди, коли його новіша версія була повністю перекладена та замінила стару. +Be sure to only add the superblocks which are **not** fully translated and approved. The translated superblocks will be calculated from this object. When a new superblock is finished being fully translated, remove it from the array for that language. ### Налаштування пошуку diff --git a/docs/i18n/ukrainian/how-to-work-on-practice-projects.md b/docs/i18n/ukrainian/how-to-work-on-practice-projects.md index d460cf4107c..2c91698a107 100644 --- a/docs/i18n/ukrainian/how-to-work-on-practice-projects.md +++ b/docs/i18n/ukrainian/how-to-work-on-practice-projects.md @@ -135,6 +135,18 @@ pnpm run delete-step X # де X є номером кроку, який потр pnpm run update-step-titles ``` +### repair-meta + +One-off script to parse the step names from the project and update the meta.json order to reflect those steps. Useful if you've accidentally lost the changes to the meta.json file when adding/removing steps. + +#### How to Run the Script + +1. Change to the directory of the project. +2. Run the following command: + +```bash +pnpm run repair-meta +``` ## Запропонуйте запит на злиття (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). diff --git a/docs/i18n/ukrainian/language-lead-handbook.md b/docs/i18n/ukrainian/language-lead-handbook.md index 1d2fccb57ce..56f58e78334 100644 --- a/docs/i18n/ukrainian/language-lead-handbook.md +++ b/docs/i18n/ukrainian/language-lead-handbook.md @@ -374,4 +374,4 @@ flexibleAlerts: { ## Як додати чи оновити мову -Перейдіть до документації з [додавання нової мови](how-to-enable-new-languages.md). Якщо ви оновлюєте мову, див. розділ з [налаштування порядку суперблоків мови](how-to-enable-new-languages.md#configure-the-language-superblock-order). +Перейдіть до документації з [додавання нової мови](how-to-enable-new-languages.md). If you are updating a language the section on [set translated superblocks](how-to-enable-new-languages.md#set-translated-superblocks) should be helpful.