User Manual

Inconsistencies processing

Inconsistencies processing is only supported on KMFasTrans PRO. Subscribe now!..

In version 1.4.0 of KMFasTrans PRO we introduce a new concept in the process of translating a website that we have called 'inconsistencies'. The purpose of this new feature is to detect potential mistakes that can occur when creating a multi-language site.

We say that an element is inconsistent when one of its parameters is not consistent in the context of the element. For example, an article in English language whose category is in Spanish.

As discussed later, there are two types of inconsistencies that we call 'self' inconsistencies and 'translation' inconsistencies.

Translation Inconsistencies are always detected in relation to the source of the translation. For example if the item Art1-GB in English belongs to the category Cat1-GB in English and the translation of Art1-GB into Spanish is Art1-ES, then the category Cat1-ES of Art1-ES must be the translation into Spanish of the category Cat1-GB. If it is not or does not exist, Art1-ES has a translation inconsistency. To detect this inconsistency Art1-ES is analyzed with regard to Art1-GB which in this case is the source of the translation.

Thus it is necessary to have a reliable source with respect to which perform the detection of inconsistencies. This reliable source is one of the content languages defined in the site that we have called the 'Reference Language for detecting inconsistencies'. The reference language is selected on the screen that displays the content languages.

For the reference language to be reliable it shall not contain inconsistent items (items with self-inconsistencies) because if an item has inconsistencies and is used as a translation source it will transfer its inconsistencies to the translated element. Since the reference language is the reference for translations into other languages, by definition the elements in the reference language can not have translation inconsistencies, only self-inconsistencies.

Although it is necessary to define a reference language is still possible to make translations from any language to any language because the detection of inconsistencies will check that the source item of the translation is not inconsistent, preventing the translation to occur if it is.

As expected, the detection of inconsistencies is costly in terms of database access. Depending on the size and number of languages on the site you may want to disable the continued detection of inconsistencies while building a new language and enable it when it has been finished or is about to finish in order to find all the inconsistencies in one detection cycle. A component option is available to enable or disable the detection of inconsistencies.

You may also want to disable the detection of inconsistencies if greater freedom to make the translations is desired. The detection of inconsistencies is preventive, preventing certain actions that if taken would create an inconsistency. For example creating a set of translations that lacks an element in the reference language, or creating a translation from a source element that has inconsistencies.

If inconsistencies detection is enabled, inconsistencies will been calculated when editing any element and the result will be displayed in the editing screen. Inconsistencies may also be calculated for all elements in a process we call 'Verify' of inconsistencies.

With the detection of inconsistencies enabled the Translations Dashboard screen will show the current reference language and will signal all items that contain inconsistencies. (See the screenshots of the Translations Dashboard below).

Our advice is to keep enabled the detection of inconsistencies because it helps to find mistakes in the multi-language structure. A website that does not contain inconsistencies provides the guarantee that all that has been translated is consistent and it is going to have the same behavior in any language.

Selecting the Reference Language

As mentioned above it is necessary to select a reference language for the detection of inconsistencies. When you install version 1.4.0 for the first time KMFasTrans will choose the default site language as the reference language if it is also a content language. If it wasn't a content language, the first content language found will be used. If there weren't content languages configured the detection of inconsistencies will be disabled.

The reference language is chosen in the content languages management screen:

Selecting a reference language

To choose a reference language just click on the desired language in the 'Incons.Reference' column (this column is only visible if the detection of inconsistencies is enabled).

When changing the reference language it is necessary to verify self inconsistencies for the new reference language and translation inconsistencies for all the components.

Self Inconsistencies

Self-inconsistencies are those that an element has in itself regardless of whether or not it is translation of another element. The example given above of an article whose category is of a different language to the article is a self-inconsistency. This kind of inconsistency is detected when editing an item in the reference language and the source and destination elements are the same, or when editing an item in a language other than the language of reference and the item is not associated with any other (it does not belong to any set of translations).

