Cling is a real-time CLI chat application designed to bridge language barriers by connecting people from different parts of the world and enabling them to collaborate without worrying about the language barrier. It leverages the power of the OpenNMT ArgoTranslate machine-learning model for real-time message translation and the Ably Realtime Framework
for a seamless communication experience.
Cling supports the following languages :
- English (en)
- Hindi (hi)
- French (fr)
- German (de)
- Italian (it)
- Polish (pl)
- Spanish (es)
- Russian (ru)
- Spanish (es)
- Japanese (ja)
- Chinese (zh)
Before you get started with Cling, ensure you have the following prerequisites installed:
Follow these steps to set up the Cling project
- Run the LibreTranslate Docker container to load supported languages
docker run -it -p 5000:5000 libretranslate/libretranslate --load-only en,hi,fr,de,it,pl,es,ru,ja,zh
- Clone the Cling repository
git clone https://github.com/yrs147/cling-ably.git
cd cling-ably
-
Get your
ABLY_KEY
and add it to the.env
file -
Add the Dependencies
go mod tidy
- Build the binary
go build -o cling
- Run Cling
./cling -u <username> -r <roomname> -l <preferredlanguage>
Cling offers the following command and flags:
Usage: cling [flags]
A CLI chat app using Ably
Flags:
-h, --help Help for cling
-u, --username Your username for the chat (default "defaultUsername")
-r, --room Chat room code (default "defaultRoomCode")
-l, --language Chat room language code (default "en")
username (-u)
: Set your username for the chat (default is "defaultUsername").room (-r)
: Set the chat room code (default is "defaultRoomCode").language (-l)
: Set the chat room language code (default is "en").