Transliter

NPM Version NPM Download License

Transliterate Cyrillic text to Latin with support for multiple standards and languages. Supports Russian, Ukrainian, Bulgarian, Macedonian, Serbian, and other Cyrillic-based languages.

Features

Installation

npm install transliter

Quick Start

const { transliter, slugify, isCyrillic } = require("transliter");

// Basic transliteration (ISO 9 standard)
transliter("Транслитерируемый текст");
//-> Transliteriruemy`j tekst

// URL slug generation
slugify("Создание ссылки");
//-> sozdanie-ssylki

// Cyrillic detection
isCyrillic("Привет, мир!"); //-> true
isCyrillic("Hello, World!"); //-> false

API Reference

transliter(text, [standard])

Transliterate Cyrillic text to Latin using the specified standard.

Parameters:

Returns: (string) Transliterated text

Examples:

// Different standards produce different results
transliter("Щука", "iso9"); //-> Shhuka
transliter("Щука", "bgn-pcgn"); //-> Shchuka
transliter("Щука", "gost"); //-> Shhuka
transliter("Щука", "simple"); //-> schuka

// Language support
transliter("Україна", "simple"); //-> ukraina
transliter("България", "simple"); //-> balgariya
transliter("Македонија", "simple"); //-> makedonija

transliter.getStandards()

Get information about available transliteration standards.

Returns: (object) Object with standard names as keys and their metadata

Example:

const standards = transliter.getStandards();
console.log(standards.iso9.name); //-> 'ISO 9 System B'

transliter.getStandard(standard)

Get details about a specific standard.

Parameters:

Returns: (object|null) Standard details or null if not found

transliter.addStandard(name, standard)

Add a custom transliteration standard.

Parameters:


slugify(text, [options])

Generate URL slug from Cyrillic text.

Parameters:

Options:

Returns: (string) Generated slug

Examples:

// Basic usage
slugify("Создание ссылки");
//-> sozdanie-ssylki

// Custom separator
slugify("Создание ссылки", "_");
//-> sozdanie_ssylki

// Advanced options
slugify("Тест!@#$%", {
    separator: "_",
    standard: "iso9",
    remove: /[^a-zA-Z0-9_]/g,
});
//-> test

// Standard-specific methods
slugify.iso9("Щука"); //-> shhuka
slugify.bgnPcgn("Щука"); //-> shchuka
slugify.gost("Щука"); //-> shhuka

isCyrillic(text, [language])

Detect if text contains Cyrillic characters.

Parameters:

Returns: (boolean) True if text contains Cyrillic characters

Examples:

// Basic detection
isCyrillic("Привет, мир!"); //-> true
isCyrillic("Hello, World!"); //-> false

// Language-specific detection
isCyrillic("Україна", "ukrainian"); //-> true
isCyrillic("България", "bulgarian"); //-> true
isCyrillic("Hello", "russian"); //-> false

isCyrillic.language(text, language)

Detect specific Cyrillic language.

isCyrillic.percentage(text)

Get percentage of Cyrillic characters in text.

isCyrillic.detectLanguages(text)

Detect which Cyrillic languages are present in the text.

Example:

isCyrillic.percentage("Привет Hello"); //-> 57.14 (approx)
isCyrillic.detectLanguages("Привет Україна"); //-> ['russian', 'ukrainian']

Supported Languages

Transliteration Standards

ISO 9 System B

Scientific transliteration standard (ISO 9:1995 System B). Used in linguistics and academic publications. Preserves one-to-one character mapping with diacritics.

BGN/PCGN

United States Board on Geographic Names & Permanent Committee on Geographical Names. Used for geographic names on maps and in official documents.

GOST 7.79-2000 System B

Russian standard for bibliographic references. Commonly used in Russian publications and libraries.

Simple

URL-friendly transliteration optimized for web addresses. Removes diacritics and uses common English equivalents.

Building from Source

# Clone repository
git clone https://github.com/vladzadvorny/transliter.git
cd transliter

# Install dependencies
npm install

# Run tests
npm test

License

MIT © Vlad Zadvorny


This HTML page was generated from README.md. The original markdown file is preserved.