Categories
How To...

I want to find nodes with not translated items. How I can do it?

1. Sisulizer has implemented special predefined filter sets available via “View” menu > “View Mode”, or via “Mode” toolbar of Project Tree.

View Mode toolbar

If you select here “Show items that need to be translated” setting, Sisulizer display in Project tree only nodes and sub-nodes with not translated string items. Non translatable items e.g. images and plain binary data aren’t displayed, if you use this filtering solution. Below is example screenshot from Project Tree with filtered contents in this way. When you use these filters, it change icon for “All” node in Project tree.

Filtered tree

If you use “Show items that need to be completed” setting, Sisulizer display all nodes with not translated items and translated items with statuses lower than “Complete” status. This is good solution for reviewing not verified translations. This setting also doesn’t display items with non string data. View Mode filters are also applied to Translation Sheet content.

2. You can also enable displaying translation statistics for Project Tree items. This solution also can help you find nodes with not translated items. You can do it by checking “Show translation statistics” in “General” tab of “Project Tree properties”. This dialog is available via “Tools” menu -> “Project Tree” or “Tree properties” in context menu of Project Tree.

Tree properties

Below are some notes related to statistics displaying:

  • Not translatable data e.g. images are displayed as completed (100%, green color) items.
  • Items with “Do Not Translate” status are also displayed as completed (100%, green color).
  • For excluded items in Project Tree statistics aren’t displayed.

Here is example with enabled statistics for Project Tree:

Tree statistics

Janusz

Categories
How To...

Is the translation sheet layout customizable?

Of course, you can adjust columns layout for translation sheet to your needs. Simply, click on “Sheet columns” icon on Translation sheet toolbar:

Sheet toolbar

… or go to “View” menu and click on “Sheet columns” menu item.
It opens dialog, where you can add or remove columns and change displaying order. Below is list with available column items:

  • Context
  • Flags
  • Status
  • Original
  • Index
  • Row status
  • Data type
  • Component
  • Property
  • Previous original
  • Comment
  • Date
  • Characters
  • Pixels
  • Max characters
  • Max pixels
  • Message string
  • Row Comment
  • Language columns (items depend on translation languages added to project)

Columns dialog

Below is the view of the translation sheet with default columns layout:

sheet view 1

As developer you may prefer to display information about string’s component and property. If you often update your source, you can also add a “Previous original” column to the sheet. This column displays string’s content before changes. It allows you or your translators to find differences between previous and current (updated) originals in an easy way. Unfortunately, adding many columns can be an uncomfortable solution, especially on systems with low displaying resolutions. You can improve it by changing displaying of translation statuses (Status column) from text to images. Right click on header of Status column and select “Column properties” item in context menu. Next, select “Image” radio button.

Status column properties

Below is the result of our changes:

Sheet view 2

Of course, you can select more translation languages to displaying in a sheet. This solution allows you to quickly switch between the edited language, or sometimes it is convenient for a translator to see an existing translation in another language, too. You can add languages via “Columns” dialog or via “View” menu.

Sheet view 3

If you click on column header e.g. “Context”, cells of column are sorted in ascending order, if you click second time, items are sorted in descending order, but if you click on column header again, Sisulizer revert order based on original order of items in source file. Below is example with sorted contents of “Date” column. This solution allows you to find last edited translations fast.

Sheet view 4

More information about other features related to working with Translation Sheet you can find here.

Janusz

Categories
How To...

My INI source file has LNG as extension and Sisulizer incorrectly recognizes it as nRes file. Can I change this behaviour?

Yes this is possible. Sometimes, developers use custom extensions for known file types. In Sisulizer LNG is assigned to nRes file type, but this extension is often used also for INI files. If you want to use this file extension as INI file type, you should go to “Tools” menu -> “General” -> “File mappings” tab and click on “Add” button. It opens a dialog where you can enter your source file extension (without dot) in the “File extension” field. Next, you should select associated file type from “Parser to be used” dropdown list.

File mapping

