Joomla GSoC 18 with Wang Yuchao

I’m Wang Yuchao studying at Beijing University of Posts and Telecommunications as a sophomore. It’s fantastic to be chosen as a part of Google Summer of Code and a member of the Joomla Project.

About the Project

A better workflow on multilingual sites is promising. So the whole project basically focus on how to simplify the process of multilingual association.

With this new workflow, associations are automatically created when saving a new item (articles, contacts, menu items, etc). And we could also define a fallback language. It’s a common scenario that content in root language has been updated, but that in current language has not. So it makes sense that the frontend displays the content in fallback language with a notification message.

Community Bounding Period

We hold our first meeting on May, 7th. In this meeting, my mentors and I all agreed that:

  • At least one PR per week is expected
  • The mentors team also expects a daily communication, not only if there are questions
  • Everyone in the team should say if there are any issues that prevent from being available (exams, vacations, health issues)
  • The student is having a diary writing down the time for each task, not for controlling but for better self-control
  • The first task is to implement the parameters for each language
  • We agreed to have a regular Meeting on Mondays at 10.00 a.m. CET (Germany 11.00 a.m.).

Next Move

Modals in com_content

  1. Create a popup modal when clicking "Save"
  2. Offer options of associated content in other languages with functionality of com_associations
  3. Offer an option to remember decision
  4. Content like articles, menus, menu items, contacts, etc have different implementation of this modal.

Lists in languages of com_language

  1. Add new "Fallback language" field
  2. Make this field sortable and searchable.

Options in language of com_language

  1. Create a "params" field in the database
  2. Insert new fields into language.xml and tmpl/language/edit.php
  3. Store these fields into the database / Fetch them from the database
  4. Add fields like "automatic state" and "change state" into the Global Configuration.

Display on the frontend

  1. When a content in a specific language is out of date, users can choose whether to display this content in fallback language with a message (if exists) or just display it directly.