/cling-ably

A Multilingual Real-Time CLI Chat App

Primary LanguageGoOtherNOASSERTION

Cling

cling-removebg-preview (1)

Screenshot

Screenshot 2023-11-02 at 1 40 13 AM

Overview

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.

Supported Languages

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)

Prerequisites

Before you get started with Cling, ensure you have the following prerequisites installed:

Setup

Follow these steps to set up the Cling project

  1. 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
  1. Clone the Cling repository
git clone https://github.com/yrs147/cling-ably.git
cd cling-ably
  1. Get your ABLY_KEY and add it to the .env file

  2. Add the Dependencies

go mod tidy

  1. Build the binary
go build -o cling
  1. Run Cling
./cling -u <username> -r <roomname> -l <preferredlanguage>

Command and Flags

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").