Next time, when you will create new project for LNG file, Sisulizer will display new step in Project Wizard, where you can select desired platform. This step is displayed only, when one extension is mapped to multiple source file types.

Project Wizard

You can add also new extension, not available on file mappings list. After adding extension, you needn’t select file type in Project Wizard, and this step is skipped in wizard. For example some language files with INI file type structure use LANG extension. So when you map this extension as INI file, Sisulizer automatically treats file with this extension as INI file. Of course, content of new mapped file should be matched with file type selected in “File mapping” dialog.

Janusz

Categories
How To...

I found small radish spots and warning icons on some form nodes icons in project tree of my Delphi project, and I don’t know what it means

Icon for inherited form

These small radish spots mark forms inherited from other forms. If you right click a node with this spot you can find in context menu additional “Select parent” menu item. If you click on this item, Sisulizer navigates you to parent form of selected inherited form node. If you like to see full hierarchical structure of inherited and parent forms in project tree, simply open your Delphi source properties (via source context menu in Project tree or via “Project” menu > “Edit source”), go to “VCL options” tab and check “Scan inherited forms hierarchically” checkbox.

Here screenshot with unchecked this option:

Flat structure in Project tree

…and with checked this option:

Hierarchical structure in Project tree

Applying these changes require using “Scan for changes” feature. However, it won’t influence scan/build results.

Icon for unused inherited form

Small warning icon could be added to form icon in project tree when Sisulizer after changes in source files will find unused inherited form that is not linked to the application. The dialog is most liked unused but still remain in the project file. Remove the unit from the project file (DPR).

Janusz

Categories
How To...

I want to disable localization for some rows. What is better – locking or excluding?

Excluding features
Excluded items are removed from Translation Sheet and from scan. Sisulizer has implemented several different features related to excluding of unwanted contents.

1. Excluded data types
This feature is described in other article of this blog.

2. Excluded rows
This feature excludes selected rows in sheet. Strings are excluded from the project by value of context. You can exclude selected Translation Sheet rows via sheet toolbar icon,

Sheet toolbar

via row context menu > “Exclude” -> “Exclude this Row”, or via “Row” menu -> “Exclude” -> “Exclude this Row”.  You can browse excluded rows and restore it to project via “Project” menu -> “Excluded Rows” dialog.

3. Excluded originals
This feature excludes rows from project by the native value. For example, if you exclude “Cancel” original’s string, Sisulizer excludes all occurrences of “Cancel” original’s in project. You can use this feature via row context menu > “Exclude” -> “Exclude … Original”, or via “Row” menu -> “Exclude” -> “Exclude … Original”.  You can browse excluded originals and restore it to project via “Project” menu -> “Excluded Originals” dialog. Below is screenshot of sheet context menu.

Context menu

4. Excluded strings
Sisulizer also allows to exclude custom strings. The strings can contain wild cards (* and ?). For example “Number*” will excluded all string rows that start with string “Number”. “*Test*” will excluded all rows that have string “Test” somewhere. It works on two levels:

  • For all projects you can type custom strings in following dialog: “Tools menu” -> “General” -> “Excluded strings”
  • For selected project you can type custom strings in following dialog: “Project’ menu -> “Excluded strings”. You can find here additional option, that is, “Copy the global settings before scanning”. If this is checked the global setting will be copied into the project before scanning process.

Excluded strings

Do Not Translate feature
Sometimes you don’t want to remove or exclude a row but you just want to disable translating of the row. To do that you can mark any row as “Do Not translate”. Such a row is shown on the sheet but can’t be edited. If row has been set as “Do Not Translate” it has some locked image on flags column on the left side of the sheet.

Do Not Translate

The difference is, that “Do Not translate” rows are scanned but shown as locked in the grid while excluded rows are not scanned and not displayed. If locked strings contain translation, this translation remains in project, but you can’t edit it. You can lock a row via sheet toolbar icon, via row context menu -> “Row” -> “Do Not Translate”, or via “Row” menu -> “Do Not Translate”. If you would like remove “Do Not Translate status”, just click again on toolbar icon, or uncheck appropriated items in context menu or “Row” menu
You can also set “Do Not Translate” status for selected node in Project Tree via context menu of selected node. It locks all content of selected node. If you would like remove “Do Not Translate” status, you should uncheck “Do Not Translate” item in context menu of Project Tree.

