How to create just one output file; a multi-lingual version of XML source?

Typically for XML localization is to create a single output file for each language added to Sisulizer’s project. But Sisulizer allows also to build one multilingual file for the XML platform. You can set this option in “File” tab of XML source properties. More information about localization output files and paths on our blog.

However, this solution has some limitations related to the structure of source file in comparison to standard method of XML localization (localized output file for each language).  Localized strings should belong directly to tag, not to tag attribute. For example, Sisulizer can create standard (monolingual) output files, but it can’t create valid multilingual file for following contraction:

While for below example:

...Sisulizer can create valid multilingual file, and output file can look like this:

Optionally, you can later edit Sisulizer XML output files in any text/XML editor and adjust it to your need, but of course, you should take care of XML language syntax.

Hint

Read more about localization of XML platform in our blog.

Janusz

Validation features for software localization

Sisulizer has implemented a wide range of validation features. Sisulizer’s validation can detect minor flaws in translation and will also automatically correct them for you.

Why is it important to validate your localization? Some not fixed issues e.g. incorrect placeholders can even cause exceptions in localized application and user couldn’t use localized version until these bugs are fixed. Sisulizer’s validation features help to identify and solve these issues.

Because validation is such an important and extended issue, you find it as own main menu entry in Sisulizer’s menu bar:

You can even validate resource of your source files via “Validation” menu -> “Validate Original”. With “Validate Original” you can detect bugs in your translation source, but you can’t fix it. However, you can send a Sisulizer report with list of bugs to your developer or boss and win his appreciation.

In this article I describe validation features for translations only. If you click on “Validate Translations”in “Validation” menu, Sisulizer opens “Validate Translations” dialog.

Validation dialog

Here in “Types” tab you can select appropriated validation types and execute validation operation. You can also save set of your validations for future use. This feature was implemented to build 300 and it is described in the validation improvements article on our blog. You can select here the following types of validations:

All above items are for “Validate Translation” feature, but of course, grouping is also available for “Validate Original” feature:

On the right side of validation dialog are buttons for selecting all items from a selected category.  When you click on specified category button, Sisulizer automatically checks all items belonging to this category.

In “Automatic Fixes” tab you can select items for automatic correction. When you select for example “Missing period” option, Sisulizer automatically fixes all items with missed periods without your intervention during validation operation.

Validation Results pane

You can find this pane in bottom part of Sisulizer’s main window.  Here you can see results of validation operation, fix bugs, exclude selected items from next validation or save results to report. On below screenshot you can see example results of validation operation with two issue:

When you select row in Validation results pane, Sisulizer automatically shows string with this issue in translation sheet and you can see context of selected issue and optionally fix it directly in sheet. Additional Sisuliser always displays in “Description” column descriptions of issues and hints for fixing it (for example available hotkey for duplicate hotkey issue). For fixing selected issue, click on “Fix” item in row in Validation results pane or click on appropriated button of pane toolbar. Below is screnshot with fixed first item from our example:

… and result in translation sheet:

When you want to exclude selected item from next validation  (for example your original contains period, but you don’t want to use this period in your translation), select this item in validation pane and next click on “Excluded translations” button on pane toolbar. Of course, you can later include this item again for validation.

Hint

I recommend after fixing of selected issues validate again your project via “Validate again” in “Validation” menu or via button with this same name on toolbar of Validation result pane just in case. It always use settings from previous performed and allows you check if all issues were fixed.

Janusz

I get a version incompatibility message. What should I do?

Sisulizer checks by default if the to be opened project file is created with a newer version of Sisulizer. When Sisulizer detects such a case, it displays the following warning message:

This issue may happen because:

When you click on “Yes” button in above dialog, Sisulizer opens download page in your default Internet browser, where you can download and next install latest available Sisulizer build.  We highly recommend using this solution, except when Sisulizer support team or R&D  recommended to use an older build for your project. We don’t recommend to do it on your own initiative, because it can cause loosing of your hard work.  However when you want to do your own tests you should first perform backup of your Sisulizer project. You should also consider the version history document available via “Help” menu in Sisulizer or via this link. It mainly contains the most important changes, while small improvements or fixes may not be mentioned in this document.

