Back to Python Software Foundation
GSoC 2026

Open World Holidays Framework Generate l10n file on per locale basis

The holidays library currently embeds translated holiday names directly within country-specific Python modules, causing significant data redundancy and high barriers for non-developer translators. This project introduces a centralized, Gettext-based architecture that extracts these strings into dedicated .po files one per language loaded lazily at runtime. How I plan to solve it Develop an AST-powered extraction script to identify all self.tr() calls across 100+ country modules. Implement a LocaleRegistry class to manage lazy loading and en_US fallback logic. Migrate the existing codebase to this decoupled architecture to enable easier integration with tools like Weblate. Key Deliverables: A Python CLI utility for automated string extraction. A centralized /holidays/locale/ directory structure. A fully integrated LocaleRegistry with backward compatibility support. A "Translation Contributor’s Guide" for future community volunteers.

Project details

Contributor

Aaron Chewe

Mentors

Not available

Technologies

Not listed in the archive