Janusz

Categories
How To...

I can’t find in Sisulizer’s project some strings from my XML source file. How I can enable to localization these items?

Usually this is the result of:

  • Not checked tags/attributes with localizable values in XML source properties (“Tags” tab)
  • Incorrectly item kind of selected tag/attribute in XML source properties (“Tags” tab)

Below is a short description of tags management features, and solutions for resolving above mentioned issues.

1. Description for tags management

Sisulizer offers a smart and advanced solution for XML contents management by “Tags” tab of XML source properties dialog. This dialog is available via “Project” menu -> “Edit source” -> your XML source file. You can also open this dialog via “Properties” item in context menu of your XML source node in Sisulizer’s Project Tree.
Main item of “Tags” tab is tree with hierarchical structure of tags and attributes detected by Sisulizer in your source XML file.

XML tags

You can quickly find all items enabled to localization in your Sisulizer project, because these items are marked by checkmark symbols in tags tree. You can see it on above screenshot.

You can find in tags tree following item kinds:

  • Normal Value
  • Context Value
  • Localize value

Usually you can change this value via context menu of tags tree item (in some cases these items are unavailable, but it depends on source file structure ).

Tags context menu

Normal Value – this is standard item, and probably most items in your XML file have set this attribute. You can localize all items with this attribute, unless disable (uncheck) it in “Tags” tab. If your item in XML tags tree has this attribute, you should find in context menu additional menu items listed below:

  • Plain text
  • Binary data in hexadecimal
  • Binary data in base64
  • Image data in hexadecimal
  • Image data in base64
  • Basic or VB Script source code
  • C/C++ source code
  • C# source code
  • Java source code
  • JavaScript source code
  • Pascal/Delphi source code
  • Perl source code
  • Other programming language source code
  • Properties

XML language is very flexible programming language and allows on including other data type. If your XML file contains other data type, e.g. Java source code, you should find appropriated item in tags tree and select “Java source code” from context menu. If you change it Sisulizer use appropriated parser for this item instead XML parser. Incorrectly settings of data type can be also reason of missed translations in project. With Sisulizer are installed sample projects for XML files with included different data types. These examples are described in “Hints” section of this article. “Properties” item of context menu opens dialog of detailed settings for selected item.

Context Value – it set up tags tree item as unique context ID value. This value is used for identify localizable strings. Of course, you can’t localize items with this attribute. Context Value is indicated in tags tree by following icon:

Context item

If your XML file contains some identical items, it could be the reason of some localization issues, because it can cause ambiguous items in your Sisulizer project after changes in source. We recommend for similar cases adding unique ID attributes to your XML file, for example

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

… instead

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

…because Sisulizer can use value of that attribute as the context value of the element.
More information about this issue you can find in this our online help topic. From build 291, Sisulizer should better supports cases with non unique contexts, because with this build Sisulizer use changed context assigning method (based on string content) for new projects. Additional, you can select most appropriated for you context method via “Options” tab in dialog of XML source properties.

Context setting

Localize value – localize attribute is used in some XML files to control what element to localize and what element not to localize. Context Value is indicated in tags tree by following icon:

Localize item

Below is some example code with this attribute:

<sample>
<value localize=”true”>Localize this</value>
<value localize=”false”>Do not localize this</value>
</sample>

You can set up triggers values for localize attribute in “Options” tab in dialog of XML source properties.

Localize value setting

2. Fixing of first issue (not checked items in “Tags” tab)

You should find required tags/attributes in tags tree and double click on it. This action enables localization for all occurrences of selected tag or tag attribute, so you needn’t separately enable localization for every occurrence of required tag. For applying changes you need re-scan project, and after this operation you should to see new strings in translation sheet. Of course, you can in identical way disable tags or tag attributes from localization, that is, simply double click on checked item for uncheck it – I recommend using it for all items without localizable values (strings).

