Skip to main content

translit-ua

Tests PyPI

Transliteration (romanization, latinization) for Ukrainian and russian languages with various transliteration tables (including official ones). Translit-ua has 17 transliteration tables for the Ukrainian language:

  • UkrainianKMU (National 2010, most recent one approved by The Cabinet)
  • UkrainianSimple (Simple one)
  • UkrainianWWS (WWS or Woodrow Wilson School or Scholarly)
  • UkrainianBritish (British Standard)
  • UkrainianBGN (BGN/PGGN 1965 System, United States Board on Geographic Names/Permanent Committee on Geographical Names)
  • UkrainianISO9 (ISO 9, from International Organization for Standardization)
  • UkrainianFrench (Jean Girodet (1976), Dictionnaire de la langue française)
  • UkrainianGerman ((2000) Duden, v 22, Mannheim: Dudenverlag.)
  • UkrainianGOST1971 (The Soviet Union's GOST from 1971)
  • UkrainianGOST1986 (The Soviet Union's GOST from 1986)
  • UkrainianPassport2007 (Used in Ukrainian passport in 2007-2010)
  • UkrainianNational1996 (Codified by Committee on Issues of Legal Terminology in 1996)
  • UkrainianPassport2004Alt (Yet another alternative that was sometimes used in Ukrainian passports in 2004-2007)
  • UkrainianDSTU9112A (DSTU 9112:2021 system A with diacritics — the current State Standard of Ukraine, approved 2022, based on modified ISO 9:1995)
  • UkrainianDSTU9112B (DSTU 9112:2021 system B, ASCII digraphs — same standard, goes back to Maksym Vakulenko's 1995 Derzhstandart system)
  • UkrainianALALC (ALA-LC, the American Library Association / Library of Congress standard used in library catalogs, with ligature ties)
  • UkrainianALALCModified (simplified ALA-LC without diacritics, as commonly used in English-language academic publishing)

Aliases: UkrainianBGN2019 and UkrainianUNGEGN point to UkrainianKMU — the 2019 BGN/PCGN agreement and the 2012 UNGEGN resolution both adopted the Ukrainian national (2010) system as-is. The UkrainianBGN table is the older 1965 system they superseded.

Translit-ua also has 11 transliteration tables for the russian language:

  • RussianGOST2006 (The Russian Federation's GOST from 2006)
  • RussianSimple (Simple one)
  • RussianICAO (DOC9303 from ICAO, International Civil Aviation Organization)
  • RussianTelegram (Russian standard for international telegrams from 2001)
  • RussianInternationalPassport1997 (One that was used for international passports 1997-2010)
  • RussianInternationalPassport1997Reduced (Same as above but with reduction of yy to y)
  • RussianDriverLicense (One that has been used for driver licenses since 2000)
  • RussianISOR9Table2 (ISO/R 9 (1968), table 2)
  • RussianISO9SystemA (ISO 9:1995, System A, one with diacritics)
  • RussianISO9SystemB (ISO 9:1995, System B, no diacritics)
  • RussianALALC (ALA-LC, the American Library Association / Library of Congress standard, with ligature ties)

The minor difference in those tables is that the common apostrophe sign ' is used in every table.

For convenience, all Ukrainian tables are listed in ALL_UKRAINIAN variable, and all russian tables are listed in ALL_RUSSIAN variable. In ALL_TRANSLITERATIONS variable, you might find the complete list of tables.

Translit-ua works with Python 3.9+ (CPython and PyPy) and has good doctests coverage.

Installation

Install from PyPI.

$ pip install translitua

Usage

    >>> from translitua import translit, RussianSimple

    >>> translit(
        u"""Берег моря. Чути розбещенi крики морських птахiв, ревiння моржа,
    а також iншi звуки, iздаваємиє різною морською сволотою. Входить Гамлєт,
    вдягнутий в зручну приємну товстовку і такі ж самі парусинові штани.
    Гамлєт красиво підперезаний вузеньким шкіряним пояском.
    Він босий, бородатий і пацаватий. В руках у нього дебелий дрючок.
    """)
    u'Bereh moria. Chuty rozbeshcheni kryky morskykh ptakhiv, revinnia morzha,\na takozh inshi zvuky, izdavaiemyie riznoiu morskoiu svolotoiu. Vkhodyt Hamliet,\nvdiahnutyi v zruchnu pryiemnu tovstovku i taki zh sami parusynovi shtany.\nHamliet krasyvo pidperezanyi vuzenkym shkirianym poiaskom.\nVin bosyi, borodatyi i patsavatyi. V rukakh u noho debelyi driuchok.\n'

    >>> translit(
        u"""Не выходи из комнаты, не совершай ошибку.
    Зачем тебе Солнце, если ты куришь Шипку?
    За дверью бессмысленно все, особенно - возглас счастья.
    Только в уборную - и сразу же возвращайся.""", RussianSimple
    )
    u"Ne vyhodi iz komnaty, ne sovershaj oshibku.\nZachem tebe Solntse, esli ty kurish' Shipku?\nZa dver'ju bessmyslenno vse, osobenno - vozglas schast'ja.\nTol'ko v ubornuju - i srazu zhe vozvraschajsja."

More about Ukrainian transliteration

More about Russian transliteration

Changelog

2.0

  • New tables: DSTU 9112:2021 systems A and B (the current State Standard of Ukraine, validated against the uklatn reference implementation), ALA-LC for Ukrainian (full and simplified) and russian, plus BGN/PCGN 2019 / UNGEGN aliases
  • Modern packaging (pyproject.toml), Python 3.9+ only, py.typed type hints
  • Dropped Python 2 compatibility shims; behavior and tables unchanged
  • Doctests run on GitHub Actions against CPython 3.9-3.13 and PyPy
  • Releases publish to PyPI from tags via trusted publishing

Release files for translitua 2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for translitua 2.0
File Size Uploaded
translitua-2.0.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for translitua 2.0
File Interpreter ABI Platform
translitua-2.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.8 kB

Release files / translitua-2.0.tar.gz

Download URL translitua-2.0.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b2f5d59b89236a159731e510f192858f63cb3fb69d57224ebd2572fcc7db6ac1
BLAKE2b-256 checksum
How to use checksums
98bffe41fa81d8f11af6fe3fa58f485ca1df43fb54abcc9927d25ec30cf4ea4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

Release files / translitua-2.0-py3-none-any.whl

Download URL translitua-2.0-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1607e4d4fad5a44308f1052329405ffcabc1c9b8cd17df94ee6549b6442d2747
BLAKE2b-256 checksum
How to use checksums
66200387d4360032c28395cca1aa2eb02ccbf7dce341e643677a183a938bf040
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0 This release

2 release files

1.3.2

2 release files

1.3.1

1 release file

1.3.0

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page