Index

KM FasTrans User Manual

This User Manual contains information not available in the online help and in some cases also contains some of their support when the context so requires.

Please read this document before using the product and especially before asking for support, because if the question is answered in the document it will not get any response from the support group.

Version History

 Version  Date Modified/New Chapters
Version 2.1 (KMFasTrans 3.2.2) February 2021 Introduction, Translation Tags, Special Translation Processes, Management of Translation Items
Version 2.0 (KMFasTrans 3.2.0) January 2020 Everything
 Version 1.8 (KMFasTrans 3.0.0)  July 2014  Introduction, Installation
 Version 1.7 (KMFasTrans 2.3.0)  March 2014  Installation
 Version 1.6 (KMFasTrans 2.1.2)  October 2013  Configuration
 Version 1.0  April 2012  -

 

 


Introduction

KMFasTrans is a management tool to greatly boost efficiency and effectiveness in the creation of multi-language websites under Joomla!. For this it relies on native multi-language functions in Joomla!, but it greatly reduces the effort required to achieve it thanks to its rich functionality.

The most important characteristics are briefly described below:

Translations Set concept

The translations set concept is analogous to that of a file cabinet with a folder containing a text in the source language of translations, and a folder for each target language containing the translation of the text in the folder of the source language. Thus, the set of translations contains the original text and all its translations.

When you translate content into several languages in Joomla!, what you are doing is creating a different item for each language. Each item is assigned to a language and has the same content (translated) that another item in another language. For example, suppose you have a website with three languages, English, French and Spanish. For each content (category, menu, banner, article ..) you have to create three items, one for English, one for French and one for Spanish. And these three elements are related and have many things in common, and here is where KMFasTrans comes to help.

In KMFasTrans we created the concept of Set of Translations (or Translations Set). A Set of Translations is the set of items representing the same content in different languages. In the example above, if the items have the id's 10 for English, 23 for French and 31 for Spanish, you will have a Translations Set composed of items whose id's are 10, 23 and 31. The items with ids 23 and 31, which are translations of the item with id 10, that is the source item, are called translation items.

Each Translations Set has several attributes. One of the most important attributes is the Status, indicating whether they have done all the translations of the same content, whether or not they are all published, and if there have been any changes since the last publication.

To find translations already made and their status, you have the view "Translations Dashboard" where all the information of all translations of a particular item or element type is in sight. From this view you can make changes to the sets of translations, by associating, disassociating or changing items of the Set, or changing the Set Status. You can also publish, unpublish or trash any of the items whether they are or not assigned to a Set. For a more detailed description see the KMFasTrans Dashboard Help.

An example of the content of a set of translations is shown below:

To learn more about this topic visit Translation Sets

Boosting effectiveness and efficiency

Creating/Editing items

Another aspect that KMFasTrans will help you enormously is on creating or editing translations items. First of all you must know that to create or edit a translation item with KMFasTrans, you must have created in advance, using the native Joomla!, one item (and preferably only one), whose language will be the Source Language for the translation.

Following the previous example of a website in three languages, English, French and Spanish, the most efficient sequence of tasks would be to create the entire site first in one language, eg English, and then use KMFasTrans to translate each content (categories, articles, ...) into the other languages. The most efficient sequence to create items in the source language, and also to make the translations is as follows:

Categories, Field Groups, Fields, Tags, Embedded Modules in articles, Articles, Banners, Contacts, Newsfeeds, Weblinks and then Menus and Menu items and the remaining Modules. 

An alternative may be to create each item first in the source language and then in all the others, in the same sequence indicated above. For example we can create a category in the source language and then create all its translation categories to the target languages.

Once we are satisfied with the content in the source language we can start to create translations.

When you create an item as a translation of another one using KMFasTrans, the new item created in one of the target languages inherit some attributes of the original item, such as the type. To facilitate the creation of the new item, KMFasTrans provides several tools to copy the item parameter values from the source item to the target item (ie, cloning the item). These copy tools allow you to copy all non-language dependent values. For example, if you are creating an article, its category is language dependent because it will not be the category of the original article but a translation into the target language. The following image illustrates these tools:

 

KMFasTrans will also help you with the language dependent parameters, because it will automatically filter all language-dependent values. In the above example, if you are creating a new article, the drop-down list of categories that the new article may belong to, will only show those that are in the same language in which you are creating the new article (or the language '*'). And the same applies to all drop-down lists. This way you do not have to worry about ensuring that an item is in a category of their own language, avoiding mistakes and wasted time. The following image illustrates this:

Translations suggestions.

One of the characteristics that provide greater efficiency in the creation of translations is the use of known translations to populate the language-dependent fields. For example if you are translating a menu item of type 'Single Article' from English to French, and a French translation of the article is known (it was created erlier) , the 'Select Article' field in the French menu item will be automatically populated with the translation of the article into French. Thus saving the time to search the article and also avoiding possible mistakes. The same applies for any language-dependent field of any element type (articles, modules, menus, etc.). The following image illustrates this:

Machine translations.

KMFasTrans, also provides support for content translation using a 'translation Service'. When creating or editing an item, you will see in certain fields of the edit form, a button . Pressing this button, the content of the field or fields is populated with the translation of the content of the original field. For example, if you are translating an article from English to French, when you press on the Title of the article in French, it will be filled in with the French translation of the title of the article in English.

There are several possibilities to do the machine translations as you can see in the following image:

 

To learn more about this topic visit Enable Machine Translation service, Create Translation Tags and Create Translation Process.

Automatic items associations.

Another important aspect is the association of items. If you want (as usual) to view the translation of the current page when you switch the language in the front end, it is necessary that the menu item that leads to the page in one language, be associated with the menu item that leads to the page in the other language. When the number of languages or menu items is high, the manual association of each menu item, can be very time consuming. But with KMFasTrans this is done automatically. Each time you create a new item with KMFasTrans, automatically you associate the new menu item to those who belong to the same set of translations. No omissions or mistakes.

The same is true when you associate/dissociate elements to/from a set of translations, the Joomla item associations are also created or modified to reflect the changes in the set. And it also works in the opposite direction, changes made to Joomla item associations will be automatically reflected in KMFasTrans sets of translations.

There is also an option that allows you to launch a processs that will create, edit or delete sets of translations using the current Joomla menu associations and also the opposite, create, edit or delete Joomla item associations using the current sets of translations.

Creating translations into several languages at once

A very important feature to improve efficiency is the possibility of creating several translations at once. From the Translations Management Dashboard window it is possible to load in the KMFasTrans editing window several empty forms for the creation of several translation elements at the same time, for example the article translations of an original article to several target languages. In this way, with only three clicks, 'Copy All', 'Translate All' and 'Save', we can create translations in all the languages we want. The following image illustrates this functionality:

 

In the upper left corner you can see a list of languages to be saved, which means that the modifications made to the items in those languages will be saved. Only items that have had modifications will have their language checked in that language list. In this example, when you click on the button 'Save' or 'Save & Close', the translations of the menu item 'Compact List of tagged items' in English language, will be created in Dutch, French, German, Italian and Spanish languages. And all at once!.

Guaranteed quality of the multilanguage structure thanks to the consistency checking process

KMFasTrans PRO introduces a new concept in the process of translating a website that we have called 'inconsistencies'. The purpose of this feature is to detect potential mistakes that can occur when creating a multi-language site.
A website that does not contain inconsistencies provides the guarantee that all that has been translated is consistent and will have the same behavior in any language.

 Below is an example of inconsistencies. To learn more about this topic visit Deal with inconsistencies.

 

Improved security with language specific permissions.

