All Projects → ZeroX-DG → vi-rs

ZeroX-DG / vi-rs

Licence: MIT license
Vietnamese Input Method library

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to vi-rs

Wubi Lex
WIN10系统自带五笔的码表与短语词库安装、管理工具( 可将五笔替换为郑码等其他形码输入法 ),并可增强微软五笔的设置、热键等功能。 发布后的软件仅890KB, 只要一个EXE文件( 绿色免安装 )。软件已自带五笔86、98、091、新世纪码表,以及极点五笔、QQ五笔、 微软五笔默认词库、昱琼词库、海峰词库等。甚至自带了郑码大词库、可以一键把微软五笔替换为郑码输入法。
Stars: ✭ 385 (+457.97%)
Mutual labels:  ime, input-method
Onion Rime Files
電腦 Rime 洋蔥方案(注音、雙拼、拼音、形碼、行列30)
Stars: ✭ 88 (+27.54%)
Mutual labels:  ime, input-method
govarnam
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
Stars: ✭ 97 (+40.58%)
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 (-40.58%)
Mutual labels:  ime, input-method
Rime Double Bopomo
Double bopomo(ẑù-yīn), A Chinese Input Method for Taiwanese, ẑù-yīn users.雙碼注音,給注音使用者的雙拼輸入法。不需要額外學習漢語拼音。如果覺得不錯請幫我多多推廣宣傳。(繁體、中文、雙拼、輸入法、臺灣、正體)
Stars: ✭ 58 (-15.94%)
Mutual labels:  ime, input-method
Ibus Unikey
Vietnamese IM Engine for ibus
Stars: ✭ 111 (+60.87%)
Mutual labels:  ime, input-method
Lipika Ime
Input Method Engine (IME) for Mac OS X with built-in support for all Indic Languages
Stars: ✭ 76 (+10.14%)
Mutual labels:  ime, input-method
Kime
Korean IME
Stars: ✭ 208 (+201.45%)
Mutual labels:  ime, input-method
Text-Classification-LSTMs-PyTorch
The aim of this repository is to show a baseline model for text classification by implementing a LSTM-based model coded in PyTorch. In order to provide a better understanding of the model, it will be used a Tweets dataset provided by Kaggle.
Stars: ✭ 45 (-34.78%)
Mutual labels:  text-processing
dif
'dif' is a Linux preprocessing front end to gvimdiff/meld/kompare
Stars: ✭ 18 (-73.91%)
Mutual labels:  text-processing
perke
A keyphrase extractor for Persian
Stars: ✭ 60 (-13.04%)
Mutual labels:  text-processing
frangipanni
Program to convert lines of text into a tree structure.
Stars: ✭ 1,176 (+1604.35%)
Mutual labels:  text-processing
estratto
parsing fixed width files content made easy
Stars: ✭ 12 (-82.61%)
Mutual labels:  text-processing
ConTexto
Librería en Python para minería de texto y NLP
Stars: ✭ 43 (-37.68%)
Mutual labels:  text-processing
teanaps
자연어 처리와 텍스트 분석을 위한 오픈소스 파이썬 라이브러리 입니다.
Stars: ✭ 91 (+31.88%)
Mutual labels:  text-processing
sliceslice-rs
A fast implementation of single-pattern substring search using SIMD acceleration.
Stars: ✭ 66 (-4.35%)
Mutual labels:  text-processing
iridium-bpmf
銥 [Ir] 注音 — (又是一個) 基於 RIME、參酌其它注音輸入法習慣、符合臺灣使用習慣為規準的注音輸入方案。
Stars: ✭ 40 (-42.03%)
Mutual labels:  ime
fuzzychinese
A small package to fuzzy match chinese words
Stars: ✭ 50 (-27.54%)
Mutual labels:  text-processing
text2video
Text to Video Generation Problem
Stars: ✭ 28 (-59.42%)
Mutual labels:  text-processing
SuperCombinators
[Deprecated] A Swift parser combinator framework
Stars: ✭ 19 (-72.46%)
Mutual labels:  text-processing

VI

Cargo Crate Docs License

A input method library for Vietnamese input engine written completely in Rust

What is this?

Since typing Vietnamese on Linux is pretty painful at the momment, a better input engine is always needed. To accommodate the future engines that will be built in Rust, this library existed to transform key inputs into the Vietnamese string output.

If you wish to find out how it works, I have written a short blog post (in Vietnamese) on how the library place a tone mark when it received the user input. Read it here.

Installation

Add vi to your dependencies in Cargo.toml.

[dependencies]
vi = "0.1.1"

Examples

With vi, you can start building your own Vietnamese IME without worrying about how Vietnamese tone mark placement works. All you have to do is to implement a keyboard listener & a key sending system.

extern crate vi;

use vi::vni;

fn main() {
    let inputs = vec![
        vec!['v', 'i', 'e', 't', '6', '5'],
        vec!['n', 'a', 'm']
    ];

    let mut result = String::new();
    for input in inputs {
        let (_, transform_result) = &vni::transform_buffer(&input);
        result.push_str(transform_result);
        result.push(' ');
    }
    
    println!("{}", result); // prints "việt nam "
}

Please refer to the examples/ directory to learn more.

Support

  • VNI
  • Telex

Project status

Currently, this project is still at its early stage of development. There might be some minor bugs but overall, it should be 95% functional.

Creator

Want to support me? Consider buying me a coffee:)

ko-fi

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].