Translate tutor in other language

Hello everyone. I have installed Tutor and now I want to configure in my native language. I am from Romania but I didn’t find any folder for romanian language in neither in What do you advise me to do?

Hi @adrian! Only 39.5% of Open edX strings are translated to Romanian in Transifex: In openedx-i18n we only include languages for which at least 50% of strings are translated. Do you think you could contribute to Transifex to increase this ratio? If yes, we could add the Romanian locale to openedx-i18n

1 Like

Hi @regis now we are over 50% in romanian on transifex. Can you add please the locale to openedx-i18n?

:astonished: congratulations! This is very impressive.

You will need to get your translations in the “reviewed” state in order to have them pulled by the i18n_tool application. I swear this is not me acting as an evil gatekeeper… The tx pull command is hard-coded to pull only reviewed translations (see source code).
I guess we could use a hack to manually pull non-reviewed strings for the Romanian language, but I’m not sure we want to do that – generally speaking it’s good to have two pairs of eyes to look at changes in Open edX.

Do you know how to get in touch with the reviewers for the Romanian language? Their names are listed here.

In the mean time, I don’t want to prevent you from running Open edX in Romanian, so what I’ll do is that I’ll add the language in the openedx-i18n repo (and in Tutor). However, the next Open edX release (Koa) is scheduled for next week, so I don’t want to push new languages to the Juniper branch. Is it ok if the language is only available in Koa?

EDIT: When pulling ro strings in openedx-i18n I’m getting the following error message for some files: Skipping language ro due to used options. I’m afraid this is because the threshold of 3% reviewed translations is not reached for these files :confused:

Fixed now. We have reviewed above 50%. Can you please try again?
And after that I can get the translation after I will update tutor for Koa version right?

I’m getting the following problems compiling translations. Can you please fix those? Otherwise I can’t bundle them.

I think I have fixed them now. I don’t know where I can verify

Normally, you would simply have to checkout the openedx-i18n repo and run make all. Here it’s slightly more complicated because Romanian is not included in the package, yet. You have to uncomment the “- ro” line in edx-platform/locale/config-extra.yaml. Then run:

mkdir -p  ./edx-platform/locale/ro/LC_MESSAGES/

And finally run:

make all

There is one error left:

ro/LC_MESSAGES/django-partial.po:7352: a format specification for argument 'user' doesn't exist in 'msgstr'

Can you try again now?

I’m getting the following errors:

Different tags in source and translation
  msgid: All names, logos and seals ("Trademarks") that appear in the APIs, API
         Content, or on or through the services made available on or through
         the APIs, if any, are the property of their respective owners. You may
         not remove, alter, or obscure any copyright, Trademark, or other
         proprietary rights notices incorporated in or accompanying the API
         Content. If any {platform_name} Participant (as hereinafter defined)
         or other third party revokes access to API Content owned or controlled
         by that {platform_name} Participant or third party, including without
         limitation any Trademarks, you must ensure that all API Content
         pertaining to that {platform_name} Participant or third party is
         deleted from Your Application and your networks, systems and servers
         as soon as reasonably possible. "{platform_name_capitalized}
         Participants" means MIT, Harvard, and the other entities providing
         information, API Content or services for the APIs, the course
         instructors and their staffs.
  -----> Toate denumirile, siglele și sigiliile („mărci comerciale”) care apar
         în API-urile, conținutul API sau pe sau prin serviciile puse la
         dispoziție pe sau prin intermediul API-urilor, dacă există, sunt
         proprietatea proprietarilor respectivi. Nu puteți elimina, modifica
         sau ascunde orice notificare privind drepturile de autor, marca
         comercială sau alte drepturi de proprietate încorporate în sau care
         însoțesc conținutul API. Dacă un participant {platform_name} (așa cum
         este definit în continuare) sau o altă terță parte revocă accesul la
         conținutul API deținut sau controlat de acel participant
         {platform_name} sau terță parte, inclusiv fără limitare orice marcă
         comercială, trebuie să vă asigurați că tot conținutul API care se
         referă la acel { platform_name} Participant sau terță parte este șters
         din aplicația dumneavoastră și din rețelele, sistemele și serverele
         dumneavoastră cât mai curând posibil. „{platform_name_capitalized}
         Participanți” înseamnă MIT, Harvard și celelalte entități care
         furnizează informații, conținut API sau servicii pentru API-uri,
         instructorii cursului și personalul acestora.
  -----> "{ platform_name}" added

