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 | Actions Reset |
|---|---|---|---|---|
| uztransliterator-2.0.2-py3-none-any.whl | Python 3 | none | any | Details for uztransliterator-2.0.2-py3-none-any.whl |
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
|
Security for UzTransliterator 2.0.2
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.