Last but not least, KMFasTrans, provides permissions to the language level. If you have different people doing translations into different languages, you can create groups of translators with limited access to certain languages. For example, a group of translators can handle the translation into French. The components of this group can see all the translations into other languages, but can only perform the actions that they are allowed in each language. To learn more about this topic visit Permissions Management.

All this will help you be more efficient in your translation tasks and maintain all your translations under absolute control.


Installation/Unistallation

Installation

KMFasTrans is composed of a component and several plugins and modules. Installation is performed following the same procedure as the installation of any component, using the Joomla installer. When installing the component, the plugins and the modules are also automatically installed without additional intervention.

From version 2.3.0 when you install KMFasTrans PRO for the first time or you upgrade to PRO from FREE, the installation process will automatically create sets of translations based on existing Joomla associations.

If you are installing for the first time, the installation process will check if the version of KMFasTrans to be installed is compatible with the version of Joomla, and if so, it will create all tables and data necessary for proper operation.

If it's an update, that is, it is not a first installation, KMFasTrans will keep all data as they were before the upgrade. The upgrade process checks, just like in the installation, if KMFasTrans version is compatible with the version of Joomla, and will also perform the following additional checks:

        • The version to be installed is equal to or higher than the installed version.
        • FREE version is not installed over PRO version.

If any of the above checks fails, the process aborts and displays an error message or a warning. The state existing prior to the installation or upgrade remains unchanged.

Installing support for third-party extensions

For KMFasTrans to know third-party extensions you need to install the proper support plugin for each third-party extension you want to use. When installing the plugin, the Joomla, KMFasTrans and third-party extension versions are checked and if incorrect the plugin is not installed or is not enabled if already installed.

If the plugin installation is sucessful, all extension elements supported will be accessible on the filter - Select Element Type -. For example, once the plugin for K2 support is installed that filter will show the following:

K2 elements

Extension specific Modules and Menu Items will also be available when selecting Modules or Menu Items in the filter.

You can view the supported third-party extensions and their versions and download the support plugin in Third-party extensions support

Uninstallation

KMFasTrans is uninstalled just like any component, but you only need to uninstall the main KMFasTrans component. By doing so, the plugins and all modules will also be unsinstalled.

You should not uninstall the product unless you do not want to continue using it anymore, because the uninstall process will remove without notice all tables and all data, and can not be recovered.

Otherwise you must upgrade.

Needless to say that you should make a backup copy of the website prior to any installation or uninstallation of the component.


Configuration

You can configure the KMFasTrans selecting Components-> KM FasTrans-> Control Panel-> Options, or System-> Global Configuration-> KM FasTrans.

A modal window appears with several tabs:

KMFasTrans permissions configuration 

 

In all tabs except 'Translation Service' the tips on the options texts clearly explain the purpose of each parameter.

The following describes the tab 'Translation Service':
 

To enable a translation service you have to access the KMFasTrans configuration window. You can get there from Components-> KM FasTrans-> Control Panel-> Options, or from System-> Global Configuration-> KM FasTrans. Once there you have to click on the 'Translation Service' tab and you will get the following screen:

 

Here you can configure a machine translation service from those available in the dropdown menu 'Translation service'. This can be used within KMFasTrans PRO to suggest translations when translating items.

The currently translation services supported are:

  1. Microsoft Bing translator.

Microsoft Bing Translator is a hosted service by Microsoft that provides language translation.

 To enable the Microsoft Translation Service you have to:

 Step 1. Open an account in Microsoft Azure, Cognitive Services

At the time of writing you can subscribe to several plans based in the number of characters to translate per month. There is a free plan that allows translation up to 2 million characters per month.

Please note that Microsoft may change its plans at any time.

When you open an account they give you a KEY1.

Step 2. Configure KMFasTrans Translation Service.

    1. Choose Microsoft Text Translator (Bing V3) as the translation service. When making this selection you will see an input box with the label 'Bing translator KEY1'.
    2. Enter in this input box the value of KEY1 obtained in step 1

Click on Save and you are done. Now, in the editing screens of KMFasTrans, when you see the icon

and hover the mouse over it, the drop-down

will be displayed. By clicking on the link you want from the two existing links you will get the translation to the language you are editing, or to all the languages that you have loaded on the editing screen


Setting up the Site as Multilingual

To set up a multilingual website, before starting the translations you have to perform several steps that are described below:

  • Step 1. Create or update mandatory items in language *.

Access to the page to create the mandatory items in language '*' is achieved by clicking on the 'Set the site as Multilingual' link in any of the KMFasTrans views. When you click on that link, the following page will be displayed


 

These items are necessary for the Joomla multi-language native mode and consists of the following:

    • A default home menu assigned to language 'All'.
      • This process creates a menu with title "Menu-All", menu type "defaultallmenu" and type "Category List".
    • A root category assigned to language 'All', required for "Menu Item-All".
      • This process creates a category with title "Root Category-All-Articles".
    • A default home menu item assigned to language 'All' as the default Home page for language "All".
      • This process creates a menu item with title "Menu Item-All" in the menu "Menu-All" .
    • A menu-type module linked to menu "Menu-All" and unpublished.
      • This process creates a menu-type module with title "Menu Module-All" in the position "default_all_menu_module_position" (a fictitious one) .

Each time the Create button is pressed, KM FasTrans will try to create these four items and will create only those that do not exist yet. You will be informed of the items that already existed and those just created. You can also know at any moment the status of these items on this page and also in the Control Panel window.

If in any of the elements, instead of the OK state you see the text Not found or not properly configured!, then that element does not exist or is in the trash or archived. Pressing the Create button again will create the element or it will be published if it was archived or in the trash.

You don't have to use these items for anything ( and is better if you don't use them at all as if problems arise you could delete them and recreate pressing this button. An exception to this might be the category, which may be used freely if needed). If you need a menu, menu item and menu module assigned to language 'All' you can create as many as you need without changing anything of those four items that were created in this step.

If you already had these items in place before installing KMFasTrans, you can just ignore the warning messages, or you can click on the button anyway because it will not affect what you had previosly, the only change will be that the default home page for language 'All' will be the new automatically created menu item with title "Menu Item-All". You also can use the proper option in KMFasTrans configuration to disable the warning message.

  • Step 2. Change language of items from * to site default language.

Access to the page to change the language of items in language 'All' is achieved by clicking on the 'Set the site as Multilingual' link in any of the KMFasTrans views. When you click on that link, the following  page will be displayed:

 

To change the language of the elements you want, from '*' to the site default language or to the language you choose you must do the following:

1. In the 'Change Language to' drop-down below, the site default language is pre-selected. If it is not correct, select the one that is.

2. In the 'Select Items' drop-down, select the mode you want. You have an explanation of what each mode does when hovering the mouse over the label.

3. The 'Select Components' drop-down is only visible if you selected 'All items' or 'All except those selected below' in the 'Select Items' drop-down. If it is visible you have to select the components for which you want the change to be applied. If you do not select any, no changes will be made.

4. Select, in the table of components below (if it is visible), the elements that you want to change or not to change depending on the mode you have selected. If you selected 'All items' in the 'Select Items' drop-down, the table will not be displayed and all the items of the components selected in 'Select Components' drop-down will be modified.

5. Finally click on the 'Change Language' button to change the language.

As with any major changes to the website, it is advisable that you make a backup before taking this action.

loadmodulei
  • Step 3. Assign language to menus.

When installing the extension, KMFasTrans will add the language field as a required field for menus, so you can easily control the language of the menu-items assigned to a menu.

