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:
- Row comments
- Translation 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:
- Comments included to source file in native format of source platform, for example INI, PO, and JAVA. Usually you can disable or enable scanning of source comments in “Options” tab in source properties dialog. You can set up full definition for text source files, and of course, you can also define comments items for text parser (“Format” tab in in source properties dialog).
- Comment items in source files defined by special Sisulizer tags. Sisulizer supports this for many platforms e.g. source code (Visual Basic, C /C++, Perl, Phyton, Pascal, etc.), web related (PHP, HTML, ASP etc.), Java etc.. For using this feature you need to specify information tags in your Sisulizer project. You can find these settings in “Tags” or “Scripts” tabs (it depends on source platform type) of source properties. By default Sisulizer use “slz” item, but of course you can change this. Next include comments with specified tags (e.g. //slz this is comment) to your source code. These comments are transparent for your developer tools, but not for Sisulizer – it adds items with these tags to project as row comments. You can also use this feature with your Delphi source files. However, it requires specifying the path of your Delphi project file (DPR) in “Project” tab of source properties dialog for your Delphi source file.
- Comments directly added to your Sisulizer project. This is the most common method for adding comments. You can add comments directly in translation sheet or via text editor. More information about adding and managing comments via translation sheet you can find below in “Working with comments” part of this article.
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:
- Do not import comments
- Import comments only for items without existing comments
- Overwrite existing comments
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:
- English is most popular language on the world, and customer usually use this language as UI language (not Polish or Hindi), whenever an application hasn’t implemented their native language first.
- For this same reason, typically finding a translator from English to Polish is easier than from Hindi to Polish. So, when your English version is imperfect what is the case even if you see yourself as fluent in a foreign language it will cause in some very odd or even dangerous results in targeted translations.
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:
- Import this project to your main project, build output files and next create new project based on these output files. However, in this case your Sisulizer out put files (sources for new project sent to other translators) should be an accurate copy of your source files. So you need always use “Localized files” option, not e.g. “Resource DLLs” (e.g. for Delphi) in “Files” tab of source properties.
- You can import English project to your main project and use English translations as alternative original. Alternative original feature is described in this article on our blog. This solution doesn’t require re-build of your source files and creation of new Sisulizer project.
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:
- Visual Basic / VBScript
- C++ / C
- C#
- Delphi / Pascal
- Java
- JavaScript
- PHP
- Python
- RGS
- SQL
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:
- Change mapping of component in “Component” tab.
- Include or exclude selected property from scanning in “Properties” tab. This feature allows you to exclude undesired items from Sisulizer project or include new items for localization. This feature is described in separate article on our blog.
- Adjust settings of component in “Options” tab.
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:
- you can review all unused items in your project before removing them from project
- you can re-use these rows in Sisulizer project, if you revert appropriated items in your source files
- you can manage unused translations, e.g. use these translations for new rows or export it to external file
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.
- Yellow dots indicate new items in source – these items didn’t exist in project file before scan
- Red dots indicate changed items in source – these items existed in project file before scan, but have changed some properties, for example, changed original string value
- Blue dots indicate not existing anymore items in source . For this row status Sisulizer has additional settings described in separate article on our blog.
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
What does “%s” symbol in Flag column mean?
This symbol in Flag column of Translation Sheet indicates a message string. Message function is used to display messages to the user. These messages may be informational, warnings, confirms or whatever. For example, the user may be shown an error message, and be allowed to abort, retry or cancel the erroneous process. If your application is written in Delphi responsible function for displaying messages is is “MessageDLg”. I suppose all developers know what is this, while I’m programming lamer, so I don’t quote here detailed definitions of this.
Sisulizer tries automatically to detect message items and indicates these detected items in Flag column of Translation Sheet.
Additionally, if you use “Text Editor” pane, you can find information about it in “Row info” box.
Of course, you can change it, if Sisulizer incorrectly marked a string as message or does not detect a message. You can do it via “Row” menu -> “Message string” sub-menu or via Translation sheet context menu (on attached screenshot).
Information about message strings are also displayed in “Statistics” pane, if you have checked “Summary” option for this pane.
Janusz
I’ve several translators for one language. How I can manage it?
Sisulizer is a flexible tool and allows managing similar situation in a couple of ways. I describe below some short workflow examples:
Exchange Wizard
You can use Exchange Wizard for selection specified resources sent to selected translators. In step “Exchange Wizard – Languages and Items” of Exchange Wizard select desired language (in our example Portuguese) and exclude undesired items in right panel by double clicking these items. The translator in our example will get only “String” resource from Delphi binary source. Then you can create next package for this same language and select other items e.g. CHM source and send this exchange package to another translator, etc.
Unfortunately, this solution can cause inconsistent translations e.g. different translations for identical originals. So you need after import translated packages select most appropriated translations for duplicates and generally review and verify content of whole project and it can take lot of time and work.
Comments using
You can also use “Row comment” column for assigning selected strings to specified translators. In this case you needn’t to split exchange package to separate parts. Just send to all translator this same file. With this solution each translator knows what strings he/she should translate. For doing it you need to click “Sheet columns” button on Translation sheet toolbar and move “Row comment” from “Hidden columns” to “Visible column”. Next type e.g. name/surname of translator to comment cell, copy this comment, select all appropriated rows and paste (multi-paste) comment to “Row comments” cells of all selected rows. Next repeat it for other translators. It still doesn’t solve issue of inconsistent translations and require some additional job, but I think this solution is more comfortable and flexible than solution with sending to translators exchange packages with selected sources or source’s parts. For example you always can control who translated selected string, because you see translator name sheet together with translated string. You can sort sheet contents by translations, context, but also by comments (names of translators). Additional, you can use any order (not only alphabetical order) to indicate translators their items for translate.
Because exchange package doesn’t remember sheet column layout, you should mention your translators how enable “Row comments” column in sheet view.
Language variants
Any time ago I coordinated some team of freelancers. They have been different habits, they used different terminology, and it really hindered our job. So in this case, I used solution with adding custom column for each translator. You can do it via adding custom language variants via “Tools” menu -> “General” -> “Languages” tab -> select translation language in left column and click on “Add variant”. Here type preferred names for your new language variant.
Next, add these created language variants to your project via “Project” menu -> “Language”.
After adding these languages to project and adding to visible columns, your sheet can look like on below screenshot:
Next you can send to selected translator package only with selected variant or with all variants. It depend only of your needs and preferences. After receiving translated project you import it to appropriated variant column in your project. Then, you can verify imported translations, select best translations of duplicates and copy verified translations to you main language column.
This solution has following pluses:
- You can keep different translations of this same string in project
- You can see and compare in one view translations received from all translations
- That allows you get very consistent translations
But also has minuses:
- You need one additional person to coordinate this job or dedicate your time for this work (verification, selection, copying translations to main language column etc.)
- It can really expand Sisulizer project size and slow down work with this project
Shared Translation Memory
If you and your translators use Sisulizer Enterprise edition, you can also create shared Translation Memory based on MS SQL Server or MySQL databases, but of course, you need t0 install these database(s) on your PC or other PC in your network. This solution allows working all Sisulizer users with one centralized, remote Translation Memory. Because Sisulizer allows on saving to Translation Memory several translations in this same language for selected string, you can select most appropriated translation during translation with Translation Memory. However, this is difficult because you need to know context and you should speak in selected translation language. You can find more information how add new Translation Memory and how manage it in this article in our blog.
Janusz
Something for translators…
Many articles published on our blog and especially in our “How To” section seem to be dedicated only for developers, but this is not true, because also users without programming knowledge can find here articles useful for them. Of course, articles related to scan, build features or source properties management are only available in developer’s editions of Sisulizer, that is, Standard, Professional and of course Enterprise edition and that usually aren’t useful for translators, but you can find on our blog technical articles with descriptions of features available in all editions of Sisulizer also in editions for translators, that is, Sisulizer Free and Translator. We also remember these users and many Sisulizer’s features really speed up translations and make translators’ job more easy. “Unfortunately”, number articles on our blog continuously grows with each passing week, and users could have troubles finding interesting articles for them. For this reason I decided to create a short articles index with features useful also for translators. As I mentioned above we still add new articles I recommend to bookmark, and come back to this article from time to time, because I’ll update this index respectively to updated blog contents.
General advices about Sisulizer using, our support, contacting us
These artcicles can be useful for all Sisulizer’s users, both for developers and translators. Many translators send questions about Sisulizer to their developers, but we reccomend directly contact with us if you encountered error or you don’t know how use Sisulizer’s features.
- About our upload form
- Sisulizer’s support asked me about error output message. How I can send it to support?
- In our company we use network drive. Can I use this solution for localization with Sisulizer?
- Sisulizer file types
- Our bug report tool
- I made mistake. Can I restore previous version of my project?
Common Sisulizer features related to UI, layout, etc.
My articles are based on Enterprise edition (e.g. screenshots), so some items can’t matched with your edition, but generally these articles are concerned to all Sisulizer editions.
- Sisulizer context menus
- Can I customize menu shortcuts in Sisulizer?
- How I can enlarge Translation Sheet area?
- Is the translation sheet layout customizable?
- What does the red background color of translation cell mean?
- What means red dot in right top corner of translation cell?
Translations import and export, translation engines, translate duplicate feature etc.
Translator edition is dedicated for translators, both freelancers and LSP, so this edition has implemented (identical with enterprise edition) all features related to import/export and auto-translation functionality.
- I can’t use Google translate in my company network. What I can do? – feature available in Translator edition.
- I want to re-use translations from my other Sisulizer projects. Is this possible? – feature available in Translator edition.
- I can’t save strings from my project to Translation Memory. Why? – feature available in Translator edition.
- I can’t automatically translate some duplicates in my project – feature available in all editions of Sisulizer also in Free edition.
- I am evaluating Sisulizer, and I found Translation Engines interface. Is this identical with Translation Memory feature? – feature available in Translator edition.
- I would like import translations from my already localized files to Sisulizer’s project. Is this possible? – feature available in Translator edition.
- I want to re-use translations from my other Sisulizer projects. Is this possible? – feature available in Translator edition.
- I switched to Sisulizer. Can I re-use translations from my old localization tool in Sisulizer? – feature available in Translator edition.
Other translation aided features e.g. filtering, validation, spell checking, reports etc.
- Reports in Sisulizer – feature available in Translator edition.
- How use Comments features? - feature available in all editions of Sisulizer also in Free edition.
- Validation features – feature available in Translator edition.
- Statistics – feature available in Translator edition.
- Reports in Sisulizer – feature available in Translator edition.
- How use Comments features? - feature is available in all editions of Sisulizer also in Free edition.
- Statistics – feature available in Translator edition.
- Filters for Replace/Search features -feature available in all editions of Sisulizer also in Free edition.
- Filters in Exchange and Export wizards – feature available in all editions of Sisulizer also in Free edition.
- Filter panel – Other advanced filters – feature available in all editions of Sisulizer also in Free edition.
- Filter panel – Text filters – feature available in all editions of Sisulizer also in Free edition.
- Filter panel – Common filters for translation sheet – feature available in all editions of Sisulizer also in Free edition.
- Can I use other spell-checker than Polar spell-checker? – feature available in Translator edition.
- Has Sisulizer implemented custom dictionary feature? – feature available in Translator edition.
Build features
You can’t create new project with Sisulizer Translator Edition, but you can with this edition build output files. Below articles are also dedicated to developers, but also translators can find in these articles useful information, especially if their developers include to translation packages also source files.
- How I can create localized versions of my files? – feature available in Translator edition.
- Where I can set up output file names and paths? – feature available in Translator edition.
Hint
You can learn about differences between Sisulizer editions on this Sisulizer site.
Janusz





























