Selected Customers

Specials run until 12/20/2018

Offers are for commercial and industrial customers only.
All prices are net.

Complete Price Sheet.

Not sure which edition is the right one? Visit our Edition Comparison

Update to Version 4

Sisulizer version 4 is a paid update recommended for all Sisulizer customers.

Update to Sisulizer 4

Still using Sisulizer 3 or Sisulizer 1.x/2008/2010?

Time to update to version 4 now and profit from all new features in version 4.

Software Localization News

Version 4 Build 374 released

11/30/2018

The new build comes with many new features. [...]

.NET Support updated

6/14/2018

New in May 2018: [...]

Sisulizer 4 Build 366

3/1/2017

Build 366 - support for Visual Studio 2017 [...]

10 Years Sisulizer

8/5/2016

Celebrate and save Big. [...]

Delphi Berlin, Android, Project Merge...

5/6/2016

Build 360 [...]

Our customers use Sisulizer...

to reach international customers with software in their language

to localize their in-house software in the international subsidiaries

to build multilingual custom software for their clients' enterprises

as Localization Service Providers because it is the localization tool of their customers

to localize software at Government Agencies

To teach software localization at Universities

for software localization on Electronic Devices

To translate software for Biomedical Hardware

to localize software in the Mining Industry

to create multilingual software for Mechanical Engineering

 

XML Context

Some XML files contains the same element several times. This makes the context generation and maintaining little bit hard. Let's have an example:

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport>Skiing</sport>
  <sport>Cycling</sport>
  <sport>Running</sport>
</sports>

The first sport element will have sports.sport[0] context, the second will have sports.sport[1] context, etc. Now if we add a new element in the beginning of the sports element the existing context values will be changed: sports.sport[0] becomes sports.sport[1], second sports.sport[1] to second sports.sport[2], etc.

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport>Swimming</sport>
  <sport>Skiing</sport>
  <sport>Cycling</sport>
  <sport>Running</sport>
</sports>

You can safely add new elements only to the end of the last element. You can no remove any existing elements without changing existing context values. Sisulizer can handle context change. If they change it will keep the existing translations.

Duplicate translations

If XML file contains the same string more than once and the string has been translated in different way Sisulizer might not keep the right translations. For example if we have the following file:

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport>Skiing</sport>
  <sport>Skiing</sport>
  <sport>Cycling</sport>
  <sport>Running</sport>
</sports>

The file contains skiing two times. If our Finnish translations are:

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport>Alppihiito</sport>
  <sport>Maastohiihto</sport>
  <sport>Pöyräily</sport>
  <sport>Juoksu</sport>
</sports

As you can see the word skiing has been translated in two different way in Finnish. If we now add swimming Sisulizer can not keep both Finnish translations. The one that is first stored in Sisulizer project will be used. After rescan we either get

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport>Swimming</sport>
  <sport>Alppihiito</sport>
  <sport>Alppihiito</sport>
  <sport>Pöyräily</sport>
  <sport>Juoksu</sport>
</sports

or

..
  <sport>Maastohiihto</sport>
  <sport>Maastohiihto</sport>
..

or

..
  <sport>Maastohiihto</sport>
  <sport>Alppihiito</sport>
..

or

..
  <sport>Alppihiito</sport>
  <sport>Maastohiihto</sport>
..

In first two cases the other Finnish translation is lost. On the third case they are mixed together. Only on the fourth case they are right. This is indeed a very rare situation but we can avoid it by using context attributes.

Context attributes

Context attributes are XML attributes that contain unique ids. If your file does not contain such attributes you can add them. Sisulizer can use the value of that attribute as the context value of the element. This makes it possible to modify the file (e.g. change the order of the elements in the XML file) without changing the context data. We can add id attributes to sport elements.

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport id="1">Skiing</sport>
  <sport id="2">Cycling</sport>
  <sport id="3">Running</sport>
</sports>

Now the context of first sport element is sports.0, second is sports.1, etc. If we add a new element to the beginning of sports element the context values of existing sport elements do not change.

<?xml version="1.0" encoding="UTF-8"?>
<sports>
  <sport id="0">Swimming</sport>
  <sport id="1">Skiing</sport>
  <sport id="2">Cycling</sport>
  <sport id="3">Running</sport>
</sports>

Context change will cause some troubles. Fortunately Sisulizer automatically copies the existing translations from the old item to the new item but the coping is done based on the native value. When having duplicate string that have been translated in a different way this my cause loss of translation data. In the case like this it is safe to add new items only as the end of the block. To be able to add duplicate new items safely everywhere you should use a context attribute. The context attribute specifies the context data. To mark an attribute to be a context, select the attribute, right click and choose Context value. After rescanning the project the context of the first element is sport.0, the second sport.1, etc. You can freely insert new items to any location without changing existing context ids. If you mark more that one attribute as context attribute the context value will be the combined value of them all where each attribute value is separated with "." character.

Importing

When you import localized XML files to Sisulizer project containing the original XML file you have to check the following things. Either make sure that you use context attributes or make sure that the structure of the localized XML file is identical to the original XML file. Identical means that the structure must be exactly the same as the original one. It must contain the same elements in the same order as the original file.