Beta test of translations

I’m currently translating the basic Javascript lessons into french. I translate in the order of the lessons, because it is the first programming course for beginners and I want to respect beginners understanding of vocabulary.

But working like this is slow.
Is it possible to have something like a beta test to play with the already translated lessons ? this way, I would show the translating lessons to my teenagers boys and to others from various speaking french countries. This would help to check the progressive vocabulary because there is a lot of “frenchglish” terms in programming.

And of course the real secret reason is to teach JavaScript to my sons and to be proud of my work and get a lot of motivation to translate faster and further.

Hi @zeroheure

Thanks a lot for helping us translate freeCodecamp’s resources to French and sorry about the delay in getting back to you on your query.

We are excited to know that you are helping your kids learn JavaScript, and I am pretty sure they are proud of you.

Now coming back to your query:

  • While it is technically possible for us to have a test/staging instance for beta testing different world languages, it’s a bit expensive to operate on our end in terms of cost & man-hours needed to maintain the infrastructure supporting those languages. We talk about this a bit in our translations guide which you should read here:

  • However, given your specific use case, you should be able to build and show the curriculum translated in any language of your choice on your own computer locally. Please note that it will involve some tinkering with the codebase.

If you would be interested in this and are brave to plough through some challenges of setting up a new language we will be more than happy to assist you.

Also, we have a couple of chat rooms that you should join regardless (if you haven’t already), since you are already in the process of translating:

  1. Contributors Chat Room:
  2. Translations Chat for French-speaking community:
1 Like

Hi @raisedadead

Thanks for the URLs of the chat rooms, I didn’t know there was a french one.

I’ve read the DevOps Handbook on Github and browsed around the code. I will try to build a translated curriculum for myself.

Thanks for the help.
Best regards

You do not need to worry about reading the DevOps guide. But you should definitely read the “Set up freeCodeCamp locally” guide from our contributing documentation.

Once you have that up and running on your local machine, you should be able to play with these environment variables in your .env files:

The CLIENT_LOCALE displays the UI strings (Buttons, Labels, Menu Items, etc.) in a world language of your choice and CURRICULUM_LOCALE is for the curricular content.

These translated strings are used from different locations in the codebase and hence are independent. It would help if you started by only using the CURRICULUM_LOCALE one.

Just follow the lead of looking up chinese and/or espanol in the codebase and you will get the idea of how to include french as an available language.


Please note that before you change the variables, the translated content must be in the code repository (your local machine’s freeCodeCamp project folder) first.

To explain this better, you will notice that if you look at the directory structure here, you can see we have one directory per world language. In your case, French will not exist yet in these directories, and you will have to create that.

Normally, once we pull down the translations from our Translations tool - Crowdin, all of this will be handled automatically, but you would have to get those files there for your tinkering needs manually. You can take inspiration from Chinese and Espanol folders if you are interested.

While it’s OK that you try this in testing, please note that we require all translations to come to us via Crowdin only, meaning we will not accept PRs made by adding code to the repo directly for QA reasons.

Also, there is a similar setup for the UI strings too.

In any case the best way to translate effectively is to use Crowdin, but the above pointers should get you your own copy of the codebase running for demo purposes.

Let us know in the Contributors chat if you need further help, referencing this thread and someone will be able to help you.

Cheer & Good luck.