Question: You should see the list of projects you have been granted access to. Select the project that you would like to proofread, then select the language. <del> ![Image - Proofreading File Tree](./images/crowdin/proof-file-tree.png) </del> <ins> ![Image - Proofreading File Tree](https://contribute.freecodecamp.org/images/crowdin/proof-file-tree.png) </ins> You should now see the list of available files. Choose your file by selecting the `Proofread` button on the right of that file, then choosing `Proofreading` from the drop-down menu that appears.

! Our local images currently do not render in the translated documentation views. This is due to the use of a relative link, which breaks with the new path generated for i18n pages. A couple of potential fixes: Use an absolute link (<filename). This, IMHO, is the most effective. Have translators fix the link in the translation flow. Host the images through our CDN and fetch them.
We should use the absolute path.
Sounds good. I'll get a PR up shortly.


Question: "dashedName": "waypoint-multiply-two-numbers-with-javascript", "difficulty": "9.98143", "description": [  "In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions", "Let's try a few of the most commonly used ones now", "We use *for multiplication",   "In JavaScript whole numbers (called integers) can be easily used to perform mathematical functions.", "Let's try a few of the most commonly used ones now.", "We use *for multiplication.",  "Replace the 0with correct number to achieve the result in the comment." ], "tests": [

Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <--- We use * for multiplication <---
merged to

Challenge has an issue. in JavaScript we can can work with decimal numbers <--- needs full stop.
merged to


Question: [SuperBlocks.FrontEndDevelopment]: ResponsiveDesign, [SuperBlocks.UpcomingPython]: PythonIcon, [SuperBlocks.A2English]: A2EnglishIcon, <del> [SuperBlocks.B1English]: A2EnglishIcon, </del> <ins> [SuperBlocks.B1English]: B1EnglishIcon, </ins> [SuperBlocks.RosettaCode]: RosettaCodeIcon, [SuperBlocks.PythonForEverybody]: PythonIcon };

The B1 English icon isn't available, so we are temporarily using the A2 icon for this superblock. <img width="709" alt="Screenshot 2024-09-11 at 05 43 53" src=""An icon for B1 should be created (it should look similar to the A2). Link to the A2 icon: You will need to make the following change to your file in order to see the B1 superblock:


Question: assert.exists(document.querySelector("div.fb1 > div.fb1a")); ``` <del> You should give the second new `div` a class of `fbab`. </del> <ins> You should give the second new `div` a class of `fb1b`. </ins> ```js assert.exists(document.querySelector("div.fb1 > div.fb1b"));

there is a typo in cramers-rule challenge, is used instead of which is wrong this sentence should be changed to Here is the markdown file Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.
Hi, May I work on this issue ?
of course, feel free to open pull request, after you have read the guide line


Question: <fieldset> <input id="personal-account" type="radio" name="account-type" /> Personal Account <input id="business-account" type="radio" name="account-type" /> Business Account  <input id="terms-and-conditions" required /> I accept the terms and conditions   <input id="terms-and-conditions" type="checkbox" required /> I accept the terms and conditions  </fieldset> --fcc-editable-region-- <fieldset></fieldset>

In step 29 of the Learn HTML Forms by Building a Registration Form challenge, there seems to be incorrect seed code. The checkbox for accepting terms and conditions is missing a , so when the step first opens it displays a plain text input instead of a checkbox. N/A A checkbox should be rendered instead of a text input. ! Device: Laptop OS: Ubuntu 20.04 Browser: Firefox (104), Chrome (105) No response
Whoops! Yeah, that should be fixed. Thanks for opening this issue. This looks like something that can be fixed by "first-time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Sounds good! I'll submit a PR to fix it!


Question: Your arrow function callback should check if `item.id === currentTask.id`. ```js <del> assert.match(code, /consts+dataArrIndexs*=s*taskData.findIndex(s*((s*items*)|item)s*=>s*item.ids*===s*currentTask.ids*)s*;?/) </del> <ins> assert.match(code, /consts+dataArrIndexs*=s*taskData.findIndex(s*((s*items*)|item)s*=>s*(?:item.ids*===s*currentTask.id|currentTask.ids*===s*item.id)s*)s*;?/) </ins> ``` # --seed--

I encountered an issue while completing a task (Step 11) on freeCodeCamp. The test involves using the method to determine whether a task already exists in an array and then either updating it or adding a new task. The problem appears to be related to the comparison order in the arrow function passed to . When I change the comparison order, the code works without any issues: ! ! and No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
You didn't mention the error caused.


Question: </TabPane> <TabPane eventKey={Tab.Console} <del> title={i18next.t('learn.editor-tabs.tests')} </del> <ins> title={i18next.t('learn.editor-tabs.console')} </ins> {...editorTabPaneProps} > {testOutput}

In the certification project pages, the tab on the left is "Instructions". However, if you resize the browser and the page switches to the mobile layout, the tab name changes to "Info". The "Console" on the desktop layout changes to "Tests" too. and other certification projects with built in editor to the browser Use the same name for the same content. ! ! Device: Laptop OS: Windows 10 Browser: Chrome Version: 108.0.5359.125 No response_
Technically, I don't think this is a WCAG failure. does address consistent identification of functional components. In this scenario, in wide view they are HTML buttons but in narrow view they are tabs, so technically they are not the same component and thus don't fall under 3.2.4. But for usability I would tend to agree that it would be best if they could use the same terminology since they basically do the same thing.
We can use "Console" for both mobile and desktop. Do we use "info" for the desktop layout and call it ?
I agree with using "Console" for both. For the panel showing user stories I would prefer using "Instructions" since the word "Info" seems too vague.
To solve this issue: use "Console" and "Instructions" for both layout. If you would like to fix this issue, please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this.
We might want to keep in mind that is much longer than . We do not have much real-estate on mobile.
Here are words that I can think of are "details", "step", "story", "task", "manual", "guide", and "briefing". Is any of them good enough, or do we change the console for now and come back for "instructions" later?
My initial thought is: keep everything consistent, and just use the current mobile-naming for desktop as well. However, I am not entirely happy with the word for what it denotes. might be one option, but I also like your suggestion of .
I find or interesting . I vote for too, if no one else has issue with it, we can go with it, otherwise we go with .

I think is a term in agile development so I'm not sure if we can call it just . I would vote for or if is too long. However, my main concern was that the word changes as the user resizes the window. So, I'm okay with either of them as long as we use the same word for both layouts.
We decided to go with the desktop terms for both, "Instructions" and "Console". The file that needs to be changed is We are going to make another issue about improving the mobile UX to potentially use icons or another solution.
I think that should remain for responsive design issues on cell phones and since it is the appropriate term when the student goes to vsCode or another IDE


Question: **Examples** <del> `3 == '3'` returns `true` because JavaScript performs type conversion from string to number. `3 === '3'` returns false because the types are different and type conversion is not performed. </del> <ins> `3 == '3'` returns `true` because JavaScript performs type conversion from string to number. `3 === '3'` returns `false` because the types are different and type conversion is not performed. </ins> **Note:** In JavaScript, you can determine the type of a variable or a value with the `typeof` operator, as follows:

In this line, there is a missing code block around word false It should be like this here is the file: If you would like to fix this issue, please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Happy contribution.
I opened pull request


Question: - MAILHOG_HOST=mailhog - MONGOHQ_URL=mongodb://db:27017/freecodecamp volumes: <del> - .:/app - node_modules:/app/node_modules - client_node_modules:/app/client/node_modules - server_node_modules:/app/api-server/node_modules - curriculum_node_modules:/app/curriculum/node_modules - challenge_md_parser_node_modules:/app/tools/challenge-md-parser/node_modules - seed_node_modules:/app/tools/scripts/seed/node_modules - client_plugin_nav_data_node_modules:/app/client/plugins/fcc-create-nav-data/node_modules </del> <ins> - .:/app:delegated - node_modules:/app/node_modules:delegated - client_node_modules:/app/client/node_modules:delegated - server_node_modules:/app/api-server/node_modules:delegated - curriculum_node_modules:/app/curriculum/node_modules:delegated - challenge_md_parser_node_modules:/app/tools/challenge-md-parser/node_modules:delegated - seed_node_modules:/app/tools/scripts/seed/node_modules:delegated - client_plugin_nav_data_node_modules:/app/client/plugins/fcc-create-nav-data/node_modules:delegated </ins> working_dir: /app client: image: node:lts

Is your feature request related to a problem? Please describe. Building project using docker on macOS is notoriously slow, after some googling, I found that there's some ways to boost the performance of this process. I post the link to the posts I read in here just in case someone want some reference Here's the link to performance comparison Here's the GitHub issue related to the subject In a nutshell, building project with docker on mac is unbearably slow, so, I use flag when run docker, here's the screenshot on how I modified my docker- to make the build process from almost forever to just a few second: (I still modify a section but there's no enough space to include that to the screenshot, anyway, you can tell from the preview pane on the upper right) ! Describe the solution you'd like So, I suggest include this change to yaml file in the project, or(see next) Describe alternatives you've considered Add an extra notice to , letting those who use mac be aware this issue and let them know how to alleviate the pain. PS: I'm also happy to help with this issue
Sure, the docker setup guide has not seen much love lately. Its intial intention was to remove the friction of installing the services like MongoDB, etc. However, it has become painfully slow when setting up from scratch. Please feel free to open a PR for benifit of everyone.
Thanks for the response! So, which option do you recommend? modify the docker- file and make the PR add a new notice in the contribution guide for those who run the project from scratch PS: thanks to the usage of flag , I never hear those crazy fan noise from my old MBP anymore and the CPU usage of the docker is really low now~
Lets start by adding the flag like you have tested. We could merge the PR and keep it under observation for a few days. We could add a warning or remove/overhaul the docker setup if the flags break something, later.
Hey, man, thanks for the advice and sorry for not keeping the update or work on it for several days, I'm currently dealing with some life emergency, and magically, the only thing that can let me feel less painful or pain-free is immerse myself in the world of coding how crazy!

Anyway, I just opened a PR and hopefully that can help a lot of people using mac and try to build the project from docker~ PS: I kind of favor adding a note on the guide to remind those with mac to do the flag thing when they build the project, because slow building only happen on mac I think, although this could lead to problems like forgot to remove the flag in the file when they commit so they push to the remote and cause a lot of conflicts... Anyway, adding this flag while building on PC or Linux shouldn't cause any problem I think, because means the change between host and container is not in sync immediately... hmm... sounds like a problem... but for more on it I think you should consult the docker doc I posted above
Hey Benjamin. Hope that you are hanging in well. Stay strong and I wish you the very best in whatever you are dealing with. Keep doing what you love. Thanks a lot for the PR, and your contributions during these hard times. I will take a look at the PR and will check your recommendations. I hope you have a great day ahead. Goodluck.
Thank you so much for the kind words you said, you have no idea what they means to me during this time... thank you!!!! And I am really grateful that I am able to find peace inside the world of code... Also, there seems some problems of the cypress testing of my pr.... dang it... anyway, I will have a look on it as well later. Thank you guys! Stay safe! And have a great day!
Hey I'm glad you're able to find some peace, that's some good news. As for the cypress testing, don't worry about it - I'll investigate. It's almost certainly not your code. It looks like a old bug that I thought I'd squashed.


Question: # --description-- <del> Below your last `p` element, add another `p` element with the text `Total Carbohydrate 37g 13%`. Like before, use `span` elements to make the text `Total Carbohydrate` and `13%` bold. Also add an additional `span` element to wrap the `Total Carbohydrate 37g` text in a span element to have it aligned to the left, and `13%` to the right. </del> <ins> Below your last `p` element, add another `p` element with the text `Total Carbohydrate 37g 13%`. Like before, use `span` elements to make the text `Total Carbohydrate` and `13%` bold. Also add an additional `span` element around the `Total Carbohydrate 37g` text to have it aligned to the left and `13%` to the right. </ins> # --hints--

The instructions do not state clearly where the new element should be . I believe they are relying on the fact that the previous two steps a element to the end of the div and thus they assume the user will continue this trend in step 55. But I just ran into a forum post that the element after the div, so I'm not sure that's a safe assumption. Step 54 tells the user to add the element "Below your last element" and I think we should do the same thing here. N/A Change the beginning of the instructions to read: "Below your last element, add another element with the text..." No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
Quick question, do you think we have a typo in the instruction as well?
Yes, you're correct. The phrase "so to have it aligned to the left" can be revised to "to have it aligned to the left" for a better concise expression.
When will be waiting for triage label removed
Thanks for opening this issue. This looks like something that can be fixed by "first-time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: A pull request which resolves this issue should: Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Hi, do you think the sentence could be made more effective by removing the redundant phrase 'span element' that occurs twice in the same line?
I agree that the "in a span element" part is redundant and should be removed, but I'm not sure about the extra comma there as it makes the sentence disjointed. We might want to just ditch the commas altogether:
Agreed. Two commas seem to break the sentence unnecessarily. I already raised a PR () suggesting the removal of the redundant part, which was not merged. Should I push changes in the same PR, or create a new one?


Question: assert.equal(heads?.length, 1); ``` <del> You should have a one a self-closing `link` element. </del> <ins> You should have one self-closing `link` element. </ins> ```js assert(document.querySelectorAll('link').length === 1);

as ieahleen mentioned in Crowdin, there are multiple files with typos in them. they say These hints should be changed to because they are testing if there is a single self-closing Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.


Question: element.classList.toggle("class-to-toggle"); ``` <del> Add an event listener to the `openTaskFormBtn` element and pass in a `click` event for the first argument and an empty callback function for the second argument. </del> <ins> Add an event listener to the `openTaskFormBtn` element and pass in a `"click"` event for the first argument and an anonymous callback function for the second argument. </ins> <del> For the callback function, use the `classList.toggle()` method to toggle the `hidden` class on the `taskForm` element. </del> <ins> Inside the callback function, use the `classList.toggle()` method to toggle the `"hidden"` class on the `taskForm` element. </ins> Now you can `click` on the "Add new Task" button and see the form modal.

In step 6 of the Todo app (js beta) the following sentence needs a slight correction: The part where it says "an empty callback function for the second argument" is the issue. It needs to say "a callback function..." (minus the word empty). This is because the word empty implies this: but actually the very next instruction tells us to add some code in the function after-all. Note that step 7 has a very similar set of instructions but doesn't make the mistake of saying "an empty callback function" in its instructions. (please compare 6 to 7 for this slight difference in the wording) N/A N/A N/A N/A No response
Maybe instead:
This looks like something that can be fixed by "first time" code contributors to this repository. Here is the file that you should be looking at to work on a fix: Change: To: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull-requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Hi, I can fix this issue
It is open to all first timers, you do not need to get permission.
Ok, thank for letting me know


Question: | `npm run develop`                                              | Starts the freeCodeCamp API Server and Client Applications.                         | | `npm run storybook`                                            | Starts Storybook for component library development.                                 | | `npm test`                                                     | Run all JS tests in the system, including client, server, lint and challenge tests. | <del> | `npm run test:client`                                          | Run the client test suite.                                                          | </del> <ins> | `npm run test-client`                                          | Run the client test suite.                                                          | </ins> | `npm run test:curriculum`                                      | Run the curriculum test suite.                                                      | | `npm run test:curriculum --block='Basic HTML and HTML5'`       | Test a specific Block.                                                              | | `npm run test:curriculum --superblock='responsive-web-design'` | Test a specific SuperBlock.                                                         | | `npm run test-curriculum-full-output`                          | Run the curriculum test suite, without bailing after the first error                | <del> | `npm run test:server`                                          | Run the server test suite.                                                          | </del> <ins> | `npm run test-server`                                          | Run the server test suite.                                                          | </ins> | `npm run e2e`                                                  | Run the Cypress end to end tests.                                                   | | `npm run clean`                                                | Uninstalls all dependencies and cleans up caches.                                   |

Affected page docs/how-to-setup-freecodecamp- To Reproduce Steps to reproduce the behavior: to '' down to "Quick commands reference" section that it says - command for run test and server tests are "npm run test:client" and "npm run test:server" Expected behavior It should be and instead Screenshots ! System (please complete the following information): Device: [e.g. iPhone6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.4] Browser: [e.g. chrome, safari] Version: [e.g. 22] Additional context Add any other context about the problem here.


Question: accessibilitySupport: accessibilityMode ? 'on' : 'auto' }); <ins> document.fonts.ready .then(() => monaco.editor.remeasureFonts()) .catch(err => console.error(err)); </ins> // Focus should not automatically leave the 'Code' tab when using a keyboard // to navigate the tablist. if (!isMobileLayout || !isUsingKeyboardInTablist) {

For me, both in Chrome and Edge (without any extensions) the cursor position is off by some characters (a tab?). It seems to happen after reloading the page (hard refresh) or even directly navigating to a challenge URL. to and complete the step. to the next challenge and check the cursor position, it should be fine. the page (hard refresh) and check the cursor position again, it is now off. ! Doesn't seem to happen in Firefox or when I tried it in the JS curriculum. Is this reproducible for anyone else? The only PR I found briefly looking at the commits for the editor is Might be causing this? Edit: I tried reverting the code from the PR and it didn't seem to help so I'm guessing that isn't it. Honestly not sure what is causing it but it seems to have happened between the Feb 28 build and the later production build. Edit 2: For anyone reading this looking for a fix. A normal (soft) page refresh should fix it. Firefox seems unaffected. The cursor position should not be borked after a page reload. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] Forum:
couldn't replicate on edge version 111.0.1661.44 on chrome version 111.0.5563.65, I did have the issue tho, with some area isn't formatted correctly This picture from step 4 on cafe menu !
Make sure it is a hard refresh. I didn't think it would matter but it seems like it does. I will update the repro steps.
Forum report
Yeab, still show sometime in chrome , couldn't replicate on edge Don't need to reload btw, Edit: I forgot to mute system sounds
Added another forum report on this bug. I'm actually surprised we have not yet seen more reports of this bug. But I'm guessing it is because it doesn't seem to trigger when just going through the curriculum using the normal ways of advancing between challenge steps. But man when this bug hits you it makes helping with challenges on the forum an absolute nightmare.

I pretty much have to use Firefox (which I don't mind).
Thanks for opening this issue, and for all of the helpful details you provided to reproduce the issue. We've had one report of this issue in the support inbox so far. I wasn't able to reproduce the issue in Chrome on macOS, or in Chromium on an Ubuntu 22.04 VM. But I was able to reproduce the issue with your steps in Chrome on a Windows 11 VM. Once I did opened a challenge in Chrome on Windows and did a hard reload, the cursor position was off when I clicked into the editor or used the arrow keys to move around. The only fix I found is to do a regular reload of the page. Clicking the reset button in the UI, doing a hard reload, or right clicking on the reload button and selecting "Empty Cache and Hard Reload" didn't work on my end. Granted the VMs are ARM versions of Ubuntu and Windows running through Parallels, so that might have some effect on reproducing the issue and the workaround. if you do a regular reload of the page, is the cursor position fixed? Or is the position still off?
You are right, a normal reload does seem to fix it, at least 99% of the time (sometimes it takes two reloads). I guess because the opposite is usually the case I didn't even check it. I didn't think to look before, but the offset of the cursor position in the CSS is different and if you navigate using the arrow keys it doesn't jump the same amount of pixels between keyboard inputs (bugged cursor vs normal).
Wow, this is a weird bug. Just confirming as well that the only time I can trigger this is by doing a hard refresh (Shift + Reload button) using either Chrome or Edge on Win11. Firefox does not seem to be affected on Win11. None of these browsers seem to be affected on Linux. A soft refresh fixes the problem.
Had this happen to me too. Refreshing didn't help, had to move to Firefox for a while.
Could you give us more details about your setup, What browser were you using when you experienced this issue, and what version was it? Also, which OS are you running?
Chrome, latest version, Windows 10


Question: script(type='text/javascript', src='/js/lib/codemirror/mode/javascript/javascript.js') script(type='text/javascript', src='/js/lib/jailed/jailed.js') .row(ng-controller="pairedWithController") <del> .col-xs-12.col-sm-12.col-md-4.col-lg-3 </del> <ins> .col-md-4.col-lg-3 </ins> .scroll-locker(id = "scroll-locker") .innerMarginFix(style = "width: 99%;") #testCreatePanel.well

A camper relayed this to me: There is some problem with the first challenge ending button on android with firefox browser. And in this moment I tried in chrome too, the issue is the same, the button is not active after the challenge is done. Xperia Z1 compact, android: 5.0.2, firefox: 39.0 Chrome: 43.0.2357.93
This is an issue whenever the screen size is small. It will also happen on a desktop if you resize the window to half screen or less.


Question: testString: assert.strictEqual(largestPrimeFactor(5), 5); - text: largestPrimeFactor(7) should return 7. testString: assert.strictEqual(largestPrimeFactor(7), 7);  - text: largestPrimeFactor(8) should return 2. testString: assert.strictEqual(largestPrimeFactor(8), 2);  - text: largestPrimeFactor(13195) should return 29. testString: assert.strictEqual(largestPrimeFactor(13195), 29); - text: largestPrimeFactor(600851475143) should return 6857.

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: The last test times out on the given problem and needs to either be removed or replaced with a smaller number. Add a Link to the page with the problem: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
I think it's fair to require people to use efficient algorithms for this section, so I don't think that last test should be removed. Perhaps it's worth stressing (in the first few Euler challenges) that speed is a requirement. That said, the solution in the challenge is wrong: returns 4 when given 8. We should test for that. I think Is fast enough and (hopefully!) correct.
Yup. That works. I see the part about efficiency.
Cool, I think this is a good candidate for a first contribution.
Hello guys! Can I take this? as I understand the task is to update the solution block with a function that performs faster? Thank you!
Hi please do! If you could also add one more test that validates that that would be great, since the existing solution gets that wrong.
Cool, thank you! Will add that too


Question:
  --fcc-editable-region--
CatPhotoApp

Cat Photos

Click here to view more cat photos.
   --fcc-editable-region--

The catphotoapp project’s step 16 asks users to use a section element however if a user type Section as the tag name, the test rejects the code even though html tags are supposed to be case insensitive. It is expected that this code passes since the correct section element is being created. No response Not applicable Issue found on the forum