Different tags in source and translation
  msgid: Your {cert_name_long} is being held pending confirmation that the
         issuance of your {cert_name_short} is in compliance with strict U.S.
         embargoes on Iran, Cuba, Syria and Sudan. If you think our system has
         mistakenly identified you as being connected with one of those
         countries, please let us know by contacting {email}.
  -----> {Cert_name_long} dumneavoastră este reținut în așteptarea confirmării
         ca emiterea {cert_name_short} este conformă cu embargourile stricte
         ale SUA asupra Iranului, Cuba, Siriei și Sudanului. Dacă credeți că
         sistemul nostru v-a identificat în mod eronat ca fiind conectat cu una
         dintre aceste țări, vă rugăm să ne anunțați contactând {email}.
  -----> "{cert_name_long}" vs "{Cert_name_long}"

(these errors are a constant hassle and I wish there were a validation tool integrated with transifex)
(EDIT: oh wait I think there is one! TIL)

The transifex validation tool doesn’t show me any errors. I fixed the last one too. I hope now it works

There is still an error:’All+names%2C+logos+and+seals’
There remains an instance of { platform_name} instead of {platform_name}.

fixed and this. I have a feeling that I will owe you more than one beer

No worries :wink: I am updating the Docker image to include the Romanian translations, so you should just pull this image to get the new locale. The image should be ready in a couple minutes:

Thank you. You are doing a great job with tutor and forum. But firstly I have to update to last version to get te translation no? Like you said in the previous comments:

However, the next Open edX release (Koa) is scheduled for next week, so I don’t want to push new languages to the Juniper branch. Is it ok if the language is only available in Koa

Yes, if you upgrade to the latest release (v11.0.2) you will get the new translations automatically.

I am receiving an error when I am trying to upgrade from ironwood to Koa. I just run tutor local upgrade --from=ironwood but it seems that doesn’t work

Later edit: it’s down. I think I need to reinstall tutor again

You should never have to re-install tutor. This is a weird habit. Instead, just run tutor local quickstart and see what happens.

1 Like

Thank you. It works perfectly. You saved me from a lot of pain. Every time I had a similar issue I have reinstalled the platform. I will run upgrade again

I am facing the same error again at upgrade

 tutor local upgrade --from=ironwood                                  
 You are about to upgrade your Open edX platform. It is strongly recommended to make a backup before upgrading. To do so, run:

    tutor local stop
    sudo rsync -avr "$(tutor config printroot)"/ /tmp/tutor-backup/

In case of problem, to restore your backup you will then have to run: sudo rsync -avr /tmp/tutor-backup/ "$(tutor config printroot)"/

Are you sure you want to continue? [Y/n] y
        Upgrading from Ironwood
Environment generated in /home/edx/.local/share/tutor/env
        Stopping any existing platform
docker-compose -f /home/edx/.local/share/tutor/env/local/docker-compose.yml -f /home/edx/.local/share/tutor/env/local/ --project-name tutor_local stop
Stopping tutor_local_cms-worker_1    ... done
Stopping tutor_local_nginx_1         ... done
Stopping tutor_local_cms_1           ... done
Stopping tutor_local_lms-worker_1    ... done
Stopping tutor_local_lms_1           ... done
Stopping tutor_local_forum_1         ... done
Stopping tutor_local_mongodb_1       ... done
Stopping tutor_local_mysql_1         ... done
Stopping tutor_local_elasticsearch_1 ... done
Stopping tutor_local_smtp_1          ... done
Stopping tutor_local_memcached_1     ... done
Stopping tutor_local_rabbitmq_1      ... done
        Upgrading MongoDb from v3.2 to v3.4
Environment generated in /home/edx/.local/share/tutor/env
docker-compose -f /home/edx/.local/share/tutor/env/local/docker-compose.yml -f /home/edx/.local/share/tutor/env/local/ --project-name tutor_local up --remove-orphans -d mongodb
Recreating tutor_local_mongodb_1 ... done
docker-compose -f /home/edx/.local/share/tutor/env/local/docker-compose.yml -f /home/edx/.local/share/tutor/env/local/ --project-name tutor_local exec mongodb mongo --eval db.adminCommand({ setFeatureCompatibilityVersion: "3.4" })
MongoDB shell version v3.4.24
Error: Command failed with status 137: docker-compose -f /home/edx/.local/share/tutor/env/local/docker-compose.yml -f /home/edx/.local/share/tutor/env/local/ --project-name tutor_local exec mongodb mongo --eval db.adminCommand({ setFeatureCompatibilityVersion: "3.4" })

This solutions didn’t help me: