This blog report summarizes the work, I executed during the 10 weeks of Google Summer of Code 2021. GSoC'2021 Coding Period was started on June 7, and officially ended on August 16.
Internationalization mainly aims at creating I18n architecture for the CircuitVerse platforms to localize or translate them into multiple languages.
During GSoC, I aimed to create an I18n infrastructure such that CircuitVerse platforms can be internationalized into global languages. And the platforms can be emerged as the Global Platforms.
I also aimed to create an I18n architecture for 5 major technologies used on different CircuitVerse platforms. They are:-
During the first five weeks of the GSoC coding period (Phase One), I did work in the major portions of the Rails codebase. Phase two was majorly dedicated to working on Simulator, Mobile App and DocsifyJS as well.
More Details about my work in Phase one can be found here: I18n Phase One Report
We cannot use Rails I18n in webpacker served JavaScript modules directly. A Wikipedia library banana-i18n is used to localize JavaScript-based product.
In order to localized Simulator I divided it into different sections ⬇️
Simulator Configuration Modules and features such as Verilog, CombinationalAnalysisalong, SubCircuits etc along with third-party npm packages.
Simulator Circuit Element Modules
In total, there were 36 configuration modules written in JavaScript, which I had to check and localize without breaking any code.
Following tasks were achieved during this week ⏬
I started working with circuit element modules, hotkey binders, themers, testbench and sequential circuit element modules.
Following tasks were achieved during this week ⏬
I finished working on the Simulator which required 800+ lines of code changes. 🎉
Despite some of the benefits of Flutter, such as rapid Mobile-App development. Flutter was quite in discussion for its uneasiness for internationalization (I18n).
Previously provided configuration of I18n used a complex approach to feed translations in the app, and needs to be upgraded to a cleaner workflow.
The Mobile App interface in Flutter is made of several built-in widgets and custom widgets
Following tasks were achieved during this week ⏬
Following tasks were achieved during this week ⏬
I finished working on the Mobile App which required 2400+ lines of code changes. 🎉
Following tasks were achieved during this week ⏬
I18n in DocsifyJS via a designing mechanism for loading sidebar, navbar, and markdown dynamically into the Page.
Language Switcher for DocsifyJS.
Fixes in Rspec tests and enhancing Language switcher for Rails and Simulator capable of handling scenarios such as -
I felt amazing after completing my work on the different technologies and codebases during this journey! 🥳
I believe that I18n is not a time-bounded project and has a scope of continuous enhancements.
Some of the major enhancements which can be done are as follows -
Firstly, I would like to thank the CircuitVerse community for giving me this amazing opportunity.
Special thanks to Aboobacker MK, my mentor. I got opportunity to work under his guidance, during my initial contributions to the community and in GSoC'2021 as well.
I had a great enhancement in my coding skills from reviews I got from mentors and during GSoC'2021 journey. cheers! 🎉
Signing off
Thankyou