Internationalization (I18n) | Phase 1 Report | GSoC'2021

i18n-gsoc-cover

This blog report summarizes my work which was done during the first phase of Google Summer of Code 2021 coding period. First phase of GSoC'2021 was started from June 7 and officially end on July 12.

My Project Details 📋

Internationalization mainly aims at creating I18n architecture for the CircuitVerse platforms in order to localize or translate them into multiple languages.

My aim during GSoC is to create I18n infrastructure so that CircuitVerse platforms can be internationalized into global languages and platforms can be emerged as a Global Platform.

During GSoC my aim is to create I18n architecture for 5 major technologies used in different CircuitVerse platforms.

  • Ruby on Rails (CircuitVerse Main Platform)
  • JavaScript (CircuitVerse Simulator)
  • Jekyll (CircuitVerse Interactive Book)
  • Flutter (CircuitVerse Mobile App)
  • DocsifyJs (CircuitVerse Docs)

 

Phase1 Report :-

 

Week 1: Turning Coffee into Code (☕ - 💻)

In this week, I started setting up fresh repositories for Rails codebase along with linters and my favourite extension RuboCop for Rails.

Following tasks were achieved during this week ⏬ :-

  • Adding locale to CircuitVerse API endpoint.
  • Update JSON Schema and validate RSpec tests to adapt new changes.
  • Generate array of locale codes following ISO 639-1 standards (130+ locales).
  • Advancement in Current I18n setup in Rails.
  • I18n tryout by localizing Teachers and Simulator module (partially).

 

Week 2: Begin with Localizing CircuitVerse Modules

In my 2nd week, I started preparing for a bunch of localization rules so that consistency in I18n is maintained throughout the codebase by me as well as by future contributors.

For this task, I had to take proper overview of the codebase and design module specific rules for running quality I18n processes throughout the module.

Following tasks were achieved during this week ⏬ :-

  • Preparing localization Rules.
  • i18n-js : First I18n architecture for Simulator (Depends on Ruby).
  • Localization of CV Modules - Views (10 modules localized).

 

Week 3: Continue working with CircuitVerse Modules

In this week, I worked on localization process of CV modules and other aspects of project.

Following tasks were achieved during this week ⏬ :-

  • i18n-js : Second I18n architecture for Simulator (Depends on Rails I18n Mapping).
  • Localization of CV Modules - Views (13 modules localized).
  • Localize string oriented gems commentator, activity notifications, mailers, paginators etc.

 

Week 4: Working on Library, Documentation and Modules

4th week consisted of working on major aspects such as library, documentation and modules of project.

Following tasks were achieved during this week ⏬ :-

  • banana-i18n : backend independent I18n architecture for Simulator (Finalized and Merged).
  • Official documentation written on CircuitVerse wiki pages.
  • Localization in controllers and form attributes (All accomplished).

 

Week 5: Starting work on Simulator and Mobile App

In my final week, I started working on Simulator and Mobile App.

Following tasks were achieved during this week ⏬ :-

  • Localize familiar JS modules such as CombinationalAnalysis.js.
  • Design Language Switcher and I18n test Suite for Rails.
  • Start of initial work in Mobile App.

 

Implementation

 

Additional Information

All the commitments I have made for phase-1 of the coding period had been achieved. Instead of CircuitVerse Docs, I have started my work with Mobile App in parallel and I18n for Docs will be done in the ending weeks as it becomes ready for I18n.

 

Blog Posts

I have also created my own blog covering my GSoC journey as well as my preparation during pre-GSoC, so that future GSoC aspirants can receive an advantage from it .

Kindly check! Blog

 

Final Thoughts

I would like to thank the CircuitVerse community for providing me this amazing opportunity. Open Source contributions at CircuitVerse helped me a lot in enhancing my coding skills and soft skills as well.

Special thanks to my mentors Aboobacker MK and Nitish Aggarwal. It was a great learning experience for me to work with them during phase one. Looking forward for an exciting phase two!

Thankyou

comments powered by Disqus