When your project works correctly with an older build, you don’t need to see compatibility dialog every time when you open your project. Simply go to “Tools” menu -> “General” -> “Settings” and uncheck “Check project file version” option.

However, when you upgrade your Sisulizer, I recommend enabling this option again.

Janusz

How to use comment features to communicate between developers and translators?

Sisulizer’s comment functionality is a powerful solution for exchanging information between developers and translators. Unfortunately, comment features are still underestimated by many users, while additional information (for example info about placeholders or context) about selected items can really speed up localization and allows to avoid many misunderstandings or even bugs. Generally, you can find in Sisulizer two types of comments:

Below you can find short descriptions about both comment types.

Row comments

This comment type is dedicated for developers / authors of Sisulizer projects. In these comments developer can spread information about selected string to translators, especially when string contains unreadable items for translators for example placeholders or when localization doesn’t allow a visualization of the item in WYSIWYG editor. With Sisulizer you can not only type your comments directly into Sisulizer project, but also use comments included directly to your source files, because Sisulizer can scan comments added to source files for some platforms. Sum up, you can use 3 different “sources” of comments with Sisulizer:

Translation comments

Not only developers can add comments to Sisulizer’s project. Translators also can add comments related to their translations. This is possible via “Comments” column in sheet. Content of this column always depends on currently edited translation column, that is, when you edit  Finnish language, in “Comments” column displayed are only comments added to Finnish translations, when you switch to other language column e.g to German, content of “Comments” column is automatically refreshed, so you can see comments for German translations.

Working with comments

All rows with added rows comments are indicated in sheet by small, gray triangles in right top corner of Original column, while translation comments are indicated by small, red triangles in right top corner of Translation column.

When you move mouse over triangle symbol, Sisulizer displays popup with content of comment.

When comments columns aren’t displayed in sheet (like on above screens) you can’t edit these items in sheet, but you can still edit, add or delete these comments via “Text Editor” pane. However, if you want to edit comments directly in sheet or sort sheet contents by comments you need to enable displaying of these columns. Open “Columns” dialog via “View” menu -> “Sheet columns” or via appriopriated icon on sheet toolbar and move comment items from left to right panel.

You can also filter sheet by comments. When you check “Row comments” and/or “Translation comments” options in “Other” tab of “Sheet Filter” dialog, Sisulizer will display in sheet only rows with comments. You can read about sheet filter features in this article on our blog.

Exchange, import and export

As mentioned above, first of all comments are used to exchange information between developers and translators. So, of course, you can manage comments in Import, Export and Exchange Wizard, for example you can add (or not) comments to all exported file types, that is TMX, XLIFF, Text or Excel files. When you import translation from received project you can decide if you:

Below is an example screenshot with comments import settings in Import Wizard.

From build 301 you can manage it separately for both comment types.

Janusz

I’m a developer, but my English is poor… How can I create a good English source file?

This is an important issue because:

To resolve this issue , you can create a project with English as original and translation language. Next find a native English translator and send him your project. His translation will be something between a proof-read and rewriting of your “dummy” English. When you receive his project with high quality English items you can:

I think you could experiment with both ideas and next select most appropriated solution for your application and workflow.

Janusz

Build 307 – improving of Gettext localization .po files

Choosing of programming language

Earlier builds of  Sisulizer 2010 expected you use  C/C++ as programming language using Gnu gettext routines. From build 307 Sisulizer honors that gettext .po files are popular among developers of a wide range of programming languages. Just specify your programming language via menu ”Project” -> “Edit source” -> your PO source file -> “Options” -> “Programming language” combo box. Source properties dialog is also available via “Properties” item in context menu of source node in Sisulizer’s Project Tree.

Below is a list of supported programming languages:

Gettext localization is also a popular solution for web solutions based on non-Windows operating systems, such as Linux. Above list contains also languages popular in developing of advanced web solution, for example PHP, Perl, Pthyton, SQL and this Sisulizer feature can significantly improve localization of applications not based on Windows  environment.

When you select appropriated programming language, you can validate translations for potential mistakes of programing language items included to PO strings. You can check for these potential bugs, if you select “Inconsistent format string” in “Validate Translation” dialog available via “Validation” menu.

Plural forms

