UzTransliterator
State-of-the-art Machine Transliteration Tool for Uzbek Language (Cyrillic ↔ Latin ↔ New Latin)
UzTransliterator is an open-source Python package that provides high-accuracy, rule-based machine transliteration between the three writing scripts of the Uzbek language: Cyrillic, Latin, and New Latin.
Features
- Transliteration Between 3 Uzbek Scripts: Full support for bidirectional transliteration between all 3 writing scripts used in Uzbek: Cyrillic, Latin, and New Latin.
- Rule-based & Statistical Engine: Correctly handles context-sensitive rules (such as
Е/е,Ц/ц,Ё/Ю/Я, Roman numerals, dates, hyphenation, and exception words). - Lightweight & Fast: Direct Python library execution without external API dependencies.
Installation
Install the package via PyPI:
pip install UzTransliterator
Usage
from UzTransliterator import UzTransliterator
# Initialize transliterator object
obj = UzTransliterator()
# Transliterate from Cyrillic to Latin
latin_text = obj.transliterate("мактаб", from_="cyr", to="lat")
print(latin_text) # Output: maktab
# Transliterate from Cyrillic to New Latin (Yangi Lotin)
new_latin_text = obj.transliterate("Ўзбекистон шаҳарлари гўзал", from_="cyr", to="nlt")
print(new_latin_text) # Output: Özbekiston şaharlari gözal
# Transliterate from Latin to New Latin
nlt_text = obj.transliterate("O‘zbekiston, g‘alaba, shahar", from_="lat", to="nlt")
print(nlt_text) # Output: Özbekiston, ğalaba, şahar,
# Transliterate from New Latin to Cyrillic
cyr_text = obj.transliterate("Özbekiston şaharlari", from_="nlt", to="cyr")
print(cyr_text) # Output: Ўзбекистон шаҳарлари
Script Direction Options (from_ and to)
Supported script codes:
cyr— Cyrillic (Кирилл)lat— Latin (Lotin)nlt— New Latin (Yangi Lotin)
Available direction pairs:
from_='cyr', to='lat'from_='cyr', to='nlt'from_='lat', to='cyr'from_='lat', to='nlt'from_='nlt', to='cyr'from_='nlt', to='lat'
Web Interface
https://uzmorph.uz/models/uztranslit
New Latin Alphabet Reform (Yangi Lotin, 2026)
According to the reformed Uzbek Latin alphabet legislation, character mappings are updated as follows:
| Latin | New Latin | Cyrillic Equivalent |
|---|---|---|
G‘, g‘ |
Ğ, ğ |
Ғ, ғ |
O‘, o‘ |
Ö, ö |
Ў, ў |
Sh, sh |
Ş, ş |
Ш, ш |
Ch, ch |
Ç, ç |
Ч, ч |
Scopus Publication & Citation
If you use UzTransliterator in your academic research or projects, please cite our Scopus-indexed research paper:
Salaev, U., Kuriyozov, E., & Gómez-Rodríguez, C. (2022). A Machine Transliteration Tool Between Uzbek Alphabets. CEUR Workshop Proceedings, Vol-3315, pp. 42–50.
📄 Scopus Link: https://www.scopus.com/inward/record.uri?eid=2-s2.0-85146119140&partnerID=40&md5=be670d829670d883b2f8326559ce954a
@CONFERENCE{Salaev202242,
author = {Salaev, Ulugbek and Kuriyozov, Elmurod and Gómez-Rodríguez, Carlos},
title = {A Machine Transliteration Tool Between Uzbek Alphabets},
year = {2022},
journal = {CEUR Workshop Proceedings},
volume = {3315},
pages = {42 – 50},
url = {https://www.scopus.com/inward/record.uri?eid=2-s2.0-85146119140&partnerID=40&md5=be670d829670d883b2f8326559ce954a}
}
License
Distributed under the MIT License. See LICENSE for details.
Metadata
Release files for UzTransliterator 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| uztransliterator-2.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / uztransliterator-2.0.2-py3-none-any.whl
| Download URL | uztransliterator-2.0.2-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c4d7d5fe979e3aff13b269903f453c2668db6657c467ecef03f658030d522a72
|
|
BLAKE2b-256 checksum How to use checksums |
238256348e39ea03069e448bc6212ef4d6f073e7c16fabdcb4aad64f77a03e4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.0
|