Transliterate
Transliterate is a bi-directional transliterator for Python (version 1.10.2) that converts Unicode strings according to rules defined in various language packs. It supports languages such as Armenian, Bulgarian, Georgian, Greek, Macedonian, Mongolian, Russian, Serbian, and Ukrainian. The library also includes utility functions like a lorem ipsum generator, basic language detection, and a slugify function. While the last significant release was in 2018, the library remains active and functional, providing a stable solution for transliteration needs.
Warnings
- gotcha The bundled 'lorem ipsum generator' has compatibility issues with Python 3, so `transliterate` uses a simplified fallback generator in Python 3 environments.
- gotcha The library's language detection is described as 'very basic' and relies solely on character sets. It may not be robust for complex scenarios or subtle language distinctions.
- gotcha When performing reversed transliterations (e.g., from Cyrillic to Latin), omitting the `language_code` parameter is possible, but explicitly providing it will result in faster execution.
- gotcha When defining and registering custom language packs, `autodiscover()` must be called before custom packs are registered if you intend to use the library's bundled language packs alongside your own. Additionally, language packs registered with `force=True` cannot be replaced or unregistered later.
Install
-
pip install transliterate
Imports
- translit
from transliterate import translit
- get_available_language_codes
from transliterate import get_available_language_codes
- autodiscover
from transliterate import autodiscover
- transliterate_function
from transliterate.decorators import transliterate_function
Quickstart
from transliterate import translit, get_available_language_codes
text = "Hello, world! Привет, мир!"
# Transliterate to Russian
ru_text = translit(text, 'ru')
print(f"English to Russian: {ru_text}")
# Transliterate from Russian back to Latin (reversed)
latin_text = translit(ru_text, 'ru', reversed=True)
print(f"Russian to Latin (reversed): {latin_text}")
# Get available language codes
available_languages = get_available_language_codes()
print(f"Available languages: {available_languages}")