2023-12-22 08:36:42 -05:00
---
title: 🌍 Contribute a Translation
2023-12-28 17:10:06 -05:00
description: How to add a new language to LibreChat.
2023-12-22 08:36:42 -05:00
weight: -8
---
2023-08-26 19:36:25 -04:00
# How to add a new language to LibreChat 🌍
## Minimum Requirements:
1. Good knowledge of the language (some terms may undergo significant changes during translation)
2. A text editor is required. While options like Notepad or Notepad++ are available, it is recommended to use ** [VSCode ](https://code.visualstudio.com/download )** as it is more suitable for this task..
## Language Translation
### Preparation
2024-03-25 07:26:43 -04:00
Fork the [LibreChat repository ](https://github.librechat.ai ) and download it using git clone. See: [Getting Started for Contributors - GitHub ](./how_to_contribute.md#github )
2023-08-26 19:36:25 -04:00
### Add your language to `Translation.tsx`:
- Navigate to the `client\src\localization` folder and open the `Translation.tsx` file
- At the beginning of the code, add your language below all the others in this format:
`import Language-name from './languages/** ';`
2023-10-11 22:37:42 +02:00
2023-08-26 19:36:25 -04:00
Example (English):`import English from './languages/Eng';`
2023-10-11 22:37:42 +02:00
- Further down in the code, add in the language mapping, the following:
`'**-**': LanguageName,`
2023-08-26 19:36:25 -04:00
2023-10-11 22:37:42 +02:00
> Replace `**-**` with the local identifier of your language (ask ChatGPT or search it on Google).
2023-08-26 19:36:25 -04:00
2023-10-11 22:37:42 +02:00
> Replace `LanguageName` with the name of your language.
2023-08-26 19:36:25 -04:00
2023-10-11 22:37:42 +02:00
Example (English): `'en-US': English,`
2023-08-26 19:36:25 -04:00
### Create your new language file
- Go into the `client\src\localization\languages` folder and create a file named as follows: `**.tsx`
Example: `Eng.tsx`
- Copy all the content from `Eng.tsx` into your file and modify it as follows:
2024-03-25 07:26:43 -04:00
```js title="Eng.tsx"
2023-08-26 19:36:25 -04:00
// your-language-name phrases
export default {
com_ui_examples: 'Examples',
// more translations here...
```
__Translate only the part after the `:`.__
Example:
2024-03-25 07:26:43 -04:00
```js title="**.tsx (new language)"
2023-08-26 19:36:25 -04:00
// my-language phrases
export default {
com_ui_examples: 'This is a translated example',
// Add more translations here
};
```
2024-03-25 07:26:43 -04:00
!!! warning
Do not modify the `com_...` part
2023-08-26 19:36:25 -04:00
2024-03-25 07:26:43 -04:00
!!! success "Important:"
- Delete the Language list after `com_nav_setting_general: 'General',` near the bottom of the file (You do not need to translate the individual language names)
- Do not delete `com_nav_setting_data: 'Data controls'` (you need to translate it)
2023-08-26 19:36:25 -04:00
### Add your language to `Eng.tsx`
Open `Eng.tsx` and add your language to the language list in the bottom of the document.
### Add your language to the menu
2024-03-25 07:26:43 -04:00
- Navigate to the file `client\src\components\Nav\SettingsTabs\General.tsx` .
- Add your language to the `LangSelector` variable in the following way:
2023-08-26 19:36:25 -04:00
2024-03-25 07:26:43 -04:00
```js title="LangSelector"
2023-08-26 19:36:25 -04:00
export const LangSelector = ({
//other code
2023-10-11 22:37:42 +02:00
< option value = "en-US" > {localize(lang, 'com_nav_lang_english')}< / option >
2023-08-26 19:36:25 -04:00
//other languages...
< option value = "**" > {localize(lang, 'com_nav_lang_your-language-name')}< / option >
< / select >
< / div >
);
};
```
2024-03-25 07:26:43 -04:00
!!! note
`**-**` is the local identifier of your language and `com_nav_lang_your-language-name` stands for the name of your language.
Example: `com_nav_lang_english` or `com_nav_lang_italian`
2023-08-26 19:36:25 -04:00
**You should only need to add one line of code:**
```js
2023-10-11 22:37:42 +02:00
< option value = "**-**" > {localize(lang, 'com_nav_lang_your-language-name')}< / option >
2023-08-26 19:36:25 -04:00
```
### Summary
2024-03-25 07:26:43 -04:00
If you followed everything you should have ^^**one new file**^^ and ^^**3 modified files**^^:
2023-08-26 19:36:25 -04:00
```bash
2024-03-25 07:26:43 -04:00
new file: client/src/localization/languages/**.tsx < -----new language
modified: client/src/components/Nav/SettingsTabs/General.tsx
modified: client/src/localization/Translation.tsx
modified: client/src/localization/languages/Eng.tsx
2023-08-26 19:36:25 -04:00
```
2024-03-25 07:26:43 -04:00
!!! tip
You can confirm this by using the following command: `git status`
2023-08-26 19:36:25 -04:00
### Commit and create a new PR
2024-03-25 07:26:43 -04:00
See: [Make a PR ](./how_to_contribute.md#make-a-pull-request-pr )
2023-08-26 19:36:25 -04:00
2024-03-25 07:26:43 -04:00
!!! success "Pull Request"
- Answer all the questions, and in the "Type of Change" section, check `- [x] Translation update`
- **Delete irrelevant comments** from the PR template
- Create a pull request 😎