Joomla GSoC 18 with Wang Yuchao

Hello again! After a month of hard work, let’s see what’s new in this project and which plans have been implemented now.

New fields in com_language for fallback mechanism

This project actually contains two main aspect of improvement. One is "fallback language". The other is "automatically create associations".

    • "Fallback language" is the idea my mentor Elisa Foltyn got from this page.
wang post 2 1
  • As you can see, this page tagged as German doesn't have current document in German, so it displays content in English with a hint (the yellow message box above) which tells that "This page is currently only available in English ...". So the fallback language mainly plays the role of backups, and it is usually chosen to be the language in which articles are updated. When articles in some language are out of date, which means they are altered in a more basic language, then admins can choose to use this mechanism at frontend before they are updated.
    wang post 2 2

Automatic Associations

  • As for "automatically create associations", it's just a simplification of the current mechanism of multilingual associations. For an admin of a multilingual site, it's common to create items in many content languages. So we consider a modal that popups when an admin clicks "save" and offers language options in which associations will be created.
  • Since these articles are born out-of-date, before they are updated, on the frontend, they are shown in its default fallback language.
    wang post 2 3
  • Another important part of this project is the updating and expiration of items. It's related to language hierarchy which is defined by "fallback languages". Languages that are used as fallback of other languages are more basic, and "reference language" (default fallback) is the root. Items should usually be updated in the reference language and items in other languages will be marked as expired (but it's optional whether to show that on the frontend, which is defined by "change state" field).
  • So we also need:
    1. A notification system in the backend to help expire and update items.
    2. A restrictive structure of language hierarchy. And my partner Lavinia Popa-Rössel has been working on it.