The installation process tries to assign the language to each menu based on the language of the menu items assigned to that menu. Sometimes it does not get it and assigns the Default Site Language.
In all cases it is necessary to perform a revision of the assigned language and in cases where the installation failed to assign the language there will be menus that have been assigned the Default Site Language incorrectly and the correct one must be assigned manually.

To do this, KMFasTrans has included a 'Batch' function on the page that lists all the menus to be able to change the language to several menus simultaneously.



You just have to select all the menus that must have a new language and click on the 'Batch' button to obtain the following window:



Select the appropriate language in 'Set Language' dropdown and click on 'Process' to make the change.

  • Step 4. Create Sets of Translations.

If in your Joomla installation there are elements that are translation of other elements before the installation of KMFasTrans, it is necessary to manually create some translation sets. KMFasTrans will create the translation sets from the Joomla associations found during installation, but it cannot create them for the elements for which Joomla associations are not supported.

Thus it is necessary to manually create translation sets for Menus, Banners, Modules, Fields Groups, Fields, Tags and Web links and third party extensions.


The most efficient way to do this is by using the Multiple Manual Associations functionality. In the Multiple Manual Associations online help of this page you have all the necessary information to perform this step.

  • Step 5. Publish the Language Filter plugin.

You have to publish the Language Filter plugin.

You can access the plugin from Extensions->Plugins and then search por the Language Filter. You will have the following screen:

You have several options. It is important that if you want to have translated content switching when switching languages you have to set the value 'YES' for the option "Associations". If you forget to do it at first then you will have to create associations manually re-editing the items.

  • Step 6. Publish the Language Switcher module.

 

KMFT Language Switcher module is an alternative to native Joomla Language Switcher module when the component KMFasTrans is installed. What this module adds respect to the native module is:

  • Language switching at the article level for categories in language 'All'.

    Joomla 3.x provides article level switching, but if the language of your article and the category to wich the article belongs is 'All' then you still need the KMFT Language Switcher module. As an example, suppose we have a menu item whose type is Featured Articles in English, which shows the articles that belong to one or more categories. If one of these categories has language 'All' and there is an article in language 'All' assigned to that category, when the menu item is displayed, all the items in those categories will be seen, including the one in language 'All'. However, if we click on the title of the article to see it in its entirety, and then we switch to another language, for example Spanish, the native Joomla Switching Module will not show in Spanish the same article that is in language 'All', but the list of featured articles in Spanish.

  • Language switching at the article Table of Contents

If you have an article with a lot of text such as a user manual and you have divided it into sections using the 'Page Break' button in the editor, and you have enabled the 'Button - Page Break' and 'Content - Page Break' plugins, when the article id displayed a table of contents will be displayed. Clicking on a link in the table of contents will display the corresponding section. Well, if you use the KMFT Language Switcher, when you change the language you will see the same section in the new language.

  • Preserving custom parameters in the url in SEF mode

If you want to add custom parameters to your urls and you have SEF mode enabled, the KMFT Language Switcher module will keep those parameters when switching language. For example, if you have a menu item of the type https://mysite/myarticle and you want to add one or more parameters to have a url of the form https://mysite/myarticle?par1=value1&par2=value2 when switching language, all the links to any other language will have the string ?par1=value1&par2=value2 added to the end of the url, for example for the Spanish language we would have https://misitio/es/miarticulo/?par1=value1&par2=value2.

If you don't use any of the above features you can publish the standard Joomla! Language Switcher module.

 


Translation Tags:

When translating a text using a machine translation service, there may be character strings in the text in the source language that should not be translated directly into the target language because they have a special meaning. This is the case of strings that are analyzed by plugins that act according to the content found, such as the string 'loadmoduleid xx' to insert the module whose id is xx. If 'loadmoduleid' were translated into another language, the plugin would not recognize the string as a special one and therefore would not insert the module.

To identify these strings of characters to be able to perform a special process, it is necessary to enclose them between special characters or sequences of special characters, that we call Translation tags. These are registered in pairs that contain an opening tag and a closing tag.

Thus, each string of characters that triggers a special process will be enclosed between an opening tag and a closing tag. In our previous example the opening tag usually used is '{' and the closing tag is '}'. The whole string is {loadmoduleid xx}.

Translation tags do not have to be a single character, they can be composed of several characters without spaces such as and .

Each pair of tags is composed of the title, the opening tag, the closing tag and the state. The title is the one that must be selected when creating a process associated with a tags pair. If there is a process associated with one of these tag pairs, it will only be executed if the tag pair is in the enabled state.

If you are in the list view you can see a list of all the tag pairs available. The 'Curly brackets', 'A tag' and 'HR tag' tags are created in the installation process. Except 'Curly brackets' the rest are created in disabled state. To use them you just have to enable them. The Gallery tag has been created for this explanation but is not created in the installation process.

If you are in the edit view, you can create or edit tag pairs.

When creating a pair of tags, keep in mind that the opening tag and the closing tag can not be equal, and that none of the tags can exist as an opening or closing tag or as an opening or closing delimiter (the latter defined when creating special translation processes). For this reason, when creating a pair of tags you can receive some warning that it is not possible to create that pair. The closing tag > is an exception to this condition.


Special Translation Processes:

Special translation processes are performed during the translation of contents from a source language into a target language using one of the translation services configured in the KMFasTrans options.

Frequently there are some sequences of characters in the source text of the translation that are not intended to be translated directly into the target language because they represent a content with special meaning. This is the case of strings that are analyzed by plugins that act according to the content found, such as the string {loadmoduleid xx} to insert the module whose id is xx. If 'loadmoduleid' were translated into another language, the plugin would not recognize the string and therefore would not insert the module.

Following with this example, the value xx will probably be different for the different languages, so in this case it is not only necessary to keep the string 'lodmodule' untranslated, but also to change the value xx to the id of the module that is the translation of the module with id xx. Naturally this requires that there is a translation, known by KMFasTrans, of the module whose id is xx to the target language. This will always be true if the module whose id is xx has been translated with KMFasTrans before translating the article containing the string.

To achieve this functionality, these special translation processes have been designed. Each process is represented by a rule to which some parameters are supplied. Each rule can use a subset of the total. The subset of parameters used by a rule is displayed when selecting the rule in the 'Rule' drop-down.

To identify the process to be performed, both the rule and its parameters must be enclosed between tags. The tags to which the process is applied are selected in the 'Applies to' parameter. The tags themselves are configured in the 'Translations Tags' screen.

Access to the list screen of the special translation processes is done through the 'Special Translation Processes' link from any of the KMFasTrans screens. By clicking on this link you get this screen:

The special translation processes seen in the image, except for the R3, R3A and R3B rules, are created in the installation process. Except 'Preserving text...' the rest are created in disabled state. To use them you just have to enable them.

The columns represent the fields of each special process. Some fields are applicable and others are not applicable depending on the chosen rule. In the list above, empty columns indicate fields that are not applicable.

Rules 3, 3A and 3B require to supply a text for each language. The editing screen for these rules (a Rule 3B in this example) is as folllow:

General tab:

Replacements by language tab:

The following describes the currently available rules and their parameters.

Rule 1. Preserving text (do not translate) between { }

Rule 1 performs a process that consists in preserving, without translation, all the characters contained between the opening tag and the closing tag for any pair of configured tags in the 'Aplies to' parameter.

Example:

Rule 1 is the default rule. It will apply whenever no other applicable rule is found for the string under treatment. The other rules have preference over Rule 1. It is advisable to have Rule 1 enabled.

Rule 2. Partial translation.