Types of self inconsistencies:

    • 1. The language of a field element does not match the language of the element that contains it. For example the parent category of a category must always be in the same language as the category.

Self inconsistency type one

 

    • 2. The language of a parameter does not match the language of the element that contains it nor is it equal to the language '*'.

For example the category of an item has to be in the same language as the language of the article or in the language '*'.

Self inconsistency type two

 

    • 3. The menu of a menu item in a specific language different from the language '*' is not in that specific language.

Self inconsistency type three

 

This inconsistency is also detected as a self-inconsistency in the menu if the menu is in the reference language or it is not associated, as shown in the image below.

Self inconsistency type three in the menu

The main function of detecting self-inconsistencies is to provide a reliable source of translations. Thus its main application is the detection of self-inconsistencies of the chosen reference language.

The self inconsistencies are detected in two ways:

    • 1. When creating or editing a translation the detection of self-inconsistencies is performed on the item that is in the reference language because if this does not have self inconsistencies either the translation will. If it has self inconsistencies the only allowed action will be the edition of that item (the one in the reference language). If the item is associated (belongs to a set of translations) you won't be allowed to edit any other element of the set or create new translations until the self-inconsistencies of the element in the reference language are removed. If an item is not in the reference language and it is not associated, its self-inconsistencies will also be detected and displayed.

To remove the self-inconsistencies of an item you have to edit it and for it, its ID must be in the column with header 'ID' of the Translations Dashboard. This is achieved by entering its ID or title in the filter 'Filter Title, or Set Id' or selecting its language in the filter '-Select "From" Language-' and clicking the edit icon in the column of its language .

    • 2. Manually at any time you can launch a process that detects the self-inconsistencies of a particular language. It is appropiate to use it for detecting the self-inconsistencies of the reference language as the self-inconsistencies of the other languages (if any) are going to be resolved when its translation inconsistencies (if any) are resolved. This process is launched from the screen displayed when clicking the icon 'Verify Incons' of the Translations Management Dashboard toolbar.

Translation Inconsistencies

Translation inconsistencies are those that an element has in relation to another that is its source of translation. For example a menu item in Spanish language(MI1-ES) showing an article in Spanish language (Art1-ES) is inconsistent if the article in Spanish language is not the translation of the article in English language that shows the menu item source of the translation. The figure below explains the example:

Example of translation inconsistency

If item Art1-ES was not the translation into Spanish of Article Art1-GB, then the menu item MI1-ES would be inconsistent with an inconsistency of translation.

Remember that in KMFasTrans article Art1-ES is the translation into Spanish of the article Art1-GB if both articles are associated, ie if they belong to the same set of translations.

Types of translation inconsistencies:

The types of translations inconsistencies refer to the element source of the translation, the element destination of the translation and each of the fields of those elements that can have inconsistencies.

If an inconsistency is detected when editing or creating an item, the following information is displayed:

Translation inconsistencies info