3. Fixing of second issue (incorrectly item kind in “Tags” tab)

Sisulizer tries to automatically detect and set “Context value” and “Localize value” for items matched with settings in Tools” menu -> “Platforms” -> “XML” -> “Context attributes” (of course, you can edit these values):

xml settings

So, if your XML source file contains “id” attributes, Sisulizer automatically assigns “Context value” for these items. Sisulizer always requires unique values for context items. When your XML file contains many “id” attributes with identical values, it certainly cause missing strings in Sisulizer’s project, scan issues and other troubles. If you encountered similar issues, you should find “id” attributes with assigned “Context value”  in  your tags tree, and change it on “Normal value” via context menu. Next you should re-scan your project.

Hints

  1. During installation Sisulizer can install examples for different XML files. These files are by default installed in XML subdirectory of Sisulizer installation directory (Windows XP) or [User]\Documents\Sisulizer 2008\XML sudirectory (Windows Vista). This subdirectory contains following projects:
    • code.slp – for XML file with included Pascal and JavaScript source code
    • combined.slp – for XML file with included combined text
    • country.slp – for XML file with Localize value
    • segmented.slp – for XML file with enabled segmentation feature
    • vehicle.slp – for XML file with included images
  2. If your binary source (for example Win32 exe file) contains embedded XML data, you can also use these same tags settings as for separated XML file. Simply, right click in Project tree on XML sub-node of your binary source node, and select “Properties” in context menu.
  3. Sisulizer allows to add many similar files to your project by selecting “Localize all similar files in a directory”. In this way you can add also directory with XML files. However, if you want to create in this way a correct project, your XML files should be really similar, that is, files should have identical tags structure, because Sisulizer use one tags settings for all files added in this way. If you would like to add many XML files with different tags structures, you can chose “Localize a file or files” option in “Project Wizard” and use Shift or Ctrl for selecting many files in “Project Wizard – Select File” step.  From build 292 you can use “Localize all similar files in a directory” option also for XML with different structure, but in “Project Wizard – Select Directory” step you should select “*.*” instead “*.xml”. This option add to project all supported files, so if your directory contains also other supported file types (e.g. exe or DLL), Sisulizer also adds these files to project.

Janusz

Categories
How To...

What does the red background color of translation cell mean?

Long translations in sheet

This color indicates translations longer than originals. The longer the translation is compared to original length the deeper red will be the color. Some languages e.g. German or Polish often have much longer translations than English originals, and it sometimes causes truncated labels and captions in localized UI, because these long labels exceed dedicated places for these labels in UI. You can disable or change threshold for this feature in translation sheet properties:

  • Right click on translation sheet -> “Properties” item of context menu -> “Parameters” tab
  • “Tools” menu- > “Sheet” -> “Parameters” tab

Long translations settings

Hints

1.You can use filter feature for filtering long translations. You can find this filter in the following ways:

  • “Filter” icon on Filter panel toolbar -> “Text” tab- > “Long Threshold”
  • “View” menu -> “Sheet Filters” -> “Edit” -> “Text” tab -> “Long Threshold”

If you type here some values (percentage), Sisulizer shows only translations which are the given value longer than the original value.

Long translations filter

2. You can use Validation feature for searching potential truncated texts or overlapped controls (it could be also result of too long translations) in your translations. Go to “Validation” menu, open “Validate Translations” dialog, and check in “Types” tab following items:

  • Clipped text
  • Control out of client
  • Overlapped controls

Janusz

Categories
How To...

I would like import translations from my already localized files to Sisulizer’s project. Is this possible?

Automatic import during adding source

When you create a new project or just add a new localizable source, Sisulizer tries to find localized versions of the added sources. This feature is implemented for following platforms:

  • .NET
  • Visual C++
  • VCL
  • Java
  • Qt
  • XLIFF

Sisulizer settings depend on the source type. Detailed information about these settings can be found in this topic of our online help. When Sisulizer finds files matching these settings, it asks you to import translations from all matched files. In this way you can get translated strings immediately for the just created project.

Project wizard

