All Projects → varnamproject → govarnam

varnamproject / govarnam

Licence: other
Easily Type Indian Languages on computer and mobile. GoVarnam is a cross-platform transliteration library. Manglish -> Malayalam, Thanglish -> Tamil, Hinglish -> Hindi plus another 10 languages. GoVarnam is a near-Go port of libvarnam

Programming Languages

go
31211 projects - #10 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to govarnam

Lipika Ime
Input Method Engine (IME) for Mac OS X with built-in support for all Indic Languages
Stars: ✭ 76 (-21.65%)
Mutual labels:  keyboard, ime, input-method, transliteration
YouTube to m3u
Grab .m3u8 from YouTube live channels and makes .m3u IPTV Playlist from various languages and Events. Tamil / Malayalam / English / Hindi / French / Kids / Sports / Urudu etc.
Stars: ✭ 48 (-50.52%)
Mutual labels:  malayalam, hindi, tamil
Teleprinter
The missing Android keyboard API
Stars: ✭ 33 (-65.98%)
Mutual labels:  keyboard, ime
Hallelujahim
hallelujahIM(哈利路亚 英文输入法) is an intelligent English input method with auto-suggestions and spell check features, Mac only.
Stars: ✭ 1,334 (+1275.26%)
Mutual labels:  keyboard, input-method
Powerkey
Remap your Macbook's power key to Forward Delete
Stars: ✭ 212 (+118.56%)
Mutual labels:  keyboard, mac
jyutping
Cantonese Jyutping Keyboard for iOS. 粵語粵拼輸入法鍵盤
Stars: ✭ 23 (-76.29%)
Mutual labels:  keyboard, input-method
Florisboard
An open-source keyboard for Android which respects your privacy. Currently in early-beta.
Stars: ✭ 882 (+809.28%)
Mutual labels:  keyboard, input-method
Mac Keyboard Brightness
🔆 Programmatically get & set the keyboard & display backlight brightness on Macs. Flash your keyboard to the music! (only works on <2015 Macs)
Stars: ✭ 185 (+90.72%)
Mutual labels:  keyboard, mac
Rime Double Bopomo
Double bopomo(ẑù-yīn), A Chinese Input Method for Taiwanese, ẑù-yīn users.雙碼注音,給注音使用者的雙拼輸入法。不需要額外學習漢語拼音。如果覺得不錯請幫我多多推廣宣傳。(繁體、中文、雙拼、輸入法、臺灣、正體)
Stars: ✭ 58 (-40.21%)
Mutual labels:  ime, input-method
ukrainian-typographic-keyboard
Combined Ukrainian keyboard layout with typographic symbols
Stars: ✭ 356 (+267.01%)
Mutual labels:  keyboard, mac
vi-rs
Vietnamese Input Method library
Stars: ✭ 69 (-28.87%)
Mutual labels:  ime, input-method
NavilIME
Windows Hangul (Korean) Input Method Editor based on TSF
Stars: ✭ 79 (-18.56%)
Mutual labels:  keyboard, ime
Swim
A command line tool to switch the current input method by identifier for macOS.
Stars: ✭ 39 (-59.79%)
Mutual labels:  mac, input-method
Kime
Korean IME
Stars: ✭ 208 (+114.43%)
Mutual labels:  ime, input-method
Ibus Unikey
Vietnamese IM Engine for ibus
Stars: ✭ 111 (+14.43%)
Mutual labels:  ime, input-method
Autokbisw
Automatic keyboard/input source switching for OSX
Stars: ✭ 176 (+81.44%)
Mutual labels:  keyboard, input-method
Wubi Lex
WIN10系统自带五笔的码表与短语词库安装、管理工具( 可将五笔替换为郑码等其他形码输入法 ),并可增强微软五笔的设置、热键等功能。 发布后的软件仅890KB, 只要一个EXE文件( 绿色免安装 )。软件已自带五笔86、98、091、新世纪码表,以及极点五笔、QQ五笔、 微软五笔默认词库、昱琼词库、海峰词库等。甚至自带了郑码大词库、可以一键把微软五笔替换为郑码输入法。
Stars: ✭ 385 (+296.91%)
Mutual labels:  ime, input-method
Avim
Vietnamese input method extension (IME) for Firefox, Thunderbird, SeaMonkey, Komodo, etc. — bộ gõ tiếng Việt dành cho Firefox, Thunderbird, SeaMonkey, Komodo, …
Stars: ✭ 41 (-57.73%)
Mutual labels:  ime, input-method
theedhum-nandrum
A sentiment classifier on mixed language (and mixed script) reviews in Tamil, Malayalam and English
Stars: ✭ 16 (-83.51%)
Mutual labels:  malayalam, tamil
Onion Rime Files
電腦 Rime 洋蔥方案(注音、雙拼、拼音、形碼、行列30)
Stars: ✭ 88 (-9.28%)
Mutual labels:  ime, input-method

