All Projects → mehanizm → iuliia-go

mehanizm / iuliia-go

Licence: MIT license
Transliterate Cyrillic → Latin in every possible way

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to iuliia-go

transliteration-php
🇺🇦 🇬🇧 🔡 🐘 PHP library for transliteration.
Stars: ✭ 34 (-5.56%)
Mutual labels:  transliteration, translit
trans
National characters transcription module.
Stars: ✭ 22 (-38.89%)
Mutual labels:  transliteration, translit
Transliterate
Транслитерация для Laravel
Stars: ✭ 48 (+33.33%)
Mutual labels:  transliteration, russian
Slugify Cli
Slugify a string
Stars: ✭ 49 (+36.11%)
Mutual labels:  transliteration
Lipika Ime
Input Method Engine (IME) for Mac OS X with built-in support for all Indic Languages
Stars: ✭ 76 (+111.11%)
Mutual labels:  transliteration
Transliterate
Bi-directional transliterator for Python. Transliterates (unicode) strings according to the rules specified in the language packs.
Stars: ✭ 193 (+436.11%)
Mutual labels:  transliteration
neuro-comma
🇷🇺 Punctuation restoration production-ready model for Russian language 🇷🇺
Stars: ✭ 46 (+27.78%)
Mutual labels:  russian
Crx Jtrans
jTransliter - the roman to unicode transliter as Google chrome extension
Stars: ✭ 13 (-63.89%)
Mutual labels:  transliteration
learnrxjs
Русскоязычная документация RxJS
Stars: ✭ 20 (-44.44%)
Mutual labels:  russian
Neural japanese transliterator
Can neural networks transliterate Romaji into Japanese correctly?
Stars: ✭ 170 (+372.22%)
Mutual labels:  transliteration
Avspeechsynthesizer Example
A companion project to the NSHipster article about AVSpeechSynthesizer
Stars: ✭ 157 (+336.11%)
Mutual labels:  transliteration
Transliterate
Convert Unicode characters to Latin characters using transliteration
Stars: ✭ 152 (+322.22%)
Mutual labels:  transliteration
Cyrillic To Translit Js
Ultra-lightweight JavaScript library for converting Cyrillic symbols to Translit and vice versa
Stars: ✭ 91 (+152.78%)
Mutual labels:  transliteration
FAQ
Unofficial Fedora FAQ in russian
Stars: ✭ 86 (+138.89%)
Mutual labels:  russian
Speakingurl
Generate a slug – transliteration with a lot of options
Stars: ✭ 1,056 (+2833.33%)
Mutual labels:  transliteration
fias
Ruby wrapper for the Russian FIAS database (Федеральная Информационная Адресная Система)
Stars: ✭ 82 (+127.78%)
Mutual labels:  russian
Deeptranslit
Efficient and easy to use transliteration for Indian languages
Stars: ✭ 41 (+13.89%)
Mutual labels:  transliteration
Inflected
A port of ActiveSupport's inflector to Node.js and the browser.
Stars: ✭ 144 (+300%)
Mutual labels:  transliteration
Slugify
Slugify a string
Stars: ✭ 2,110 (+5761.11%)
Mutual labels:  transliteration
carakanjs
Convert/transliterate Latin script into Javanese script, also known as Aksara Jawa or Carakan.
Stars: ✭ 23 (-36.11%)
Mutual labels:  transliteration

Iuliia

Transliterate Cyrillic → Latin in every possible way

This is the port of the incredible python library iuliia made by @nalgeon

GoDoc Go codecov Go Report

Transliteration means representing Cyrillic data (mainly names and geographic locations) with Latin letters. It is used for international passports, visas, green cards, driving licenses, mail and goods delivery etc.

Iuliia makes transliteration as easy as:

import iuliia "github.com/mehanizm/iuliia-go"

func main() {
    translated := iuliia.Wikipedia.Translate("Юлия Щеглова")
    fmt.Println(translated)
}

>> 'Yuliya Shcheglova'

Why use Iuliia

  • 20 transliteration schemas (rule sets), including all main international and Russian standards.
  • Correctly implements not only the base mapping, but all the special rules for letter combinations and word endings (AFAIK, Iuliia is the only library which does so).
  • Simple API and zero third-party dependencies.

Installation

go get github.com/mehanizm/iuliia-go

schemas folder is the git submodule from general repository. You can add schemes manually and use generation to generate all code and tests:

go generate

CLI interface

In the folder cmd you can find CLI app to play with the transliteration.

# run the app with help
./iuliia -h
> Usage of ./iuliia:
>   -schema string
>         choose schema name (default "wikipedia")
>   -show
>         showing list of the schemas

# simple run the program
./iuliia
> type phrase to translate with schema wikipedia:
> 'quit' to exit or 'help' to get help
> > 

# show help
> help
>> * show - to show all schemas
>> * change schema_name - to change schema
>> * quit - to quit the program
>> type phrase to translate with schema wikipedia:
>> 'quit' to exit or 'help' to get help

# translate
> Привет. Как у тебя дела?
>> Privet. Kak u tebya dela?

# show all schemas
> show
>> ala_lc:              ALA-LC transliteration schema.
>> ala_lc_alt:          ALA-LC transliteration schema.
>> bgn_pcgn:            BGN/PCGN transliteration schema
>> bgn_pcgn_alt:        BGN/PCGN transliteration schema
>> bs_2979:             British Standard 2979:1958 transliteration schema
>> bs_2979_alt:         British Standard 2979:1958 transliteration schema
>> gost_16876:          GOST 16876-71 (aka GOST 1983) transliteration schema
>> gost_16876_alt:      GOST 16876-71 (aka GOST 1983) transliteration schema
>> gost_52290:          GOST R 52290-2004 transliteration schema
>> gost_52535:          GOST R 52535.1-2006 transliteration schema
>> gost_7034:           GOST R 7.0.34-2014 transliteration schema
>> gost_779:            GOST 7.79-2000 (aka ISO 9:1995) transliteration schema
>> gost_779_alt:        GOST 7.79-2000 (aka ISO 9:1995) transliteration schema
>> icao_doc_9303:       ICAO DOC 9303 transliteration schema
>> iso_9_1954:          ISO/R 9:1954 transliteration schema
>> iso_9_1968:          ISO/R 9:1968 transliteration schema
>> iso_9_1968_alt:      ISO/R 9:1968 transliteration schema
>> mosmetro:            Moscow Metro map transliteration schema
>> mvd_310:             MVD 310-1997 transliteration schema
>> mvd_310_fr:          MVD 310-1997 transliteration schema
>> mvd_782:             MVD 782-2000 transliteration schema
>> scientific:          Scientific transliteration schema
>> telegram:            Telegram transliteration schema
>> ungegn_1987:         UNGEGN 1987 V/18 transliteration schema
>> wikipedia:           Wikipedia transliteration schema
>> yandex_maps:         Yandex.Maps transliteration schema
>> yandex_money:        Yandex.Money transliteration schema

# change schema
> change telegram
>> schema was changed to telegram
>> 
>> type phrase to translate with schema telegram:
>> 'quit' to exit or 'help' to get help

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Make sure to add or update tests as appropriate.

License

MIT

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