The string set in the 'Trigger' parameter will be preserved without translation and the rest of the content between the tags to which this rule applies will be translated into the target language.

Example:

Parameters set on the General tab: (The trigger can not contain spaces)

  • Trigger: tab=
  • Applies to: 'Curly brackets' . We are assumning that 'Curly brackets' is configured as a pair of tags and the tags are { and }

Process performed: Whenever the string is found in the source text, this string will be replaced by the string in the text translated into the target language, where yyy yyy is the translation of xxx xxx into the target language.

If the text is omitted, the result is the same as that of Rule 1 only for the trigger, that is, the trigger will be retained in the target language text. This can be useful if you do not want to apply Rule 1, which preserves any text between tags but you want to preserve only a particular text between tags (the trigger).

Rule 3. Replace content between tags in the source text with specific content for each target language.

The replacement affects all content between the configured pair of tags for this process.

Example:

Parameters set on the General tab:

  • Applies to: 'Gallery' . We are assumming that Gallery is configured as a pair of tags and the tags are  and

Parameters set on the Replacements by Language tab:

  • English: some text in English
  • Spanish: some text in Spanish

Process performed: If the source language is English, whenever the string some text in Englishis found in the English text, this string will be replaced in the text translated into Spanish by the string some text in Spanish.

Warning: If you configure this rule for the same tags as Rule 1, as this one takes precedence over Rule 1, Rule 1 will never apply and whenever any content between these tags is found, this rule will apply. Normally you will have set Rule 1 for tags { } and Rule 3 for other more specific tags.

Rule 3A. Replace content between tags (except Trigger parameter) in the source language with specific content for each target language, when the trigger is found.

The replacement affects all content between the opening and closing tags except the content of the 'Trigger' parameter. The process will only take place when the text entered in the 'Trigger' parameter is found.

Example:

 

Parameters set on the General tab: (The trigger can not contain spaces)

  • Trigger: trigger1
  • Applies to: 'Curly brackets' . We are assumning that 'Curly brackets' is configured as a pair of tags and the tags are { and }

Parameters set on the Replacements by Language tab:

  • English: some_dir/some_english_file.php
  • Spanish: some_dir/some_spanish_file.php

Process performed:

Let's assume that:

  • The source language is English
  • The target language is Spanish

Then: whenever the string is found in the English text, this string will be replaced by the string in the text translated into Spanish language.

Rule 3B. Replace content between delimiters inside tags in the source language with specific content for each target language, when the trigger is found.

The replacement affects all content between the opening delimiter and the closing delimiter between tags. The process will only take place when the text entered in the 'Trigger' parameter is found.

Example:

Parameters set on the General tab: (The trigger can not contain spaces)

  • Trigger: jumi (this is an example, it may be any string)
  • Applies to: 'Curly brackets' . We are assumning that 'Curly brackets' is configured as a pair of tags and the tags are { and }
  • Opening delimiter: [
  • Closing delimiter: ]

Parameters set on the Replacements by Language tab:

  • English: some_dir/some_english_file.php
  • Spanish: some_dir/some_spanish_file.php

Process performed:

Let's assume that:

  • 'trigger' be jumi
  • The source language is English
  • The target language is Spanish

Then: whenever the string is found in the English text, this string will be replaced by the string in the text translated into Spanish language.

Rule 4. Replace an id between tags in the text of the source language with the id translation into the target language.

In this rule the Trigger is mandatory. The id is in the string between the configured tags except the trigger.

For this process to work properly, there must be a module in the target language associated in KMFasTrans with the module in the source language. This will always be true if the target language module was created using KMFasTrans as a translation of the source language module before translating the article containing the string. If no module is found in the target language associated in KMFasTrans with the module in the source language, the same existing xx in the source language will be preserved in the target language.

Example:

Parameters set on the General tab: (The trigger can not contain spaces)

  • Trigger: loadmoduleid
  • Applies to: 'Curly brackets' . We are assumning that 'Curly brackets' is configured as a pair of tags and the tags are { and }
  • Component: Modules

Process performed:

Let's assume that:

  • The source language is English and the target language is Spanish
  • 'xx' is the id of the module in English
  • 'yy' is the id of the module that is associated with the module with id xx in KMFasTrans, that is, the module with id yy is the Spanish translation of the module with id xx.

Then: whenever the string {loadmoduleid xx} is found in the English text, this string will be replaced by the string {loadmoduleid yy} in the text translated into Spanish.

Below are processes that use the R4 rule for customizable fields and field groups:

Rule 4A. Replace an id between delimiters in the text of the source language with the id translation into the target language.

In this rule the Trigger is mandatory. The id is the string between delimiters.

For this process to work properly, there must be a module in the target language associated in KMFasTrans with the module in the source language. This will always be true if the target language module was created using KMFasTrans as a translation of the source language module before translating the article containing the string. If no module is found in the target language associated in KMFasTrans with the module in the source language, the same existing xx in the source language will be preserved in the target language.

Example:

Parameters set on the General tab: (The trigger can not contain spaces)

  • Trigger: module
  • Applies to: 'Curly brackets' . We are assumning that 'Curly brackets' is configured as a pair of tags and the tags are { and }
  • Opening delimiter: [
  • Closing delimiter: ]
  • Component: Modules

Process performed:

Let's assume that:

  • The source language is English and the target language is Spanish
  • 'xx' is the id of the module in English
  • 'yy' is the id of the module that is associated with the module with id xx in KMFasTrans, that is, the module with id yy is the Spanish translation of the module with id xx.

Then: whenever the string {module [xx]} is found in the English text, this string will be replaced by the string {module [yy]} in the text translated into Spanish.

Below is a process that uses rule R4A for customizable fields:

Rule 5. Special for modules. Replace the title xxx of a module in the source language, by the corresponding title in the target language.

For this process to work properly, there must be a module in the target language associated in KMFasTrans with the module in the source language. This will always be true if the target language module was created using KMFasTrans as a translation of the source language module before translating the article containing the string. If no module is found in the target language associated in KMFasTrans with the module in the source language, the same existing title xx in the source language will be preserved in the target language.

This rule must be configured in the following way:

Example

Parameters set on the General tab: (The trigger can not contain spaces)

  • Trigger: loadmodule
  • Applies to: 'Curly brackets' . We are assumning that 'Curly brackets' is configured as a pair of tags and the tags are { and }
  • Component: Modules

Process performed:

Let's assume that:

  • 'trigger' is loadmodule
  • 'type' is the module type
  • 'source_title' is the module title in the source language
  • style is the module style (which is optional)
  • 'target_title' is the title of the module that is associated with the module with title 'source_title' in KMFasTrans, that is, the module with title 'target_title' is the Spanish translation of the module with title 'source_title'.

Then: whenever the string , is found in the text in the source language, this string will be replaced by the string  in the text translated into the target language. 

Rule 7. Translation of the value of the 'title' attribute in HTML tags.

Special translation processes that use this rule will automatically translate the value of the 'title' attribute of the tags to which the process applies. In the image you can see a translation process that will translate the value of the 'title' attribute of the <a and <hr tags.

The case of the <hr tag is important because when it is used to create a Table of Contents in an article, this special translation process translates the links in the Table of Contents.

 

 


Permissions Management

KMFasTrans supports the management of native Joomla permissions and also introduces a new layer of language-level permissions. Thus, the actions permitted to a user on languages and elements of a language will be divided into two main categories:

A. Language Permissions

These are the Languages component permissions. They affect the management of languages only, ie Installed Site Languages, Installed Administrator languages, and Overrides. You can allow or deny management of languages for a user group. If you deny, the users of that group will not have access to these functions. Actually they will not see the linkss.

