By default all K2 design time and runtime elements display in English. If there is a need to design solutions that accommodate other languages then it is important to plan appropriately. This involves understanding what language support the K2 platform offers as well as which areas must be accommodated within solution design.
K2 Language Packs
The K2 platform offers language packs that can be downloaded and installed separately from the base K2 product installation. Full technical details on the language packs can be found below:
Note: If interested in understanding more about the language packs the product documentation referenced above must be reviewed.
In short, the language packs affects runtime behavior of the K2 SmartForms and K2 View Flow components with some limited changes to the browser based design tooling. Specifically it changes the experience from one language to another for embedded / static text values that are not accessible by someone creating a SmartForms based solution. Examples of such components include:
- Columns of the worklist control
- SmartForms generated error messages
- Labels within reporting controls
Note: The language packs will not change every element on a page.
As of the current K2 version, there are provided language packs for the following languages:
- Deutsch (German)
- Français (French)
- 简体中国 (Simplified Chinese)
- 中國傳統 (Traditional Chinese)
For languages where there are variants, then it is important to understand how the K2 language works with them. An example is German. If the user’s browser is set to German-Austria (de-AT) or German-Switzerland (de-CH) locale and that user browsers to a K2 SmartForms page, K2 will attempt to fall back to display the base language, German (de). If the German K2 language pack is installed then it will change the specific embedded text within K2 components to the German equivalents. If no language pack is installed, then it will fall back to the “invariant” resources – which in this case is English (US). Below shows the fall back logic in the context of the German languages.
Whilst language packs are distributed and installed separately from the K2 software installation, they are K2 version specific. Thus language packs usually ship at, or shortly after, the release of a new K2 version. They can be accessed via the download page on the K2 portal.
The process of creating and building a new language pack encompasses translation tasks (where known terms are translated to the targeted language) and build tasks (compilation of software resources). The K2 platform requires these resource files to be built into K2-signed DLLs. As such this must be done by the K2 product team; it is not possible for an external party to create a new language pack. If interested, an external party could assist with the term translation to a new language assuming there are resources with appropriate language skills as well as a focused time commitment.
It is important to understand that multilingual forms and language packs are not the same thing. As mentioned above, the language pack will only affect static text embedded within runtime product controls that are outside of the ability of a SmartForms developer to change. The language pack will have no effect on the SmartForms developer accessible properties of a control. For example, it is common for a SmartForms developer to use a label to describe a text box. The display value of that label is manually typed into the Text property at design time. The K2 Language Packs will not affect this value.
If there is a need to create a single form that has a completely different language runtime experience based upon a selected value or parameter then that is considered a multilingual form and will need to be factored into the solution design by the implementation team. For example, instead of using a standard Label control, a Data Label control could be used and then upon form load the appropriate language can be determined by referring to the Browser Culture property within the SmartForms design time context window. With this a SmartObject call could then be made against a database table that stores translated terms in order to determine what term to display. There is some concept work available on theK2 Community Site that provides some additional ideas around creating a multilingual form experience.