Categories
How To...

In our company we use network drive. Can I use this solution for localization with Sisulizer?

Yes, of course, but it should be organized carefully, because using of network drives can cause some issues. Below is list with some examples of potential troubles:

  • You need appropriated access rights to the network drive
  • Sisulizer doesn’t support UNC paths
  • Sisulizer use for source and output files relative paths to project file, so we recommend storing these files on the same drive, because Sisulizer in this case don’t need to save drive letters.
  • For some platforms the path of the files is part of the context and it also could be a reason of some troubles.
  • Some components of MS Windows required by Sisulizer (e.g. for CHM localization) haven’t full support for network drives.

Janusz

Categories
How To...

How I can speed up work with my big Sisulizer project?

Sisulizer’s projects can be really very large, especially for binary files (e.g. for Delphi and Win32 exe or DLLs) when you add all resource data types to the project.  In many cases there is no need to translate all properties.  For example colors or bitmaps are not always needed to be translated. They just bring extra rows and make the project file larger and make it slower to process. For example it can cause following issues:

  • Longer loading and saving time
  • Longer scan and build time
  • Slower work of translation sheet
  • Out of memory messages for big projects (Sisulizer can address max. 2 GB of RAM)

Luckily, Sisulizer has implemented a feature to exclude unnecessary data types from projects. This feature is available on source and general levels and also for exchange and export features.

Project

You can change these settings for selected source in your project via:

  • “Project” menu -> “Edit source” -> your source -> “Excluded Types” tab
  • Source node in Project tree -> “Properties” item in context menu-> “Excluded Types” tab

Excluded Types in source properties

Items from list of data types always depend on source file type, and you will see other items for Visual C++ file and other for HTML source file. These excluded data types settings are related to the localization source properties, not to project, so you can set excluded data types separately for each source in your project. Sisulizer use optimized (default) values for this feature during creation of new project, or during adding new source to existing project, so usually you needn’t change anything. However, I recommend change these settings in following cases:

  • Your project doesn’t use default settings, e.g. your source has enabled all data types
  • You would like localize some not default data types e.g. fonts or images

For first above example I recommend use “Default” button visible on right side of “Excluded Types” dialog. For second example I recommend uncheck only required data type(s)

General settings

You can set your own excluded data type list also in “Tools” menu > “General” > “Excluded Data Types” tab. These settings are used for all new projects and for all sources added to already existed projects after changes in “Excluded Data Types”. List from this dialog is related to all supported source file types, so you can find here all data types supported by Sisulizer.

Excluded Types in General settings

Exchange and Export Wizards

You can also exclude selected data types in Exchange and Export Wizards:

  • “File” menu -> “Export” -> “Export Wizard – Options” step -> “Data Types”
  • “File” menu -> “Exchange” -> “Exchange Wizard – Filter” step -> “Data Types”

These settings are applied to whole contents of exported project or exchange package. So if you add all sources from your project to Exchange package, Sisulizer use excluded data types settings from Exchange Wizard to all sources in package. Using these settings can be useful, if you would like reduce size of project send to your translators, or if you don’t want get your translators access to some data types. Below is a screenshot from “Excluded Types” dialog in “Exchange Wizard”.

Excluded Types in Exchange Wizard

Hints

  1. If you open excluded data types dialog you can find “Default” and “Strings only” buttons on right side of these dialogs.  “Default” button restore default Sisulizer’s settings for selected source type, while “Strings only” excludes all but strings data type. What’s the difference? When you use “Strings only” for your binary source, Sisulizer exclude also “Boolean” and “Integer” data types, while “Default” setting doesn’t exclude it. Integer numbers are required by Sisulizer to resizing components. Some languages have longer captions and labels than English languages, and it can cause clipped items in forms for these languages. So, if you want to allow your translators to adjust sizes of components, you should uncheck this item on list or use “Default” button. This problem was described also in other article on our blog. However, if you would like keep original sizes of controls for all your localized versions, you can check this item or use “Strings only” button.
  2. Sisulizer display in “Data Types” section of “Filter Panel” all data types detected in your sources, also excluded data types in source properties, but these inactive items are inactive (in grayed color).
    Filter panel
    So if you want to use these Filter panel items, you need to uncheck it in “Excluded Types” tab first.
  3. You can also  disable selected resource types for some platforms (“Resources” tab in source properties). Disabling of selected resource exclude from scan selected resource node with all included to node data types, while disabling of data type exclude from localization selected data type for whole project. More information about resources selection you can find in this article on our blog.

Janusz

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