@ppjmpd/cyrilla

Transliteration from the Latin script to the Cyrillic script (сyrillization) and vice-versa (romanization)

Usage no npm install needed!

<script type="module">
  import ppjmpdCyrilla from 'https://cdn.skypack.dev/@ppjmpd/cyrilla';
</script>

README

Cyrilla

Transliteration from the Latin script to the Cyrillic script (сyrillization) and vice-versa (romanization)

Prerequisites

Installation

Add to your project:

npm i @ppjmpd/cyrilla

Usage

Transliterate from the Polish Latin script to Cyrillic script using default params:

import { cyrilla } from 'cyrilla';

const cyrillic = cyrilla('Społeczeństwo przyszłości');
console.log(cyrillic);
// Output: 'Сполэчэньство пp̌ышлошци'

API

cyrilla() function

cyrilla(text: string, options: CyrillaOptions)

interface CyrillaOptions {
  language?: Languages;
  replacer?: Replacers;
}

Example

From the Poland Latin script to Cyrillic script 1975:

import { cyrilla, POLISH_TO_CYRILLIC_1975 } from 'cyrilla';

const cyrillic1865 = cyrilla('Społeczeństwo przyszłości', {
  language: POLISH_TO_CYRILLIC_1975,
});
console.log(cyrillic1865);
// Output: 'Сполеченьство пржишлошци'

RulesGenerator class

new RulesGenerator(rules: Rules, vowels: string[], consonants: string[])

type Rules = Record<string, string>;

RulesGenerator.create(from: string, to: string, options: CreateOptions)

interface CreateOptions {
  onStart?: boolean;
  onEnd?: boolean;
  before?: (string | Rules)[];
  beforeVowel?: boolean;
  beforeConsonant?: boolean;
  after?: (string | Rules)[];
  afterVowel?: boolean;
  afterConsonant?: boolean;
}

Example

import { RulesGenerator } from 'cyrilla';

const basicRules = {
  a: 'а',
  b: 'б',
  c: 'к',
  t: 'т',
};
const vowels = ['a'];
const consonants = ['c', 't'];
const rules = new RulesGenerator(basicRules, vowels, consonants);
// Create rules for language, needed to be in lower case
const language = {
  ...rules.create('at', 'эт', { after: ['b', 'c'] }),
};
console.log(language);
/* Output:
{
  bat: 'бэт',
  cat: 'кэт',
}
*/

ReplacerRegEx class

new ReplacerRegEx(rules: Rules)

ReplacerRegEx.replace(word: string, upperCaseLetters?: number[])

Example

import { ReplacerRegEx } from 'cyrilla';

const rules = {
  '^a': 'а',
  b: 'б',
  c$: 'ц',
};
const replacer = new ReplacerRegEx(rules);
const result = replacer.replace('Abc', [0]);
console.log(result);
// Output: 'Абц'

Transliterator class

new Tranliterator(replacer: Replacer)

Tranliterator.transliterate(text: string)

Example

import {
  POLISH_TO_CYRILLIC_1865,
  ReplacerRegEx,
  Transliterator,
} from 'cyrilla';

const replacer = new ReplacerRegEx(POLISH_TO_CYRILLIC_1865);
const transliterator = new Transliterator(replacer);
const result = transliterator.transliterate(
  'Na świecie od dawna nie było systemów ideologicznych'
);
console.log(result);
// Output: 'На швеце од давна не было сыстэмôв идэологичных'

Development

Clone repository:

git clone https://github.com/ppjmpd/cyrilla
cd cyrilla

License

Apache 2.0

© Sergey N

Based on https://github.com/jsynowiec/node-typescript-boilerplate