Translation of related content

Some posts have relations to other content, such as other posts, series and such.

These are connected using a multiselect field with searching capability:

IMPORTANT NOTE:

If you translate an article/post which has related content, it is possible that your localization will NOT HAVE all the related content translated into your language. Therefor this related content will be missing in your localization as seen in the following image:

How translation works

It is important to note that we differentiate between MASTER localizations and SECONDARY localizations. Please read the article about the differences to understand further references to MASTER/SECONDARY localizations.

MASTER localizations will try to keep the related content synchronized between each other. If the content is missing in one of the MASTER localizations, it will be connected after the localized version is created. This results in MASTER localizations being ALWAYS IN SYNC as long as the content exists in that localization.

SECONDARY localizations will stay IN SYNC with MASTER, unless manually adjusted (something is added that is missing in MASTER localization or something is removed that is present in MASTER localization). When manually adjusted, relation to the selected content will be marked as customized. Below is a table of use-case scenarios to better understand how this process works. Even if some connections are customized, the rest of the connections will try to stay IN SYNC; however the customized connections will never synchronize again.

Content gets localized - connects automatically

Once one of the related posts is translated and becomes available in that localization, it will be automatically added to the related content of other articles that reference its origin translation. This is true for both MASTER and SECONDARY localizations. Refer to the tables below to better understand this process. In short: if you create a 3 new articles in english, connect them together and then translate these articles to czech/slovak etc., all the articles will be connected between each other (unless you manually disconnect them).

Scenarios

Following examples define how the connection works when it is adjusted either from the MASTER localization or SECONDARY localizations.

Lets consider a case, where we have Article EN-1, Article EN-2, Article EN-3 and Article EN-4.

Two articles had been localized into Serbian as Article SR-1 and Article SR-3.

Article EN-1 has a relation to Article EN-2, Article EN-3 and Article EN-4

The current status of the related content is shown in the following table:

Article EN-1 Article SR-1 Synchronizing between localizations
Connected to Article EN-2
Connected to Article EN-3 Article SR-3
Connected to Article EN-4

New connection is added in MASTER localization

Article EN-1 is newly connected to 2 more articles: Article EN-5 and Article EN-6. Article EN-6 has existing localization in Serbian language as Article SR-6; however Article EN-5 has no translation in Serbian.

Status:

Article EN-1 Article SR-1 Synchronizing between localizations
Connected to Article EN-2
Connected to Article EN-3 Article SR-3
Connected to Article EN-4
Connected to Article EN-5
Connected to Article EN-6 Article SR-6

Existing connection is removed from MASTER localization

Then we decide to remove Article EN-3 and Article EN-4 from the connection

Status:

Article EN-1 Article SR-1 Synchronizing between localizations
Connected to Article EN-2
Connected to Article EN-5
Connected to Article EN-6 Article SR-6

Connected article is translated in SECONDARY localization

Serbian localization decides to translate Article EN-2 as Article SR-2. It is automatically connected from Article SR-1.

Status:

Article EN-1 Article SR-1 Synchronizing between localizations
Connected to Article EN-2 Article SR-2
Connected to Article EN-5
Connected to Article EN-6 Article SR-6

New connection is added in SECONDARY localization

Serbian localization creates new Article that only exists in their localization called Article SR-ONLY and adds it to connection. They also want to add Article SR-3 back, even though the MASTER language removed it.

Status:

Article EN-1 Article SR-1 Synchronizing between localizations
Connected to Article EN-2 Article SR-2
Connected to Article SR-3
Connected to Article EN-5
Connected to Article EN-6 Article SR-6
Connected to Article SR-ONLY

IMPORTANT NOTE: Because the Serbian connections now become customized, they are partially disconnected from MASTER localizations. Because Serbian version now added Article SR-3 as their choice, adding or removing Article EN-3 in the MASTER localization will no longer have any effect on Serbian localization.

Existing connection is removed in SECONDARY localization

Serbian localization decides to remove one of the articles they have translated: Article SR-6.

Status:

Article EN-1 Article SR-1 Synchronizing between localizations
Connected to Article EN-2 Article SR-2
Connected to Article SR-3
Connected to Article EN-5
Connected to Article EN-6
Connected to Article SR-ONLY

IMPORTANT NOTE: Just as with the previous case, where Serbian localization added articles, ARTICLE SR-6 now also becomes customized. This means that any changes in MASTER localization to Article EN-6 will no longer have any effect on Article SR-6.

Caveats

There are some edge-cases that are not covered by the functionality that include a combination of actions taken by editor that are problematic to solve.

One of the examples is the following scenario.

User has a relation defined as follows:

Article English 1 Article Serbian 1 Synchronizing between localizations
Connected to Article English 2 Article Serbian 2

Then removes Serbian article 2:

Article English 1 Article Serbian 1 Synchronizing between localizations
Connected to Article English 2

Then completely deletes Article Serbian 2 from the administration

The connection now becomes synchronized again, because the removed post no longer exists:

Article English 1 Article Serbian 1 Synchronizing between localizations
Connected to Article English 2

Then creates the localization of Article English 2 again:

Article English 1 Article Serbian 1 Synchronizing between localizations
Connected to Article English 2 Article Serbian 2