A button 'Language Manager Options' has been added to the KMFasTrans Control Panel toolbar to facilitate Language setting permissions.

B. Translations Permissions

These are permissions to create, delete, edit, edit state or edit own of translations elements and are a combination of the following levels of permissions:

      • 1. KMFasTrans component permissions. These are the highest priority translations permissions. If an action (such as editing the state) is denied in KMFasTrans it will can not be taken at any level.
      • 2. The permissions of the Element-Component. This refers to the component that contains the items being treated. For example Content if we are creating or editing an article, or Banners if we are editing or creating a banner.
      • 3. The permissions of an specific language. For example, you can not edit an article or any other item in English if you have not edit permission for English language.

Permissions of of an specific language are only supported on KMFasTrans PRO.

      • 4. The permissions of a particular item. It applies to articles or categories. You can not edit a particular article if you do not have permission to edit this article.

Using these two categories and four levels of permissions you will have great flexibility in determining what a translator can do. You can deny all administration permissions for all components except KMFasTrans, only allowing users to create new translations or edit existing ones. In terms of security this is similar to creating translations from the front-end.

For example you could set up a group of translators who only are allowed to translate banners to the French language, and unable to publish or unpublish the banners they create. To do this you have to:

    • Allow Access Administration Interface to this group in KMFasTrans Options.
    • Deny Access Administration Interface to this group in Language Manager Options of KMFasTrans.
    • Deny Delete, Edit and Edit State to this group for every language except French in KMFasTrans Content Languages.
    • Deny Access Administration Interface to this group in every component including com_banners.
    • Deny Create, Delete, Edit, Edit State, Edit Own in every component except com_banners.
    • Allow Create, Delete, Edit and deny Edit State in com_banners.

When a user of this group access the administration it will see one screen similar to the following one:

KMFasTrans permissions only

 In the above image you can see several things:

1. The user only has access to the component KMFasTrans, within it, only to Control Panel and Translations Management Dashboard. He is not allowed to manage languages because the Access Administration Interface has been denied.

2. The element types he can select in the - Select Element Type - dropdown list are Categories and Banners only (Banners is selected in the image). 

3. In the listing you can see that all languages except French are in gray, ie nothing can be changed.

4. The status in the column French(FR) is also in gray because we have denied Edit State for this users.

With respect to Translations Permissions, if you do not have permission to take a certain action, you can not click on the text or image that enables the action. Furthermore, in order to recognize that you do not have permissions, the text or image will appear in gray and in most cases by hovering the mouse over the text or the image, an explanatory text will be shown.

To assign permissions to users, you must create one or more user groups and assign each of them the desired permissions.

How to create a group could be as follows:

a). Go to Users-> Group-> Add new group.
b). Set as Group Title: "Translators".
c). Set as Parent Group: "Manager".
d). Save and go to Users-> Access Levels-> New Access Level.
e). Set as Title Level "Translations" and check the "Translators" checkbox.
f). Go to System-> Global Configuration->KM FasTrans.
g). In the Permissions tab and in the group Translators, the Action 'Configure' should be 'Denied' and the Action 'Access Administrator Interface' must be 'Allowed'. The remaining actions, 'Create', 'Delete', 'Edit' and 'Edit State must be configured as appropriate for the user group that is being defined.
h). Click 'Save' and make sure that the settings are correct.

If you want to allow or deny language permissions for this group you have to access the Language Permission screen:

a). Go to System-> Global Configuration->Languages.

The Language Manager Options screen will open and you can configure the permissions of the group in the Joomla Language Manager standard way.

Now you can register the users you want in the "Translators" group. These users can only perform the allowed actions.

With this basic configuration, a user of the group that we have created can do everything that is allowed to his group in each component. It is possible to refine the permissions of that group by setting the options you want in each component. For example, it could prevent group users from creating or editing Banners.

Then, if you want to, you can set permissions for each language for that user group. To see in detail how to do this see KM FasTrans New/Edit Content Languages Help.

Setting permissions of KMFasTrans.

KMFasTrans permissions are configured as those of any component. If allowed, you simply need to click on System-> Global Configuration->KM FasTrans. After clicking on the 'Permissions' tab, the standard Joomla permissions management screen will be displayed.

Setting permissions of a particular language.

This functionality is only supported on KMFasTrans PRO.

Permissions of a particular or specific language is an important feature of KMFasTrans PRO. This allows users groups access to different sets of languages. Permissions for a particular language are set as follows:

If allowed, on the 'Content Languages' Screen click on the title of the language or enable the CheckBox and click Edit in the toolbar. This opens a window where you can select one or more user groups (previously created).

For each user group you can set the following permissions:

    • Delete
    • Edit
    • Edit state

Setting Language Permissions has the following effects on the operation of KMFasTrans:

Language Component Permissions Effects in Content languages Effects in specific Content Language Effects in Translations
Access Create Delete Edit EditState
N - - - - No access No access No effect
Y N N N N All actions denied All actions denied No effect
Y Y - - - Can create a language.
Can create Default Home elements.
All actions denied No effect
Y - Y - - Can empty trash of any trashed language (*). Can empty trash of any trashed language (*). No effect
Y - - Y - Can edit any language (*) Can edit language (*) No effect
Y - - - Y Can publish, unpublish, trash and untrash any language (*) Can publish, unpublish, trash and untrash any language (*) No effect

(*) Subject to language specific permissions

 

Setting KMFasTrans Component Permissions has the following effects on the operation of KMFasTrans:

KMFasTrans Component Permissions

Effects in Content Languages

Effects in Translations Dashboard Effects in Translations Edit or Create Component Access
Access Create Delete Edit EditState
N - - - - No effect No access No access No effect
Y N N N N No effect All actions denied. Can see elements in read only mode All actions denied. Can see elements in read only mode No effect
Y Y - - - No effect Can assign translation Items for any language (*)&(**) Can create new Items  (*)&(**) No effect
Y - Y - - No effect Can unassign translation Items for any language (*)&(**) No effect No effect
Y - - Y - No effect Can access translation Items for editing (*)&(**)&(***).
Can change translation Iitems (*)&(**).
Can edit translation Items (except status) (*)&(**)&(***) No effect
Y - - - Y No effect Can publish, unpublish and trash translation Items (*)&(**)&(***) No effect No effect

(*) Subject to language specific permissions

(**) Subject to Component-Element permissions

(***) Subject to Item permissions

Setting Element-Component Permissions has the following effects on the operation of KMFasTrans:

Element-Component Permissions

Effects in Content Languages

Effects in Translations Dashboard Effects in Translations Edit or Create
Access Create Delete Edit EditState EditOwn
N - - - - - No effect Will not show the element type in the Element Type drop-down list No access
Y N N N N N No effect Can not change Item (Id)  status
Can not change Set status.
Can not assign translation Items
Can not unassign translation Items
Can not change translation Items
Can see any Item
Can not edit any Item
Can not create new Item
Y Y N N N N No effect Can assign translation Items for any language (*) Can create new items  (*)
Y N Y N N N No effect Can unassign translation Items for any language (*) No access
Y N N Y N N No effect Can access translation Items for editing (*)&(***) Can edit translation Items  (*)&(***)
Y N N N Y N No effect Can publish and unpublish translation Items in any language (*)&(***) No access
Y N N N N Y No effect Can edit the own Items only.  Can edit the own Items only. 

(*) Subject to language specific permissions

(***) Subject to Item permissions 

Setting particular Language Permissions has the following effects on the operation of KMFasTrans: 