First of all a warning message: "Translations inconsistencies ...." is displayed with a link to get more information and to take some actions directly. (We'll see this screen in more detail later on). For ease and convenience that same link is also available on the Info & Actions column in each inconsistency row.

Secondly the currently selected language as the language of reference is showed. In the example it is English(UK).

Thirdly the source element of the translation is showed. In the example it is an article whose title is 'Content' and its id is 10. In this case it matches the element shown below as the translation source (lefthand side) but is not so in all cases. For example, if the source element, and the target element are the same then:

    • If the language is the language of reference only self-inconsistencies will be shown and then there won't be any element source of translation.
    • If the language is not the language of reference then it will show translation inconsistencies relative to the source of the translation. This source will be the associated item (in the same set) whose language is the language of reference. If the item being edited is not associated (ie, does not belong to any set) then it will show only its self- inconsistencies and then there won't be any element source of translation.

Fourthly you have the translated item, in this case an article titled 'Contenido' with id:82. This is always the element that appears as the destination of a translation on the right hand side of the screen.

Following is a table with several fields:

Inconsistent Field: is the field detected as inconsistent on the target element relative to the source element. It has two subfields, the 'Fieldset' and the 'Field'. These allow you to identify the field among those that are listed below in the editing form.

Field values in the Source Element: contains the values of the field in the source element that led to an inconsistency in the target element. In the example these are the values of the field 'Category' in the fieldset 'Edit Article' of the article titled 'Content' with ID: 10. The values for this field are:

    • ID: The ID of the selected item in the field. In this example it is a category whose ID is 21.
    • Title: The title of the selected item in the field. In this case, 'Components', which is the title of the category with ID 21
    • Language: The language of the category 'Components'
    • Status: The status of the item in the field. In this case the item is selected in the field.

Field values in the Translated Element: contains the field values in the target element that constitute an inconsistency relative to the source element. In the example these are the values of the field 'Category' in the fieldset 'Edit Article' of the article titled 'Contenido' with ID: 82. Values for this field are:

    • ID:It is the id of the element that should be selected in the 'Category' field. In the example the ID is zero because the inconsistency is 'No translation found' indicating that a translation into Spanish for the category 'Components' with ID: 21 was not found.
    • Title: Is the title of the item that should be selected in the field. In this case is blank because as it happens with the ID the translation was not found.
    • Language: The language of the category that should be selected in the 'Category' field. In the example is blank because as it happens with the ID the translation was not found.
    • Inconsistency: The inconsistency found.

In this example it is interesting to note that the categpry selected in the target element is 'Componentes', which at first sight seems to be the Spanish translation for the category 'Components'. And indeed it is the translation in this case, but the process has not detected it because the category 'Componentes' is not associated with the category 'Components', ie they aren't in the same set of translations. Thus in this example the inconsistency is resolved by simply associating both categories.

Now we will describe the types of inconsistencies that can be found:

    • 1. Selected – No translation found

This is the case explained above. If the element that it is the translation of field in the source element into the target language exists but it is not known because it is not associated (not in the same set of translations that the source), the inconsistency is resolved by associating the two. If the translation of the field does not exist it must be created. The fastest way to associate the items or create a new translation from this screen is by clicking the link found in the warning message at the top of the screen or in the column Info & Actions in the inconsistency row. The screen obtained when clicking that link is as follows:

Selected - No translation found

 

This inconsistency usually appears with some frequency when creating a new element translation if you forgot to previously translate some of the fields you were going to need. For example when translating an article from English to Spanish without having previously translated the category. In the example would be enough to click on the icon Create link (association) to associate 'Components' with 'Composants'.

 

    • 2. Selected – Not selected

Selected - Not selected

 

This inconsistency indicates that a translation of the field in the source element was found but that translation is not selected in the target element. In the example, the category 'Componentes' (ID: 84) is the Spanish translation of the category 'Components' (ID: 21) but it is not selected in the 'Category' field of the article 'Contenido' (ID: 82) .

This inconsistency is resolved by selecting the translation of the element in the destination field. In the example, selecting the category 'Componentes' for the article 'Contenido'.

The screen obtained when clicking the link on the warning message at the top of the screen or in the column Info & Actions in the inconsistency row is as follows:

Selected - Not selected second screen

 

    • 3. Selected – Trashed

This inconsistency is only detected when the component option "Detect inconsistencies for trashed elements" is set to 'Yes'

Selected - Trashed

 

Indicates that the translation of the field in the source element was found and that it is selected in the target element but it is in the trash. The inconsistency is resolved by removing the translation from the trash or by creating a new translation of the field in the source element. Again the quickest way to resolve the inconsistency is by clicking the link on the warning message at the top of the screen or in the column Info & Actions in the inconsistency row. The screen obtained when clicking that link is as follows:

Selected - Trashed second screen

 

    • 4. Selected – Archived

This inconsistency is only detected when the component option "Detect inconsistencies for archived elements" is set to 'Yes'

Selected - Archived

 

Indicates that the translation of the field in the source element was found and that it is selected in the target element but it is archived. The inconsistency is resolved by unarchiving the translation or by creating a new translation of the source field. Again the quickest way to resolve the inconsistency is by clicking the link on the warning message at the top of the screen or in the column Info & Actions in the inconsistency row. The screen obtained when clicking that link is as follows:

Selected - Archived second screen

 

    • 5. No translation found – Selected

This inconsistency usually appears when the field is a multiple choice field and there is an element selected in the target (or translated element) for which no translation into the language of the source element has been found.

No translation found – Selected

 

In the example the category 'Productores' is selected in the Basic Options fieldset of the translated element (in Spanish language) and the process has not found an English translation of that category. In the source element we can see that there is a non selected category titled 'Growers' that looks like it is the English translation of 'Productores'. The process probably has not found it because it is not associated with 'Productores' (not in the same set of translations). The inconsistency is resolved either associating 'Growers' with 'Productores' on the same set of translations if indeed both are translations of each other, or by creating a new translation.

Possible actions to be taken are described in the information displayed on the screen obtained by clicking on the link in the warning message at the top of the screen or in the column Info & Actions in the inconsistency row:

No translation found – Selected second screen

 

    • 6. Not selected – Selected

This case is very similar to the previous one except that the process has found that 'Productores' is the Spanish translation of 'Growers', but nevertheless 'Growers' is not selected in the source element.

Possible actions to be taken are described in the information displayed on the screen obtained by clicking on the link in the warning message at the top of the screen or in the column Info & Actions in the inconsistency row:

Not selected – Selected

 

    • 7. Trashed – Selected

This inconsistency is only detected when the component option "Detect inconsistencies for trashed elements" is set to 'Yes'

Appears when the field is a multiple choice field and an item is selected in the source element for which a translation into the target element has been found and is selected but the element selected in the field of the source element is in the trash. Being in the trash it can not be seen as a selectable option in the field of the source element.

Possible actions to be taken are described in the information displayed on the screen obtained by clicking on the link in the warning message at the top of the screen or in the column Info & Actions in the inconsistency row:

Trashed – Selected

 

    • 8. Archived – Selected

This inconsistency is only detected when the component option "Detect inconsistencies for archived elements" is set to 'Yes'

It is very similar to the previous one when the item is archived.

Possible actions to be taken are described in the information displayed on the screen obtained by clicking on the link in the warning message at the top of the screen or in the column Info & Actions in the inconsistency row:

Archived – Selected

 

    • 9. Selected – Not equal to the source

Indicates that the field value in the source element is not equal to the field value in the translated element and they should be equal. An example is the translation of a menu item whose type must match the type of the source menu item:

Selected – Not equal to the source

 

As seen in the figure the field 'Menu Item Type' contains 'Single Article' in the source element and the same field in the target element contains 'List All Categories'. If associations be created using always KMFasTrans this wouldn't be the case because KMFasTrans don't allow it to occur. But since there is an automatic synchronization among Joomla menu items associations and KMFasTrans menu items associations it is possible to do a wrong menu items association in Joomla and transfer the error to KMFasTrans.

 

All inconsistencies described above are also displayed when editing items using the native editor in Joomla administration area as shown by the following examples:

    • 1. Self inconsistency example

Self inconsistency example

 

    • 2. Translation inconsistency example

In this example it is interesting to note that the source element with ID: 275 is not visible on the screen because it is the element in the reference language that is associated with the one visible (ID: 757).

Translation inconsistency example

 

The first inconsistency indicates that the source element (ID: 275) is set to the value 'About Joomla' as the 'Menu Location' in fieldset 'Details', and a translation of 'About Joomla' into Spanish has been found titled 'Acerca de Joomla' (ID: 9), but the translation is not selected as the 'Menu Location' in the target element (ID: 757).

The second inconsistency indicates that the source element (ID: 275) is set to the value 'Contact Component' as 'Parent Item' in fieldset 'Details', and a translation of 'Contact Component' into Spanish has been found titled 'Componente de Contactos' (ID: 755), but the translation is not selected as 'Parent item' in the target element (ID: 757).

 

Inconsistencies of articles are also displayed when editing articles in the front-end as shown in the following example:

Translation inconsistencies in the front-end

 

As in the previous example the source element is the element in the reference language (ID: 25) which is not visible on the screen. The inconsistency indicates that the category of the source element, the article 'Koala' (ID:25), is 'Animals' and its Spanish translation titled 'Animales' with ID: 91 is not the category of the article in Spanish titled Koala-es (ID:96) (the translated element). This inconsistency would be resolved simply by selecting the value 'Animales' as the 'Category' in the translated element.

 

Detecting Translation Inconsistencies

To detect translation inconsistencies there are two ways (it is understood that the item is associated, i.e. belongs to a set of translations since otherwise it is not possible to detect translation inconsistencies, only self-inconsistencies):

    • 1. When creating or editing a translation the detection of inconsistencies is performed on all associated elements displaying those of the target element only. If there are other elements associated in other languages with translation inconsistencies, the links on the language tabs on the lefthand side will be red coloured and disabled as shown in the figure.

Detecting Translation Inconsistencies example

 

    • 2. Manually at any time you can launch a process that detects translation inconsistencies of one or more components for all languages. This process is launched from the screen obtained by pressing the icon 'Verify Incons' of the Translation Dashboard. This screen is described in detail later on.

 

Showing Inconsistencies in the Translations Dashboard

The Translation Management Dashboard shows inconsistencies as follows:

    • 1. The ID of the element in the ID column is in red color and framed in a box when there is an inconsistency in that element. Hovering on the ID, information on the inconsistency is displayed.

Examples:

Showing Inconsistencies in the Translations Dashboard example1

 

Showing Inconsistencies in the Translations Dashboard example2

 

    • 2. The ID of the element in the column of its language is framed in a box with a yellow background. This indicates that the ID contains inconsistencies.

Showing Inconsistencies in the Translations Dashboard example3

 

    • 3. The column 'Set Status' contains a warning icon indicating that some element of the set contains inconsistencies. This is useful when the element containing the inconsistency is in a language not shown on the screen as in the following example:

Showing Inconsistencies in the Translations Dashboard example4

 

This example also shows the filter 'Inconsistencies only' that can be used to display only those items that present inconsistencies.

 

Note:

In the Dashboard only the inconsistencies of associated elements are shown. The inconsistencies of non-associated elements, ie not belonging to any set of translations are shown only in the editing screen (and of course in the process of Verifying inconsistencies), and since they are not associated only self inconsistencies can occur.

 

Verifying Inconsistencies Process

The inconsistencies Verify process is a process that can be launched manually at any time. This process recalculates self inconsistencies or translation inconsistencies and builds a report with the result of the last time he was launched.

The process is launched from the dashboard clicking the 'Verify Incons' button. The screen that is obtained by clicking on that link is:

Verifying Inconsistencies Screen

 

As seen in this screen you can recalculate the two types of inconsistencies but separately. For self-inconsistencies you have to select a language and click 'Verify'. For translation inconsistencies you have to check the box 'Verify' and one or more components in the box below and then click 'Verify'.

Keep in mind that if you don't select all components, you may have false positives for the inconsistencies that an element can have. Yet it is useful to reduce the time required to recalculate inconsistencies when you know what you are doing. When in doubt the best thing is to select all components although the process takes a little longer.

When the process ends the results are displayed in the upper part of the screen as shown in the following example:

Verifying Inconsistencies Screen results

 

Inconsistencies are shown for each component (in this case we recalculated translation inconsistencies), and the total is also shown. To see the details of the inconsistencies found you can click on the 'View Last Report' button on the right side of the screen. The following information will display:

Verifying Translations Inconsistencies report

 

The display shows for each item the same information displayed in the edit screen. This screen allows you to filter by most of its columns to easily obtain the desired information.

If what we have recalculated are self inconsistencies, we can see the report result by selecting the language and clicking on "View Last Report" on the lefthand side of the screen obtaining the following:

Verifying Self Inconsistencies report