Introduction Greetings, everyone! I am Garv Thakre (@garvthakre:matrix.org on Matrix), an Agentic-AI FullStack Developer . This summer, I had the opportunity to participate in Google Summer of Code 2026 with MetaBrainz, where I worked on the internationalization (i18n) for BookBrainz. I was mentored by Nicolas Pelletier (@monkey:chatbrainz.org on Matrix). This post summarizes my project, its outcomes, and my experience … Continue reading "GSoC 2026: Bringing Internationalization (i18n) to BookBrainz"
Greetings, everyone!
I am Garv Thakre (@garvthakre:matrix.org on Matrix), an Agentic-AI FullStack Developer . This summer, I had the opportunity to participate in Google Summer of Code 2026 with MetaBrainz, where I worked on the internationalization (i18n) for BookBrainz.
I was mentored by Nicolas Pelletier (@monkey:chatbrainz.org on Matrix). This post summarizes my project, its outcomes, and my experience over the course of the program.
Project OverviewBookBrainz aims to collect information about every book ever written, but until now, the interface was only in English. Since books exist in thousands of languages, having an English-only UI made it tough for non-English contributors to navigate, read, or add metadata.
My main goal this summer was to get BookBrainz ready for translation and set up the foundation so the community can actually start localizing it. Here is what that involved:
react-i18next to handle translations dynamically across the UI./es/), or cookies.i18next-parser to automatically extract translatable strings from TSX and JSX components and update JSON translation keys.Before migrating pages, I needed an automated pipeline so developers wouldn’t have to manage translation keys manually or worry about breaking localized strings.
react-i18next integration: Added i18next and react-i18next to the frontend, utilizing the useTranslation hook for dynamic strings and the <Trans> component to handle inline formatting without chopping up sentences.i18next-parser to scan our TypeScript and JavaScript files. It searches for translation keys (e.g., t('key')) and automatically extracts them into our primary translation template (en/translation.json), sorting them alphabetically to avoid merge conflicts./es/), or cookies.After completing the foundation, the next phase was migrating the most visible static content, navigation layouts, and user authentication components:
BookBrainz revolves around connected metadata for various entities: Author, Work, Edition, Publisher, and Series. Migrating these details pages required refactoring complex dynamic structures:
The Unified Form Editor is BookBrainz’s heaviest component—it handles multi-entity creation and editing across multiple tabs, making it the most complex part of the migration.
With the core internationalization architecture now mostly integrated into the codebase, these are the immediate next steps to complete:
translation.json file with the MetaBrainz Weblate platform. This will allow community translators to translate BookBrainz via Weblate.You can view the full list of my pull requests, code contributions, and commits made during Google Summer of Code 2026 here:
This summer has been an incredibly rewarding journey. Working on Google Summer of Code with MetaBrainz has allowed me to dive deep into a large-scale React and TypeScript codebase, learn the complexities of designing and automating localization workflows, and participate in active open-source collaboration.
I want to extend my deepest gratitude to my mentor, Nicolas Pelletier aka Monkey , for his invaluable support, constructive feedback on my PRs, and patient guidance during our chats and code reviews. and really thankful for always answering my silly questions.
I would also like to thank the entire MetaBrainz community for creating such a welcoming and collaborative environment. I am excited to see BookBrainz support multiple languages soon and look forward to continuing my contributions to the project in the future!
REALLY THANKFUL AND WISHING GOOD LUCK TO THE WHOLE METABRAINZ TEAM.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | GSoC 2026: Development of a new Calibre plugin for BookBrainz | 0 | 10.48 | 30-08-2026 |
| 2 | Happening NOW: AMA with Silona Bonewald, MetaBrainz Foundation Executive Director | 0 | 7.56 | 05-10-2026 |
| 3 | Google Summer of Code 2026 – Meet This Year’s Projects!! | 0 | 11.87 | 08-07-2026 |
| 4 | Save the date: AMA with Silona Bonewald, MetaBrainz Foundation Executive Director | 0 | 8.71 | 28-09-2026 |
| 5 | International: Insights from INSOL London 2026 | 0 | 26.67 | 04-05-2026 |
| 6 | Open Knowledge at Abrelatam/Condatos 2026: AI, Public Data and Regional Collaboration | 0 | 7.98 | 06-10-2026 |
| 7 | Search upgrades: Nov 30, 2026 | 0 | 16.09 | 31-08-2026 |
| 8 | The MetaBrainz Foundation is seeking a new Executive Director (ED) | 0 | 6.44 | 14-04-2026 |
| 9 | Зачем лететь через полмира, если статьи уже есть на arXiv: что я увидела на ICML 2026 | 0 | 9.12 | 25-08-2026 |
| 10 | Daily Hacker News for 2026-09-26 | 0 | 10.96 | 27-09-2026 |