electerm multi-language support pack.
🇺🇸 🇨🇳 🇧🇷 🇷🇺 🇪🇸 🇫🇷 🇹🇷 🇯🇵 🇰🇷 🇹🇼 🇩🇪 🇮🇩
git clone git://github.com/electerm/electerm-locales.git
cd electerm-locales
npm i
cp config.sample.js config.js
npm start
# automatic sync locales/* to ../electerm/node_modules/electerm-locales/locales/ for test
# and add pre-push hook, do lint and test before every push
npm run test
# test only make sure all locale file keys and orders are match.
Just use locales/en_us.js
as a example, fork this repo, add your edit, then submit a pull request.
Make sure you run npm run test
before push.
To make the work easier, I have created a script to help creating a language file, it uses AI API translate API to translate all entry and create a new language file.
# get apiKey from deepseek.com
# lang={language code} apiKey={apiKey} node bin/create-new-lang.js
# then it will create a {language code}_{language code}.js in locales folder
# for example:
# this will create a German language file `locales/de_de.js`
lang=de apiKey=xxxx node bin/create-new-language-file-with-ai.js
# then you can review and edit to make sure every entry is right
You can certainly translate it one by one, I also provide a script to do it.
# entry="{level one entry name}" name="{the prop name}" text="{the text in original language}" apiKey={apiKey} node bin/translate-with-ai.js
# example:
entry=setting name=saveTerminalLogToFile text="save terminal log to file" node bin/translate-with-ai.js
# then it will add saveTerminalLogToFile entry to all language file in setting namespace with google translate
## remove a entry from all files
entry=setting name=disableSshHistory node bin/remove-slot.js
To update the value of an existing entry in all language files (for a given namespace and key), use the provided script:
# entry="{namespace}" name="{key}" data='{"en":"new English text", "zh-CN":"新的中文", ...}' node bin/update-entry.js
# Example: update the value for key "saveTerminalLogToFile" under "setting" namespace
entry=setting name=saveTerminalLogToFile data='{"en":"Save terminal log to file (updated)", "zh-CN":"保存终端日志到文件(已更新)"}' node bin/update-entry.js
# To limit update to specific languages (e.g., only English and Chinese):
entry=setting name=saveTerminalLogToFile to="en,zh-CN" data='{"en":"Save terminal log to file (updated)", "zh-CN":"保存终端日志到文件(已更新)"}' node bin/update-entry.js
The script will throw an error if the key does not exist in any file.
cp sample.env .env
# then edit .env, add socks proxy
- 🇺🇸 English: @zxdong262
- 🇨🇳 简体中文: @zxdong262
- 🇧🇷 Português do Brasil: @Meirinaldo Júnior
- 🇷🇺 русский: @Vasiliy
- 🇪🇸 Español: Federico Pereira fpereira@cnsoluciones.com
- 🇫🇷 Français: @Damien Mosse
- 🇹🇷 Türkçe: @Nazım Gediz Aydınoğmuş
- 🇹🇼 繁體中文: @ycku
- 🇯🇵 日本語: @hououinkami
- 🇰🇷 한국어: @jooy2
- 🇩🇪 german: @Hope-IT-Works
- 🇮🇩 Bahasa Indonesia: @hazekezia
- 🇵🇱 Polski: @milocha
https://github.com/electerm/electerm-locales/graphs/contributors