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

Categories
How To...

I have two Sisulizer projects and I would like merge it to one project. Is this possible?

Sisulizer hasn’t implemented feature for directly merging several projects to one project. However, you can do it with Sisulizer in really easy and flexible way:

1. First, you should add all sources to one project, which belong to second project. You can add these new source items to project via “Add source” UI items available via “Project” menu, main toolbar icon or via context menu of Project Tree.

2. If your second project contains some translation languages unavailable in your targeted project, you should add these languages to this project via “Project” menu -> “Languages” or via “Select target language” dropdown menu on main toolbar.

3. Next, you should use “File” menu -> “Import”. This UI item opens dialog of Import Wizard. In first step you can select imported languages. Of course, you can use here standard Windows keys (Ctrl and Shift) for selecting multiple languages. Clicking on “Next” button navigates you to next wizard step, that is, “Import Wizard – Options”. Here you can find all import options. Below are short descriptions of most important options.

Import options

Import method

  • By value – Sisulizer compares original values in both projects during import. The item is imported to all rows where the original value equals to the original value of the import item. This setting could automatically translate not translated originals in your first project which have been translated already in second project. However, you can lose some translations from second project, if this project contains originals translated in different way.
  • By context – Sisulizer compares context values in both projects during import. The item is imported to the row where the context value equals to the context value of the import item. You can use this setting, if you would like get translations exact matched with translations from second (imported) project. So this option can be useful, if you have duplicate originals which have been translated in different ways in imported project.  However, this setting doesn’t translate automatically not translated items in first project identical with items from second project.
  • By context first then by value – Sisulizer tries first to import by context. If no match, then import by value. This setting combines merits of both mentioned above methods.

Import also those items where the translated value equals to the original value
Some translations should be identical with identical with originals, for example names or some common captions (e.g. “OK” buttons) in most languages. So you can check this option.

Import only if context and original value match
I recommend checking this option, if you would like get results exact matched with your second (imported) project.

Import translation status:
I recommend checking of “Yes” option, because it allows you import to first project all translation statuses from second project

Comments
If your imported project contains translation comments, you can select “Import if there is no comment at the moment” setting, because it allows you import these comments.

Misc
If your second project contains items with “Do Not Translate” status and with maximum string length setting, you should also check following options:

  • Import Read Only status
  • Import maximum string length value

When you are ready, simply click on “Finish” button, and that’s all.

Janusz

Categories
How To...

I can’t resize my controls in Visual Editor. How I can change it?

This issue could have different reasons, but most common reasons are:

1. You have checked “Integer” item on list of excluded data types in source properties -> “Excluded types”. You can open source properties via Project menu -> “Edit source”, or via “Properties” item in context menu of source node in project tree.
X, Y coordinates, width and height values are integer numbers, so if you want to change these values you need to enable integer numbers for localization in source properties.

Excluded data types

2. You have checked “Project” menu -> “Options” -> “Lock all the components” option.

Project options

3. You have checked “Locked” option in “General” settings of “Visual Editor Properties”. “Visual Editor Properties” are available via “Tools” menu -> “Editors”-> “Form” item, or via context menu of Visual editor.

Editor properties

Janusz