Packages
Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.
Install it if your application formats text for terminals and handles non-ASCII characters.
Babel provides internationalization (i18n) and localization (l10n) utilities for Python applications, handling date/time formatting, number localization, message translation, and timezone operations across different languages and locales.
Install it if your application needs to support multiple languages or locales.
Provides programmatic access to ISO standard databases for countries, subdivisions, languages, currencies, and scripts through a Python API.
Converts numbers to their word representations in multiple languages, supporting cardinal numbers, ordinals, years, and currency formats.
Install it if you need multilingual number-to-words conversion.
polib reads, writes, and manipulates gettext translation files (PO, POT, and MO formats), allowing you to load, iterate, modify entries, and create translation catalogs programmatically.
Install it if you need to work with gettext files programmatically.
Provides Unicode normalization (NFC, NFD, NFKC, NFKD) using Unicode Standard version 17.0 data, independent of the host Python environment's built-in Unicode version.
Install it if your application requires consistent normalization across different systems or if you need to target a specific Unicode Standard version.
Converts dates between the Hijri (Islamic) and Gregorian calendars using the Umm al-Qura standard, with support for dates from 1343 AH to 1500 AH.
Install it if you need reliable Hijri-Gregorian conversion within the supported date range; the main constraint is the 1343–1500 AH window and the explicit…
Detects which language a text is written in, supporting 75 languages with high accuracy on both short snippets and full sentences using compiled Rust bindings.
Provides translation string objects and factories for marking and managing translatable text in Python applications, with support for pluralization and message contexts.
However, the dormant maintenance status (last release 2020-07-09) means no active support for newer Python versions or bug fixes—verify compatibility with your target…
Spark NLP provides distributed natural language processing on Apache Spark, offering pretrained pipelines and models for tokenization, named entity recognition, sentiment analysis, machine translation, and embeddings across multiple languages.
Install only if you already have Apache Spark 3.0+ and Java 8 or 11 in your environment; it is not suitable for lightweight single-machine NLP work.
Provides ISO 4217 currency data as a Python enum, allowing you to look up currency codes, names, and exponent values (minor unit precision) programmatically.
Install it if you need reliable ISO 4217 currency lookups; the enum interface is clean and the dependency footprint is minimal.
PyICU wraps the ICU C++ libraries to provide Python access to Unicode text processing, internationalization, and localization features including collation, formatting, and script handling.
Install only if your system can satisfy the high build-time friction: pre-built packages exist for major platforms, but source builds require ICU libraries,…
flufl.i18n provides a high-level API for managing translation contexts in Python applications, supporting both single-context scripts and multi-context servers.
Fetches current and historical foreign exchange rates and Bitcoin prices from public APIs, and converts between currencies or to Bitcoin.
However, it is aging (449 days since last release) and depends entirely on external APIs for data.
PyICU-binary provides pre-built Python bindings to the ICU C++ libraries for Unicode text processing, internationalization, and localization without requiring compilation.
However, the package is abandoned (no releases since 2021-09-14), so verify that prebuilt wheels exist for your Python version and platform before committing.
Resolves ISO 639 language codes and names to their standardized identifiers across all five ISO 639 sets (639-1, 639-2/B, 639-2/T, 639-3, and 639-5).
Translate Toolkit converts, validates, and manipulates localization files across formats like PO, XLIFF, properties, and many others, with command-line tools and Python APIs for format conversion and quality assurance.
Install it if you work with translation files or build localization pipelines.
Provides lazy translations for timezone and territory names in multiple languages, mapping pytz timezones and CLDR country codes to localized strings.
However, do not use it if you require active maintenance, Python 3.12+ support verification, or ongoing translation updates—the last release was 2021 and the…
i18nice provides internationalization (i18n) functionality for Python applications, enabling translation of strings into multiple languages with support for placeholders, pluralization, and fallback locales.
Install it if you need multi-language support; the Rails-inspired API and file-based configuration make it straightforward to adopt.
wlc is a command-line client for Weblate's REST API, enabling developers to manage translations, pull and push localization changes, and interact with Weblate projects from the terminal.
Simplemma converts inflected word forms to their dictionary base forms (lemmas) across 54 languages using pure Python with no external dependencies or model downloads.
Install it for baseline NLP work, teaching, or low-resource settings; do not install it if you need the highest accuracy and can afford the overhead of neural pipelines.
Provides a curated collection of fonts packaged for use by Weblate and its localization workflows.
Validates, normalizes, and formats postal addresses according to country-specific rules using Google's i18n address metadata, with support for latinization and form generation.
Provides JSON schemas that validate Weblate export formats, enabling programmatic verification of localization data structure.
BabelFish provides Python objects for countries, languages, and scripts based on ISO standards, with built-in converters to translate between different naming and coding schemes.
Kitchen provides a collection of small utility functions for Python 2 and 3 code, including helpers for Unicode text handling and Python version compatibility.
Weblate is a web-based continuous localization platform that manages translation workflows for software projects, integrating with version control systems to synchronize translations across teams.
Provides language definitions, plural rules, and locale mappings for internationalization and localization systems, including Gettext translations and CLDR-based data.
Install it if you're building or integrating with a localization system and need reliable, standards-aligned language definitions; skip it if your application has no…
Discovers and identifies translation files in repositories by scanning for patterns used by common localization frameworks like Gettext, Android resources, and Transifex.
A Django module providing legal document templates and compliance infrastructure for Weblate-based localization services.