Import from output files

If you use “Project” ->”Import Translations from Localized Files”, Sisulizer tries to find localized files matched with output pathname settings from your sources properties. More information about output file settings you can find in this article on our blog. You can import translations in this way for all supported source types. Sisulizer for this semi-automated import use following settings:

  • Sisulizer always uses “By context” method for import from already localized files
  • Sisulizer automatically overwrites already existing translations in project
  • Sisulizer doesn’t import translations identical with originals

This feature can be useful if you lost your Sisulizer project file, or output files were edited in external tools (e.g. in Visual Studio).

Project menu

Manually import

If paths to your localized files aren’t matched with Sisulizer’s output settings or you would like to use changed import settings, you can use “File” -> “Import”. This opens “Import Wizard”, where you can select file, imported language and import settings. Sisulizer always uses “By context” method for import from already localized files.

Import options

Janusz

Categories
How To...

We use our native language in source files, while our translators require English resources. Should I re-build all source files?

No, you do not need it if you use Sisulizer to localize your files, because Sisulizer has implemented a feature for using in project a so called “alternative original” language. Usually English is the best choice for original language because it is likely that you can find much more translator from English to your target language as for example from French to your target languages. By setting alternative original language to some other than none Sisulizer does not show the original strings in the original column but translated string in the selected language. This makes it possible to change the translator language pair suitable for your translator.

You can set up alternative original via context menu of “Original” column’s header, or via “Project” menu -> “Options” -> “Alternative Original”.

Project options

If your translator uses Sisulizer for translation of your application, you can set up alternative original also in “Exchange Wizard”, so when translator opens your project, he should to see alternative original in “Original” column. This setting is independent of alternative original setting in your project. However, I don’t recommend send project with alternative original without review it in your native Sisulizer’s project.

Exchange options

You can find alternative original setting also in “Export Wizard”. This setting depends on alternative original’s setting of your project. So, if your project doesn’t use alternative original, this option is not active in Export Wizard. Using this setting can be useful if your translator use other localization tools, or if you would like create your own localization repository for future using (e.g. as CSV or TMX files). For example if you change “real” language of your source files, you can quickly import translations for this changed original language from these external files.

Export options

Hints:

1. When you use alternative language, in Original column header is displayed name of alternative language

Alternative original column header

2. When you use alternative language, Sisulizer’s filters related to text filtering (Sheet Filter -> Text tab) work with alternative original instead original. For example if you select “Translated strings compared to originals” -> “Identical”, Sisulizer compares contents of currently edited translation column with alternative original language contents.

3. You can use as alternative original only translation languages already added to your Sisulizer’s project

4. You should remember this feature doesn’t switch original language of your source.

Janusz

Categories
How To...

I can’t import translations from my other projects and Translation Memory to some source in my project, despite the fact that original strings in these projects are identical. What happened?

Sisulizer can import translations when language pairs, that is, original and translation language are matched in both project. Targeted language is always visible in language column header, but original language name is not visible directly in translation sheet. Sisulizer during adding source files to project try detect original language, but if e.g. binary C++, .NET or VCL files contain resources with different language IDs, Sisulizer may incorrectly set up original language. Of course, user can change original language in Project Wizard, but this option is often overlooked. In a result project language pairs (original and translation languages) doesn’t match with language pairs of imported project and Sisulizer can’t import translations. Luckily, you can always check and optionally change original language in project via “Encodings” tab of source properties. You can go to source properties dialog via:

  • Click on “Project” menu -> “Edit source” -> select your source -> “Encodings” tab
  • Right click on your source in Project tree -> select “Properties” item from context menu -> “Encodings” tab

Encodings tab

Hint

If you would like check your language IDs of your resources in your C++ (Win32) or Delphi binary files, right click on your source in Project tree and select “Explore” item from context menu.

Explore binary source

Of course you can use also third party resource editors for example:

  • XN Resource Editor (freeware)
  • Resource Hacker (freeware)
  • ResEdit (freeware)
  • PE Explorer (commercial)
  • Restorator (commercial)

Janusz