> For the complete documentation index, see [llms.txt](https://gdplabs.gitbook.io/glchat/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gdplabs.gitbook.io/glchat/sdk/resources/glchat-white-label/website-white-label/internationalization-and-localization.md).

# Internationalization and Localization

<details>

<summary>Prerequisites</summary>

This example specifically requires completion of all setup steps listed on the following White Label sub-pages:

1. [Prerequisites](/glchat/sdk/resources/glchat-white-label/website-white-label/prerequisites.md) page.
2. [Installation](/glchat/sdk/resources/glchat-white-label/website-white-label/installation.md) page.

</details>

GLChat UI uses JSON files to store translations. By default, GLChat UI supports English (`en`) and Indonesian (`id`).

Translation list for `en` (this is a TypeScript file):

{% file src="/files/LuLFnYvSydn9N93uEWRv" %}

Translation list for `id`:

{% file src="/files/qIUGgZNJ1SquGDnOoj8f" %}

You can override the translation by providing your own JSON file. For example, you can create the following JSON file to change the copywriting for disclaimer section.

```json
{
  "en": {
    "error": {
      "badRequest": {
        "title": "We're sorry but there's been an error",
        "description": "We couldn't process your request. Please try again.",
        "button": "Retry here"
      }
    }
  },
  "id": {
    "error": {
      "badRequest": {
        "title": "Ada masalah",
        "description": "Kami tidak dapat memproses permintaan tersebut. Silakan coba lagi.",
        "button": "Ulangi lagi"
      }
    }
  }
}
```

To make GLChat UI use the above JSON file, host it in a URL accessible by GLChat UI container image and then add the following environment variable into GLChat UI docker container:

```bash
# Adjust http://localhost:8080/i18n.json with your actual URL that returns the JSON file
CUSTOM_I18N_URL=http://localhost:8080/i18n.json
```

If you recreate the GLChat UI docker container and visit `http://localhost:3000` you will see that the copy writing has changed:

<figure><img src="/files/IA9ymSDEPXohPRL9YkLa" alt=""><figcaption></figcaption></figure>

If you want to check the `id` translation, visit `http://localhost:3000/id` .