With build 307 our developers significantly improved support of plural items included to Gettext source files. Now you can localize also plural items, but first you need to select number of plural forms supported in your source PO file by using menu “Project” -> “Edit source” -> your PO source file -> “Options” -> “Plural forms”. Source properties dialog is also available via “Properties” item in context menu of source node in Sisulizer’s Project Tree.

For each plural message Sisulizer adds as many rows as specified in this field. If you plan to support only Western and Asian languages 2 is enough. 3 covers most languages excluding Arabic, Slovenian and Welsh. 4 covers all but Arabic. If you want to correctly translate to all Arabic forms set this to 6.

Janusz

How can I map an unknown component?

Sisulizer supports all common components for many platforms, e.g. for .NET, VCL, C++, Android etc. We also support many third party components and we have a special third-party program for cooperation with programming components vendors (here you can read about this program and supported components). You can find lists of supported components in “Tools” menu -> “Platforms” -> selected platform “Components” tabs. All these components are correctly displayed in Sisulizer’s Visual Editor. More information about relations between general and project components settings you can find in this article on our blog.

Sisulizer has also implemented a smart feature for automated mapping based on keywords. You can find and edit keywords list via “Tools” menu -> “Platforms” -> “Keywords” tab. Below is example list for VCL platform.

You can disable this feature by unchecking “Map unknown components by keywords” in “Settings” tab of “General settings” dialog.

However, this feature can’t map all third party or custom components. In these cases unknown components are displayed in similar ways as on below screenshot. Usually Sisulizer can detect all string items and limitation is concerned to displaying of component in Visual Editor.

When Sisulizer can’t map component, you can do it manually. Simply, click on “Click to map” link visible in Visual Editor. It opens dialog where you can select appropriated component type. That’s all.

Of course, you can change mapping or edit settings of selected component at any moment. Use “Project” menu -> “Components” -> your source, or context menu of component in Visual Editor.

In opened dialog, you can:

Hint

You can review all properties of selected component via “Properties” menu item in context menu of component in Visual Editor.

Janusz

Unused items automatically disapear from project after scanning. How can I change this?

Automatically removing Unused items from project is a comfortable solution, but leaving Unused items in project has some advantages, too,  for example:

If you like to keep Unused items in project, you should go to “Tools” menu -> “General” -> “Settings” and uncheck “Remove unused items automatically”.

Instead of using automatically removing, you can manually remove these rows via “Project” menu -> “Remove Unused items”.

When you check “Add unused translations to translation memory” option in “Add settings” tab of selected Translation Memory (“Tools” menu -> “Translations Engines” -> selected Translation Memory), Sisulizer automatically saves translations for unused items to Translation Memory. This allows you to keep your translations for future use.

Janusz

What do these red, blue and yellow dots in the Flags column mean?

These dots in Flag column of Translation Sheet indicate new, changed and unused items in source file detected by Sisulizer during scan operation. Typically some or all of these items appear after updating your source file. If these dots appears for not changed sources, it can be a result of some bugs in source files or incorrect Sisulizer behavior. If this occurs we recommend reporting it to Sisulizer support via our forum.

You can use Row statuses filters in Filter panel for displaying rows with selected row statuses. This is a very useful feature, because that allows you to find in an easy and quick way all changed, new or unused status. You can learn more about sheet filers in this article on our blog.

You can clear selected row statuses for whole project via appropriated menu items in “Project” menu. However, I highly recommend first review  all changed items, because after clearing you couldn’t find these items. If project doesn’t contain rows with selected items, related menu items are unavailable (grayed). “Clear New status” and “Clear Changed status” change statuses of rows to “In Use” status, while “Remove Unused items” remove all rows with this status (also translations), but you can automatically save these translations to Translation Memory. This feature is described in this article on our blog.

You can also manually change row status (except Unused status) only for selected row(s) via context menu of translation sheet.

Information about count of rows with selected statuses are also displayed in “Statistics” pane, if you have checked “Row statuses” option for this pane.

Janusz

What does symbols with “c” and “p” chars in Flags column mean?

These flags indicate rows with characters max length value (flag with “c” character) and with specified pixels max length value (flag with “p” character) greater than zero. These values are displayed after “p” or “c” characters. For example on above screenshot we have one row with max characters value equal 12, and second row with max pixels value equal 20.

You can specify max characters or max pixels values for selected row via “Row” menu:

or via translation sheet context menu:

Janusz