Inspiration
It all started with a simple observation. One of our team members' parent was eager to learn programming but hit an unexpected wall: English. Despite their curiosity and capability, the language barrier made Python inaccessible. Every keyword, error message, and documentation was in English—a language they didn't speak fluently. We realized that millions of Portuguese and Spanish speakers faced the same problem. Why should language be a barrier to learning one of the most important skills of the 21st century?
What it does
Braython is a fully localized Python IDE that translates everything into Portuguese or Spanish—keywords, error messages, instructions, and feedback—so native speakers can learn and code without English. Users write code in their native language using translated Python keywords like se (if), enquanto (while), para (for), and funcao (function). The IDE compiles their code to valid Python, executes it, and reports any errors back in their language. All with a cute, game-ified pink and purple interface that makes programming feel joyful, not intimidating. Braython removes the language barrier entirely, making Python truly accessible for Portuguese and Spanish-speaking communities.
How we built it
Braython uses a three-layer architecture: a Tkinter GUI with language selection, a compiler that translates localized code into Python AST, and an execution engine with full error localization. The lexer tokenizes Portuguese/Spanish keywords and converts them to valid Python syntax, while the parser builds an Abstract Syntax Tree and manages keyword relationships. Our central localization engine (messages.py) handles all UI translations, exception type mappings, and even gender-aware adjective variations for Spanish and Portuguese. The IDE features a beautiful interface with a language selection screen, project menu, and a full-featured code editor with syntax highlighting, line numbers, project persistence, and real-time error reporting—all in the user's chosen language. Every component was built with the philosophy that code should be universally accessible, not just to English speakers.
Challenges we ran into
Syntax Preservation Across Languages: Spanish and Portuguese have different grammatical structures than Python. We had to carefully map localized keywords while respecting Python's operator precedence and syntax rules. Error Message Localization: Python's error system is deeply rooted in English. We solved this by creating a comprehensive EXCEPTION_TYPE_TRANSLATIONS dictionary and custom error formatting that maintains technical accuracy while being understandable to non-English speakers. Gender Inclusivity: Spanish nouns have gender, and adjectives change accordingly. We implemented gender-agnostic translations that allow variant keywords so users never feel excluded. Git Merge Conflicts: After pulling remote changes, we had merge conflicts in critical files. We resolved them by manually understanding both changes and preserving localization logic while fixing keyword syntax. Tkinter UI Complexity: Creating a polished, cute GUI in Tkinter was challenging. Initial attempts at decorative "bubbly borders" broke the widget layout, so we simplified to standard elements with strategic color choices and padding. Performance: Real-time syntax highlighting and line number updates needed optimization to avoid lag, which we solved through efficient regex-based highlighting and proper widget state management.
Accomplishments that we're proud of
We successfully built a full Portuguese and Spanish IDE with complete keyword translation, gender-aware grammar support, and comprehensive error localization. Every aspect of the interface—from button labels to error messages—adapts to the user's chosen language. We created a cute, inviting UI with pink and purple aesthetics that makes coding feel like play, not work. Our project persistence system lets users save and load their work in JSON format. Most importantly, we removed the English barrier entirely: a non-English speaker can now learn Python from scratch without ever needing to understand English. The fact that our team member's parent can now actually code is the accomplishment we're most proud of.
What we learned
We discovered that language is a powerful and often invisible barrier to tech education. A cute, welcoming interface can genuinely make the difference between someone giving up and someone falling in love with coding. Error messages aren't just debugging tools; they're teaching moments, and translating them into native languages transforms them from scary blockers into learning opportunities. Building with real users in mind—like our team member's parent—keeps you focused on what actually matters.
What's next for BRAYTHON
We envision Braython expanding far beyond Portuguese and Spanish. Our roadmap includes support for French, German, Mandarin, Arabic, and many other languages, creating a truly global platform for localized programming education. We want to build a community of contributors who can help localize Braython into their own languages and cultures.
Log in or sign up for Devpost to join the conversation.