translit-ua
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.typedtype 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)
| File | Size | Uploaded | |
|---|---|---|---|
| translitua-2.0.tar.gz | 14.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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