Language Specific Permissions Effects in Content languages Effects in Translations Dashboard Effects in Translations Edit or Create
Delete Edit EditState
N N N All actions denied for the language. All language specific actions denied No access
Y N N Can delete the language. Can unassign translation Items of the language (***) No acces
N Y N Can edit the language. Can edit translation Items of the language(***) Can edit translation Items of the language (***)
N N Y Can edit state of the language. Can publish, unpublish and trash translation Items of the language (***) No access

 (***) Subject to Item permissions 

Setting Item Permissions has the following effects on the operation of KMFasTrans:

Item Permissions Effects in Content languages Effects in specific Content Language Effects in Translations Dashboard Effects in Translations Edit or Create
Delete Edit EditState
N N N No effect No effect Can not assign, unassign, change, publish, unpublish or edit the Item No access
Y - - No effect No effect Can unassign the Item No effect
- Y - No effect No effect Can edit and change Item Can edit this Item
- - Y No effect No effect Can publish, unpublish and trash the Item Can publish, unpublish and trash the Item

 Applies to: Articles and Categories

 


Sets of Translations

When you translate content into several languages in Joomla!, what you are doing is creating a different item for each language. Each item is assigned to a language and has the same content (translated) that another item in another language. For example, suppose you have a website with three languages, English, Spanish and French. For each content (category, menu, banner, article ..) you have to create three items, one for English, one for Spanish and one for French. And these three elements are related and have many things in common.

In KMFasTrans we have created the concept of Set of Translations. A Set of Translations is the set of items representing the same content in different languages. In the example above, we will have a Translations Set composed of 3 items. The figure below shows what we will see at the Translations Dashboard Screen:

Translation dashboard screen

As you can see in the figure each row has in the column 'Title' the source item title and in the column 'ID' the source item id. In this example the language of the source item is English because the Selected Source Language (in Language Tools) is English. There are also one column for each selected target language (French and Spanish in the example) that contain buttons to take several actions, an 'Actions in all selected target languages' column and the column 'Translations Set' that contains the information of the set of translations.

Hovering over each of the icons contained in these language columns you will see an explanatory text about its content and where appropriate a description of the action that will be taken when you press that id or image. Clicking the little down arrows, an information window with less frequent actions will be displayed.

(For a detailed explanation visit KMFasTrans Dashboard Help).

Translations Set column

The Translations Set column shows two attributes, the Set Number and the Set Status.

The Set Number is a number assigned by KMFasTrans when creating the set of translations. It is a unique number for the entire web site and can not be changed. If you delete a set of translations, its number will not be reused.

The Set Status indicates the current status of the set of translations and is identified by one or two images. When hovering the mouse over a image, a text is displayed as follows:

  • Status: Not completed.

Status of translations set not completed

This state has two possible causes:

    • The set of translations lacks at least one translation id for some of the published content languages.
    • Not all id's of the set are published (This depends on the value of the configuration option "Include published elements only for "Completion" of a Translations Set").
  • Status: Completed.

The status of translations set is completed

The set of translations has been completed when it contains as many translation id's as published content languages, and also all such id's are published (This depends on the value of the configuration option "Include published elements only for "Completion" of a Translations Set"). As you can see in the example above, when you hover over the status image, the status and the completion date and time will be shown.

Each time you change the status of any id of the set to "Unpublished" or "Trashed", the set status will change to "Not Completed" regardless of the status it had before(depending on the value of the option mentioned above). When changing the status of an id of the set to "Published", the set status will change to "Completed" if it contains as many id's as published content languages and all of them are published(depending on the value of the configuration option mentioned above).

Warning: a set will not be allowed to contain an id assigned to language 'All', since by definition if an id is assigned to language 'All' it will be shown on all languages, and thus not required to be translated. For example, the module containing the login form will normally be assigned to language 'All', since the translation into every language is automatic using the standard Joomla! language files.

  • Status: Modified.

The status of translations set is completed but modified

 The status "Modified" means that after completing the set of translations, at least some element of the set has been modified using the KMFasTrans edit form or the native Joomla editing form or the front-end editing form.
If the change is permanent, you can change the set status to "Completed" by clicking the checkbox in the row and the toolbar buttom 'Mark Set as Completed'.

If you changed the status of the modified id to unpublished, by changing later on its status to published, the set status will also change to "Completed"(depending on the value of the configuration option mentioned above).

Translations set details

By clicking on the button that contains the set number you will get the following screen with the contents of the set:

Translation set details

The first five lines show attributes of the Translations Set:

  • Created on: date and time when the set of translations was created.
  • Current status: current status of the set. The set is usually created in status "Not Completed". It can be created in status "Completed" if there are only two languages.
  • Last status change: self-explanatory
  • Last action taken: it can be Assign, Unassign or Modification of an Item.
  • Last element modification: indicates who, when and which item was last modified.

The list below the first five lines contains the elements of the set. The values for the columns are self explanatory.

Creating a Translations Set

When you start using KMFasTrans the only existing translations sets are those created during the KMFasTrans installation, based on the existing Joomla associations at the time of installation. This may include Articles, Categories, Contacts, Menu Items and Newsfeeds, but does not include others such as Banners, Modules, Fields or Tags.

Apart from the previous ones, translations sets are automatically created when creating or editing element translations. Let's suppose for example that we start from an element without translation like 'Blue Mountain Rain Forest' represented in the following screens:

Creating a translations set clicking in the Create item button

We can click on the 'Create' button on the French column to create a translation of 'Blue Mountain Rain Forest' into the French language, or

Creating a translations set clicking in the Edit/Create button

we can click on the 'Edit/Create' button on the 'Actions in all selected target languages' column to create a translation of 'Blue Mountain Rain Forest' into the French language, Italian language and Spanish language simultaneously.

In both cases we will obtain the KMFasTrans editing screen, in which we can create an element (article in this example) translation of the source element, in one or more languages simultaneously. When saving the elements, a set of translations that will contain the source item and all target items, will be automatically created. All equivalent Joomla! associations will be created simultaneously.

(For a detailed description of the use of the edit screen visit KMFasTrans New / Edit Translations Help).


The following screens show the situation after creating these elements:  

 A translation set has been created

And clicking in the translations set number 274 we get this details screen:

Set details after set creation 

We can also create Translations Sets manually. If we have an item in a language that is the translation of the same content in another language, but they are 'isolated' we can create a Translations Set with both items.  

What we have to do is click on the 'Associate' link of the column of the language in which is the item with which we want to create the set. In the following example we will associate an item in French language to the item 'Blue Mountain Rain Forest' in English:

Associating an item

When we click on that link we get the following screen:

List of potential items to associate

We choose the appropriate item (in this example the only one 'Forêt tropicale de montagne bleue') and by clicking on the title, the set of translations will be created and we will obtain the following screen:

The number of the translations set is shown

where we can see that a new set of translations has been created with number 275 that contains the source item (id = 64) and the newly associated item in French language.

If we hover the mouse over the Edit button in French we will see a popup with the title of the newly associated element.

Warning: the drop down list "Select Association:" must be set to "Not associated" to show only items that do not belong to any other set of translations. If you choose the value "Select Association", the list will contain all items in that language, whether or not they belong to another set of translations. In this case for each associated item you will see an association icon in the column 'Association' and you can see its associations by hovering over the icon. If you choose an item that already belongs to another set, such item will be disassociated from that set and associated to the set you are creating or updating.

The next screen shows how the previous screen would look if we had selected '- Select Association -' as the value of the drop-down:

Listing potential items to associate even alrady associated

Modifying and deleting a Translations Set

