# How to translate indigo theme in different languages? I have to translate my home page http://local.edly.io:8000/ and http://local.edly.io:8000/courses

**URL:** <https://discuss.openedx.org/t/how-to-translate-indigo-theme-in-different-languages-i-have-to-translate-my-home-page-http-local-edly-io-8000-and-http-local-edly-io-8000-courses/13324>\
**Category:** Tutor Help\
**Tags:** api, how-to, devstack, tutor, tutor-indigo\
**Created:** [July 4, 2024, 6:56am UTC](https://discuss.openedx.org/t/how-to-translate-indigo-theme-in-different-languages-i-have-to-translate-my-home-page-http-local-edly-io-8000-and-http-local-edly-io-8000-courses/13324 "2024-07-04T06:56:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ronak\_Pansuriya1](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/ronak_pansuriya1/32/6909_2.png) [@Ronak\_Pansuriya1](https://discuss.openedx.org/u/Ronak_Pansuriya1)\
**Post date:** [July 4, 2024, 6:56am UTC](https://discuss.openedx.org/t/how-to-translate-indigo-theme-in-different-languages-i-have-to-translate-my-home-page-http-local-edly-io-8000-and-http-local-edly-io-8000-courses/13324/1 "2024-07-04T06:56:38Z")

</div>

Hey @community, I am new here. I am working on a Tutor and the indigo theme. I am trying to translate my whole platform in different languages. MFE is translating properly, but problem is my indigo theme is not translating.

Does anyone know how to translate the indigo theme?

I want to translate my home page [http://local.edly.io:8000/](http://local.edly.io:8000/) which is comes from indigo theme.

Thank you in advance

---

<div class="post-metadata">

**Author:** ![hinakhadim](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/hinakhadim/32/5954_2.png) [@hinakhadim](https://discuss.openedx.org/u/hinakhadim)\
**Post date:** [July 8, 2024, 5:22am UTC](https://discuss.openedx.org/t/how-to-translate-indigo-theme-in-different-languages-i-have-to-translate-my-home-page-http-local-edly-io-8000-and-http-local-edly-io-8000-courses/13324/2 "2024-07-08T05:22:44Z")

</div>

Hi @Ronak_Pansuriya1 ,  
There is no direct way to do this. You can follow below steps for translations:

- Create a folder `tutor-indigo/tutorindigo/conf/locale/en/LC_MESSAGES`.
- Mount indigo theme to lms container at this path `edx-platform/themes`
- Run command `make extract_translations` in lms container
- Now, Navigate to `edx-platform/conf/locale/en/LC_MESSAGES` and copy the translations of indigo theme.
- Paste the translations there into a new `django.po` file in `tutor-indigo/tutorindigo/conf/locale/en/LC_MESSAGES`.
- Now, tutor config save and start. It will pick the translations automatically.

---

<div class="post-metadata">

**Author:** ![abylaikhan.suev.02](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/abylaikhan.suev.02/32/7694_2.png) [@abylaikhan.suev.02](https://discuss.openedx.org/u/abylaikhan.suev.02)\
**Post date:** [April 4, 2025, 10:50am UTC](https://discuss.openedx.org/t/how-to-translate-indigo-theme-in-different-languages-i-have-to-translate-my-home-page-http-local-edly-io-8000-and-http-local-edly-io-8000-courses/13324/3 "2025-04-04T10:50:06Z")

</div>

You can fork **openedx-translations** like I did:

> **[GitHub - boomboom0202/openedx-translations: Open edX Translation files in sync with Transifex](https://github.com/boomboom0202/openedx-translations)**
>
> Open edX Translation files in sync with Transifex

Then, add your translations there and update the `config.yml` to point to your fork instead of the default:  
`https://github.com/openedx/openedx-translations` → `https://github.com/{username}/openedx-translations`

ATLAS\_REPOSITORY: boomboom0202/openedx-translations  
ATLAS\_REVISION: main

---

<div class="post-metadata">

**Author:** ![Ivor\_Scott](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/ivor_scott/32/6346_2.png) [@Ivor\_Scott](https://discuss.openedx.org/u/Ivor_Scott)\
**Post date:** [July 31, 2025, 8:48pm UTC](https://discuss.openedx.org/t/how-to-translate-indigo-theme-in-different-languages-i-have-to-translate-my-home-page-http-local-edly-io-8000-and-http-local-edly-io-8000-courses/13324/4 "2025-07-31T20:48:29Z")

</div>

Here’s how I solved this.

```auto
 Preview of my project directory structure:
 
 - tutor/
   - data/
   - env/
   - config.yml

 - tutor-plugins/
   - tutor-indigo/ # clone of original repository

```

**1. Create django.po file for tutor-indigo translations.**

Create `tutor-plugins/tutor-indigo/tutorindigo/locale/de_DE/LC_Messages/django.po`.

Then add a translation:

```auto
# #-#-#-#-# header #-#-#-#-#

msgid ""
msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

# #-#-#-#-# header #-#-#-#-#

msgid "Discover courses"
msgstr "Kurse suchen"

```

_ **Note:** If you don’t add a header entry with the charset specification, as soon as your django.po file starts to references non ASCII characters, translation compilation breaks. msgfmt tries to warn you:_  
`msgfmt: input file doesn't contain a header entry with a charset specification`

**2. Install `gettext` tools and compile translations.**

(MacOS)

`brew install gettext`

(Ubuntu/Debian)

`sudo apt update `  
`sudo apt install gettext`

**Compile translations**

`msgfmt django.po -o django.mo`

_ **Note:** msgfmt comes from gettext tools_

**3. Copy translations directory to Docker Build context (manually).**

```auto
cp -R "./tutor-plugins/tutor-indigo/tutorindigo/locale" "tutor/env/build/openedx"

```

_ **Note:** I was hesitant to do this at first because I thought this entire build/openedx directory rebuilt for every `tutor config save run`—not the case (however build/openedx/Dockerfile does)._

**4. Patch the Dockerfile.**

Since I already have the tutor-indigo plugin, I just updated it’s `plugin.py` file.

```auto
hooks.Filters.ENV_PATCHES.add_item((
   "openedx-dockerfile-pre-assets",
   """
COPY --chown=app:app ./locale /openedx/extra_locale
""" ))

```

_ **Note:** We patch at openedx-dockerfile-pre-assets. At this point in the dockerfile the app user is already created and the default edx translations are pulled and compiled. Also our translations are already in the Docker build context (tutor/env/build/openedx) so we can safely copy the locale directory into the image filesystem._

**5.**  **Patch the `lms.env.yml` and `cms.env.yml` configs.**

```auto
hooks.Filters.ENV_PATCHES.add_item((
    “lms-env”,
    “”"
LOCALE_PATHS: [“/openedx/extra_locale”]
“”"))

```

```auto
hooks.Filters.ENV_PATCHES.add_item((
    “cms-env”,    
    “”"
LOCALE_PATHS: [“/openedx/extra_locale”]
“”"))

```

_ **Note:** This helps edx find additional translations to use._

**6. Install the plugin. Build the openedx image. Restart the containers.**

```auto
pip install "./tutor-plugins/tutor-indigo"
tutor plugins enable indigo
tutor images build openedx
tutor local reboot

```