Varnam

Varnam is an Indian language transliteration library. GoVarnam is a brand new Go port of libvarnam with some core architectural changes.

It is stable to use daily as an input method. Try out different languages here: https://varnamproject.github.io/editor/

Malayalam has really good support in Varnam. We welcome improvements of all languages in Varnam.

Installation & Usage

See instructions in website: https://varnamproject.github.io/download/

FAQ: https://varnamproject.github.io/docs/faq/


Development

Proceed through these sections one by one:

Videos

See this video to understand more about Varnam (DebConf21):

Files & Folders

  • govarnam - The library files
  • main.go, c-shared* - Files that help in making the govarnam a C shared library
  • govarnamgo - Go bindings for the library. For use with other Go projects
  • cli - A CLI tool written in Go for Varnam. Uses govarnamgo to interface with the library.

Build Library

Requires minimum Go version 1.16.

This repository have 3 things :

  1. GoVarnam library
  2. GoVarnam Command Line Utility (CLI)
  3. Go bindings for GoVarnam

GoVarnam is written in Go, but to be a standard library that can be used with any other programming languages, we compile it to a C library. This is done by :

go build -buildmode "c-shared" -o libgovarnam.so

(Shortcut to doing above is make library)

The output libgovarnam.so is a shared library that can be dynamically linked in any other programming languages using its header file libgovarnam.h. Some examples :

Wait, it means we need to write another Go file to interface with GoVarnam library ! This is because we're interfacing with a C shared library and not the Go library directly. The govarnamgo acts as this interface for Go apps to use GoVarnam.

CLI (Command Line Utility)

After making libgovarnam.so you can make the CLI to use GoVarnam :

make cli

The command line utility (CLI) is written in Go, uses govarnamgo to interface with the library.

You can build both library and CLI with just make.

Language Support

Varnam uses a .vst (Varnam Symbol Table) file for language support. You can get it from it from schemes folder in a release. Place VST files in one of these locations (from high priority to least priority locations):

  • $PWD/schemes (PWD is Present Working Directory)
  • /usr/local/share/varnam/schemes
  • /usr/share/varnam/schemes

Now we can use varnamcli:

# Show linker the path to search for libgovarnam.so
export LD_LIBRARY_PATH=$(realpath ./):$LD_LIBRARY_PATH

./varnamcli -s ml namaskaaram

The ml above is the scheme ID. It should match with the VST filename.

You can link the library to /usr/local/lib to skip doing the export LD_LIBRARY_PATH every time:

sudo ln -s $PWD/libgovarnam.so /usr/local/lib/libgovarnam.so

Now any software can find the GoVarnam library.

Testing

You can run tests (to make sure nothing broke) with :

make test

Use Varnam Live

It's good to install an IME to test changes you make to the library live.

Changes from libvarnam

  • ml.vst has been changed to add a new weight column in symbols table. Get the new ml.vst here. The symbol with the least weight has more significance. This is calculated according to popularity from corpus. You can populate a ml.vst with weight values by a Python script. See that in the subfolder. The previous ruby script is used for making the VST. That is the same. ml.vst from libvarnam is incompatible with govarnam.

  • patterns_content is renamed to patterns in GoVarnam

  • patterns table in learnings DB won't store malayalam patterns. Instead, for each input, all possible malayalam words are calculated (from symbols VARNAM_MATCH_ALL) and searched in words. These are returned as suggestions. Previously, pattern would store every pattern to a word. english => malayalam.

  • patterns in govarnam is used solely for English words. Computer => കമ്പ്യൂട്ടർ. These English words won't work out with our VST tokenizer cause the words are not really transliterable in our language. It would be kambyoottar => Computer

Release Process

  • Update version in constants.go
  • git tag
  • make build release
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].