Using the links 'Change Association' and 'Disassociate', located in the same place as the link 'Associate' for existing items, we can modify the set of translations, adding, changing or removing elements from the set. The set of translations will cease to exist if we disassociate all its elements.


Inconsistencies processing

In version 1.4.0 of KMFasTrans PRO we introduced 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 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 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 configuration 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 'Consistency check'.

With the detection of inconsistencies enabled the Translations Management 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.

There are two types of inconsistencies that we call 'self' inconsistencies and 'translation' inconsistencies that we will explain in detail below.

The Reference Language

Translation Inconsistencies are always detected in relation to the source of the translation. For example if the item Art1-GB in English language is assigned to the category Cat1-GB in English langauge and the translation of Art1-GB into Spanish language is Art1-ES, then the category Cat1-ES of Art1-ES must be the translation into Spanish language 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 and it's usually the default site language.

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 or no 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.

When you install KMFasTrans, the instalation process 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 can also be manually selected 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 make a Consistency check for self inconsistencies 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 a translation of another element. The example given above of an article whose category is in a language other than that of the article is a self inconsistency.

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. You really do not need to worry about the self inconsistencies of languages that are not the reference language because when creating the translations using the reference language as the source, the self inconsistencies of the translations, if they exist, will be shown as translation inconsistencies

This type of inconsistency is detected in several ways (we are assuming in these examples that the reference language is English(en-GB)):

1). In the list of the translation management dashboard when the self inconsistency affects any element in the reference language. You will see the id in red and framed in a box, and when you hover the mouse over it you will see an explanatory text.

 

2). An item in the reference language is edited in Joomla.

 

3). An item in a language that is not the reference language and is not associated with any other (it does not belong to any set of translations), is edited.

 

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 is not the translation into Spanish of Article Art1-GB, then the menu item MI1-ES is inconsistent. It has a translation inconsistency.

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 source item of the translation, the target item and each of the fields of those elements that can have inconsistencies.

First, the existence of inconsistencies is shown by a red ellipse in each element that contains inconsistencies on the Translations Management Dashboard screen:

When editing the element that contains inconsistencies, the following screen is displayed:

This screen is the same as the one obtained when editing an item without inconsistencies, with only two differences:
1). When the element has inconsistencies, as in this example, a line with the source and target items of the translation and a table with one line for each inconsistent field in the target item are shown at the top.
2). All inconsistent fields have a background color to be able to identify them quickly, as in the present example in which the Category field has yellow as the background color.

Let's see how to interpret the contents of the inconsistencies table:

Inconsistent Field

This column represents the field detected as inconsistent on the target element relative to the source element and has two subcolumns:

  • Field name: is the name of the field in the source item whose equivalent in the target item is inconsistent. In this case, the inconsistent field is the category of the article.
  • Tab: is the tab where the field is located. If it is not visible, click on the name of the tab in the target item to make it visible in both, the source and the target items.

Value of the field in the Source Item

Contains the value of the field in the source item that led to an inconsistency in the target element. In the example this is the value of the field 'Category' in the tab 'Deatils' of the article titled 'Articles Category Module' with ID: 64. The subcolumns of this column are:

  • Title/Value: The title or value of the selected item in the field. In this case, 'Content Modules', which is the title of the category.
  • Lang: The language of the category 'Content Modules'. In this example 'English'.
  • ID: The ID of the selected item in the field. In this example it is a category whose ID is 64.

Value that the field should have in the Target Item

The subcolumns of this column are:

  • TitleValue: Is the title or value that the target item should have so as not to be inconsistent. In this case it is the 'Translation into French (FR) language of the value of the field in the Source Item' because the translation into French of the category 'Content Modules (en-GB)' was not found.
  • Lang: The language of the category that should be selected in the 'Category' field of the target item. In the example is French because we are translating into French language.
  • ID: It is the id of the element that should be selected in the 'Category' field in the target item. In the example the ID is zero because the inconsistency is 'No translation found' indicating that a translation into the French language for the category 'Content Modules (en-GB)' was not found.

Inconsistency description

The inconsistency found. In the example 'No translation found'.

More Info

In this column there is an information icon that when hovering the mouse over it, shows more information about the inconsistency. The information for this example is the following:

Actions

It contains one or more icons to take any of the actions indicated in 'More info'. Hovering the mouse over the icon will show the action that will be taken when you press it.
The following two screens show what would be obtained in this example

 

 

 Show all

This column contains in each line a 'Hide row' link. It is used to hide the row when the inconsistency has been resolved. In addition to hiding the row, it eliminates the background color of the inconsistent field. In this way it is possible to solve the inconsistencies one by one and remove them from the screen to facilitate the work showing only the unresolved ones.
If you want to see the hidden rows again just press 'Show all' in the header.

Types of translation inconsistencies

  • 1. No translation found

This is the case explained above. If the element that it is the translation of the field in the source item 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 appropiate link found in the Actions column.

This inconsistency usually appears with some frequency when creating a new item translation if you forgot to previously translate some of the fields you are going to need. For example when translating an article from English to Spanish without having previously translated the category. In the above example it would be enough to click on the icon Create to create the translation into French of the category 'Content Modules'.

  • 2. Not selected

 

This inconsistency indicates that a translation of the field in the source item was found but that translation is not selected in the target item. In the example, the category 'SIM TRANS TO nl-NL Components (nl-NL)' (ID: 179) is the Dutch translation of the category 'Components (en-GB)' (ID: 21) but it is not selected in the 'Category' field of the article 'Administrator Components (nl-NL)' (ID: 127) .

This inconsistency is resolved by selecting the translation of the element in the destination field and saving the item.

The info shown by the 'More info' icon  is as follows:


 

3. Unpublished

This inconsistency is only detected when the component configuration option "Detect inconsistencies for unpublished elements" is set to 'Yes' (Default value)

Indicates that the translation of the field in the source item was found and that it is selected in the target item but it is unpublished. The 'More Info' shows the info to solve the inconsistency, that is usually achieved by clicking on one of the icons shown in the Actions column. This info for this example is as follows:

The tips shown in the 'Actions' column icons are as follows:

  • 4. Trashed

This inconsistency is only detected when the component configuration option "Detect inconsistencies for trashed elements" is set to 'Yes' (Default value)

Indicates that the translation of the field in the source item was found and that it is selected in the target item but it is in the trash. The 'More Info' shows the info to resolve the inconsistency, that is usually achieved by clicking on one of the icons shown in the Actions column. This info for this example is as follows:

 

The tips shown in the 'Actions' column icons are as follows:

  • 5. Archived

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

 

Indicates that the translation of the field in the source item was found and that it is selected in the target item but it is archived. The 'More Info' shows the info to resolve the inconsistency, that is usually achieved by clicking on one of the icons shown in the Actions column. This info for this example is as follows:

The tips shown in the 'Actions' column icons are as follows:

  • 6. Selected and should not be

This inconsistency usually appears when the field is a multiple choice field and there is an item selected in the field of the target item that is not a translation of any of the items selected in the field of the source item.

The 'More Info' shows the info to solve the inconsistency. This info for this example is as follows:

  • 7. Not selected and should be

This case is very similar to Not selected but the difference here is that it is a field of multiple values that must contain the same values in the target item as in the source item.

The 'More Info' shows the info to solve the inconsistency. This info for this example is as follows:

  • 8. Not equal to the source

Indicates that the value of the field in the target item is not equal to the value of the field in the source item and they should be equal. An example is the values of a Checkbox field:

The 'More Info' shows the info to solve the inconsistency. This info for this example is as follows:

 

 

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

  • A. Self inconsistency example

  • B. Translation inconsistency example

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

