Start Translating

When you want to work on any of the translations, we encourage you to leave a comment like "Working on it" on the open/ongoing translation issues. This will notify contributors about your interest in translating that part of the curriculum.


  • Check the technical steps in this guide for doing translations.

  • After this you will have up to 15 days to create a Pull Request with the proposed translation or updating an existing one.

  • We invite you to check the directories and files in seeds/challenges for doing translations.

Pro Tip : Remember to discuss your progress in chat rooms. Being active in the chat, reflects that you are working on it!

Technical procedure to create a translated file

  1. Install Git on your computer and create an account on GitHub if you don’t already have one.

  2. From your GitHub account fork FreeCodeCamp’s repository ( That’s it! Now, you have a fork of the original repo under your account.

Forking Free Code Camp's Repository

  1. Launch the terminal and clone a local copy of your fork to your computer (replacing the word USERNAME with your github account’s username):
git clone --depth=1
cd FreeCodeCamp
  1. On GitHub, go to the Issues Section of the FreeCodeCamp repository and look for the open translation issues. Leave a comment similar to "Working on it" if no one else appears to be already working on it (or has been inactive for over 2 weeks).

Leaving a comment on a translation issue

  1. In your forked repository, create a branch with a name such as "translate/Lg-translation-XXX-YYY" where Lg is the abbreviated name of the language you’re working on, and XXX-YYY is the name of the file you’re going to modify.
git checkout -b translate/Es-translation-basic-javascript

In the example above Es is the language code for Español (Spanish) and basic-javascript is the name of the JSON file that is to be translated. Refer the list of Two letter codes for your language, for clarification.

  1. Find the JSON file in the seeds/challenges directory for the challenge you want to translate. Modify the JSON by adding the name of the challenge in "titleLg" and its description in "descriptionLg", where "Lg" is the language of your choice (explained above).

Modifying Challenge JSON

You can verify the JSON syntax by copying and pasting the contents of the file into

  1. When you’re done, commit your changes with a brief description in English (regardless of the language). Afterwards, you can push the changes to your fork:
git commit -m "Challenges of Basic Javascript translated into Spanish" seed/challenges/basic-javascript.json
git push origin add/Es-translation-basic-javascript

If you think that you can’t continue for a while with a translation, you can leave a comment on the same issue, indicating that another person should continue. You can push your incomplete changes so the next person won’t duplicate your hard work.

Back to Translations Guide