- Open this file "client\src\store\language.js"
- modify the "default" in the lang variable with your ISO 3166 Alpha-2 code :
for example from english as default
import { atom } from 'recoil';
const lang = atom({
key: 'lang',
default: 'en',
});
export default { lang };
to italian as dafult
import { atom } from 'recoil';
const lang = atom({
key: 'lang',
default: 'it',
});
export default { lang };
- Good knowledge of the language (some terms may undergo significant changes during translation)
- An editor, which can be Notepad or (recommended: VSCode)
- Fork the LibreChat repository and download it using git clone https://github.com/danny-avila/LibreChat
- 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/** ';
For example, let's take English as an example:
Note: Replace "LanguageName" with the name of your language (capitalized) and "**" with the ISO 3166 Alpha-2 code of your country (the initial of the nation). If you don't know the ISO 3166 code for your language, check it here and also use it with an initial capital)
- Further down in the code, add the following
if (langCode === '**') return Language-name;
Replace "**" with the ISO 3166 Alpha-2 code of your language (in lowercase). Here's an example: if (langCode === 'en') return English;
)
- Go into the "languages" folder and create a file named as follows: **.tsx
For example: En.tsx
- Copy all the content from En.tsx into your file and modify it as follows:
// your-language-name phrases
export default {
com_ui_examples: 'Examples',
// Add more translations here
Rename only the part after the colon ":" to the corresponding translation in your language. For example:
// my-language phrases
export default {
com_ui_examples: 'WORD_THAT_I_TRANSLATE_IN_TO_MY_LANGUAGE',
// Add more translations here
};
- To add your language to the menu, open the file "client\src\components\Nav\SettingsTabs\General.tsx" and add your language to the "LangSelector" variable in the following way:
export const LangSelector = ({
//other code
<option value="en">{localize(lang, 'com_nav_lang_english')}</option>
//other languages...
<option value="**">{localize(lang, 'com_nav_lang_your-language-name')}</option>
</select>
</div>
);
};
where ** is the ISO 3166 Alpha-2 code and "com_nav_lang_your-language-name" stands for the name in your language (for example com_nav_lang_english or com_nav_lang_italian) The only line of code to add is:
<option value="**">{localize(lang, 'com_nav_lang_your-language-name')}</option>
- Commit your changes using git add *, git commit -m "Language translation: your-language translation" and git push.
- Open your repository in a browser and click on "Contribute"
- Answer all the questions, and in the "Type of Change" section, add
- [x] Translation support
- Create a pull request 🎉