The first inconsistency indicates that the item 'Content Component (en-GB) (ID: 266)' is the value set for the field 'Parent Item' in the tab 'Details' of the source item 'Featured Articles (en-GB) (ID:262)', but a translation of this item into the Dutch language has not been found.

The second inconsistency indicates that the item 'Components (en-GB) (ID: 21)' is the value set for the field Select Categories in the tab 'Layout' of the source item 'Featured Articles (en-GB) (ID:262)', and a translation of this item has been found and it is 'SIM TRANS TO nl-NL Components (nl-NL) (ID:179)' but it is unpublished.

 

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

 As in the previous example the source item is the item in the reference language (ID: 5) which is not visible on the screen. The inconsistency indicates that the category of the source item, the article 'Authentication (en-GB)' (ID:25), is 'Plugins (en-GB)' and its Spanish translation titled 'SIM TRANS TO es-ES Plugins (es-ES)' with ID: 230 is not the category of the article in Spanish language titled 'SIM TRANS TO es-ES Authentication (es-ES) (ID:207) (the translated element). This inconsistency would be resolved simply by selecting the value 'SIM TRANS TO es-ES Plugins (es-ES)' as the 'Category' in the translated element.

Detecting Translation Inconsistencies

KMFasTrans detects inconsistencies when displaying the list of items in the Translation Management Dashboard and when editing an item. It is also possible to find inconsistencies manually at any time using the 'Consistency Check' process.

Showing Inconsistencies in the Translations Management 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 item. Hovering on the ID, information on the inconsistency is displayed. Examples:

 

  • 2. The 'box' of the item in the column of its language has a vertical red ellipse. This indicates that the item has inconsistencies.

  • 3. The column 'Status' of Translations Set contains a warning icon indicating that some item of the set contains inconsistencies. This is useful when the item containing the inconsistency is in a language not shown on the screen as in the following example. If you click on the set number you will get a list of all the elements contained in the set. In the list those that have some inconsistency are indicated.

Note:

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

Showing Inconsistencies in the Editing screen

  • 1. When creating or editing a translation the inconsistencies detection is performed on all the elements of the set, displaying those of the selected target element only. If there are other items of the set in other languages with translation inconsistencies, the links on the language tabs on the righthand side will have a red ellipse as shown in the screen capture.

In this example the selected language is Italian and the item in Italian language does not have inconsistencies but there is an indication that items in Dutch and Spanish do. Pressing any of these two languages will show the item and its inconsistencies.


Synchronizing Associations

KMFasTrans PRO includes synchronizing associations between KMFasTrans and Joomla.

Association synchronization processes are available to perform mainly two functions:

  • During the initial installation of KMFasTrans, the Joomla associations will be synchronized with KMFasTrans. This means that based on the existing items associations in Joomla, Translation Sets in KMFasTrans will be created to contain the existing translations. This process is done automatically during installation.
  • To manually solve situations in which items are not correctly associated, situations that will rarely occur. If you use the KMFasTrans tools or Joomla to create and edit translations you will probably never have to use these processes

Synchronization of items associations contains two subfunctions:

  • 1. The creation or modification of KMFasTrans associations when creating or modifying Joomla associations.

Each time you edit an item that support associations using the Joomla native editor, a set of translations is modified created or destroyed to reflect the associations created with the editor. If you have added a new menu item to a group of menu items, for example, the corresponding set of translations of KMFasTrans will be updated adding the new item to the set. If the association has been removed in Joomla, the corresponding menu item in the set of translations of KMFasTrans will be removed (and the set destroyed if no associations remained).

  • 2. The creation or modification of Joomla associations when creating or modifying KMFasTrans associations (sets of translations).

Each time you create or modify a set of translations in KMFasTrans, either by editing one of its elements or by the association or dissociation of a member of the set, you also create or modify the corresponding items associations in Joomla.

These two processes can also be launched manually at any time to build KMFasTrans sets of translations based on existing items associations in Joomla, or to build items associations in Joomla based on KMFasTrans existing sets of translations. In either case are sets or associations modified if they are not affected, for example a set won't be destroyed because its associations doesn't exist as Joomla associations.

Which of the two processes is the one that I have to launch?.

You have to launch the process according to the confidence you have in the existing associations. For example, if you have created and edited all the translations using KMFasTrans, the most updated will be the translation sets and in this case you will have to launch the process of creating Joomla associations based on the KMFasTrans translation sets. But as we said earlier this will rarely happen and you will not have to launch any process.

If you have to do it anyway, these processes are launched from the window obtained by pressing the link 'Synchronize Associations' on the left menu of any KMFasTrans window. This window is as follows:

 

 Pressing each 'Synchronize' button will execute the process shown in the header for the elements indicated in the first column of the row in which the button is.

 


Management of Translations Items

The management of Translation Items is fully described in the following online help documents:


Productivity Tools

The latest versions of KMFasTrans PRO includes the following productivity tools:

    • 1. The administration module 'KMFasTrans Dashboard Link'.

This module inserts a link to the Translations Management Dashboard screen to the right of the administration menu. So you can go to the KMFasTrans Dashboard at any time with a single click. The module is created, published and located in the position 'menu' during the component install process (only on the first installation in which the module is supported). You can unpublish it after that if you want.

    • 2. The administration module 'KMFasTrans Translate'.

This module inserts a drop-down list of languages to the right of the administration menu to translate elements from the Joomla item listing or from the Joomla edit form. The module is created, activated and located in the position 'menu' during the component install process (only on the first installation in which the module is supported). You can unpublish it after that if you want.

a). From the Joomla items listing: you have to select the item that is going to be translated by checking the checkbox in the item row. Then you select the language you want to translate the article in the drop down list of languages.

 

Doing so the KMFasTrans translation editing form will display with all its parameters pre-selected (source language, target language, and all language-dependent fields). If there is a translation into the target language, that translation will be shown in the right hand side. If there isn't any translation into the target language, a blank form to create the translation will be shown. Clicking any of the buttons Save Item(s) or Cancel will execute the action and return to the Joomla listing of items.

 

 

b). From the Joomla editing form: this is the same as above except it is not necessary to select the source item as it is the one being edited. The return from KMFasTrans is, in this case, the Joomla edit form.

    • 3. A 'New' button to create items from the KMFasTrans Translations Management Dashboard.

A 'New' button is available in the toolbar of the screen 'Translations Management Dashboard'.

Pressing the button redirects to the Joomla native editing form with some preselected parameters as follows:

      • a). The type of item you are creating (articles, categories, modules, etc..) is the one selected in the drop-down list "- Select Element Type -".
      • b). The preset parameters depend on the type of element as follows:
        • b1). Categories: the category extension is preset with the following value:
          • b11).The extension selected in the drop-down "- Select Extension -" if any.
          • b12).The extension of the first row shown in the list if it shows any rows and none is selected in b11).
          • b13).'Articles' if none is selected in b11) and no rows are shown in b12).
        • b2). Menu Items: The menu is preset to the following value:
          • b21). The menu selected in the drop-down "- Select Menu -" if any
          • b22). The menu of the first row shown in the list if it shows any rows and none is selected in b21).
          • b23). No pre-selected menu if none is selected in b21) and no rows are shown in b22).
        • b3). Modules: The module type is preset to the following value:
          • b31). The module type selected in the drop-down "- Select Module Type -" if any
          • b32). No pre-selected module type if none is selected in b31).
        • b4). Other element types: no pre-selected parameters

After creating the item in native Joomla you will return to the KMFasTrans Dashboard using the Save and Close links of the Joomla editing form.