Q: InstallShield 2016 Premier localization

Hello forum,

Are there any experiences with InstallShield 2016 projects to localize?

The strings are located per default in the project file (.ism) with all languages[1]. I'm not sure what is the best practice to localize these strings.

Possibilities:

  • Try to manage the ism-file[1].
    I guess the marked numbers are language IDs. All strings are contained in the yellow marked section.
     
  • Export each language in a separate file and handle the localization there. After that we have to import each language again.

Any hint are welcome.

 

[1] XML based ism file

<.ism>


<...>
    <table name="ISString">
        <col key="yes" def="s255">ISString</col>
        <col key="yes" def="s50">ISLanguage_</col>
        <col def="S0">Value</col>
        <col def="I2">Encoded</col>
        <col def="S0">Comment</col>
        <col def="I4">TimeStamp</col>
        <row><td>BT_DRV_INSTALLED</td><td>1031</td><td>Beide Treiber wurden erfolgreich installiert!</td><td>0</td><td/><td>354176335</td></row>
        <row><td>BT_DRV_INSTALLED</td><td>1033</td><td>Both drivers have been successfully installed!</td><td>0</td><td/><td>1293695661</td></row>
        <row><td>BT_DRV_INSTALLED</td><td>1034</td><td>00!M`&amp;(`;P!S`"``8P!O`&amp;X`=`!R`&amp;\`;`!A`&amp;0`;P!R`&amp;4`&lt;P`@`&amp;@`80!N`"``&lt;P!I`&amp;0`;P`@`&amp;D`;@!S`'0`80!L`&amp;$`9`!O`',`(`!C`&amp;\`;@`@`.D`&gt;`!I`'0`;P`N````</td><td>50</td><td/><td>1293734573</td></row>
        <row><td>BT_DRV_INSTALLED</td><td>1036</td><td>3`!E`',`(`!D`&amp;4`=0!X`"``&lt;`!I`&amp;P`;P!T`&amp;4`&lt;P`@`&amp;\`;@!T`"``Z0!T`.D`(`!I`&amp;X`&lt;P!T`&amp;$`;`!L`.D`&lt;P`@`&amp;$`=@!E`&amp;,`(`!S`'4`8P!C`.@`&lt;P`@`"$`</td><td>48</td><td/><td>1293701805</td></row>
        <row><td>BT_DRV_INSTALLED</td><td>1040</td><td>Entrambi i driver sono stati installati con successo.</td><td>0</td><td/><td>1293714093</td></row>
        <row><td>BT_DRV_INSTALLED</td><td>1046</td><td>Os dois drivers foram instalados com sucesso!</td><td>0</td><td/><td>1293728429</td></row>
        <row><td>CONNECT_DEVICE</td><td>1031</td><td>Verbinden Sie das System350 mit Ihrem PC über die Programmierleitung USB350. \nEs werden noch zwei Treiberinstallationen durchgeführt. Bitte bestätigen Sie hier die notwendigen Einstellungen. \nBestätigen Sie diese Meldung erst, wenn beide Treiber erfolgreich installiert sind. </td><td>0</td><td/><td>-2061674453</td></row>
        <row><td>CONNECT_DEVICE</td><td>1033</td><td>Please connect System 350 to your PC using the USB350 programming cable. \nTwo driver installations are still being performed. Please confirm the required settings here. \nConfirm this message only after both drivers have been installed. </td><td>0</td><td/><td>-1524780856</td></row>
        <row><td>CONNECT_DEVICE</td><td>1034</td><td>Conecte el System350 al PC con el cable de programación USB350. \nSe están realizando otras dos instalaciones de controladores. Confirme aquí los ajustes necesarios. \nConfirme este mensaje sólo cuando ambos controladores hayan sido instalados con éxito.</td><td>0</td><td/><td>-1524801368</td></row>
        <row><td>CONNECT_DEVICE</td><td>1036</td><td>Veuillez connecter le BS350 à votre PC à l’aide du câble de programmation USB350. \nDeux pilotes sont encore en cours d’installation. Veuillez confirmer les paramètres nécessaires ici. \nNe confirmez ce message que lorsque les deux pilotes ont été installés avec succès. </td><td>0</td><td/><td>-1524809528</td></row>
        <row><td>CONNECT_DEVICE</td><td>1040</td><td>Collegare il System350 al PC tramite il cavo di programmazione USB350.\nVengono eseguite ancora due installazioni driver. Confermare qui le impostazioni necessarie.\nConfermare questo messaggio solo quando entrambi i driver sono stati installati con successo. </td><td>0</td><td/><td>-1524774744</td></row>
        <row><td>CONNECT_DEVICE</td><td>1046</td><td>Conecte System350 ao PC com um cabo de programação USB350. \nDuas instalações de drivers ainda estão sendo executadas. Confirme as configurações necessárias aqui. \nSomente confirme esta mensagem quando os dois drivers tiverem sido instalados com sucesso.</td><td>0</td><td/><td>-1524776824</td></row>
        <row><td>DICONNECT_DEVICE</td><td>1031</td><td>4P!T`&amp;4`;`!L`&amp;4`;@`@`%,`:0!E`"``&lt;P!I`&amp;,`:`!E`'(`+``@`&amp;0`80!S`',`(`!D`&amp;$`&lt;P`@`%,`&gt;0!S`'0`90!M`#,`-0`P`"``;@!I`&amp;,`:`!T`"``_`!B`&amp;4`&lt;@`@`%4`4P!"`"``;0!I`'0`(`!D`&amp;4`;0`@`%``0P`@`'8`90!R`&amp;(`=0!N`&amp;0`90!N`"``:0!S`'0`+@`@````</td><td>80</td><td/><td>354186575</td></row>

<...>

</.ism>

  • Some years ago I published knowledge base article with tips on the XML parser. After many technology changes it unfortunately disappeared from the SDL website. I found it an old archive:


    There are always requests on how to configure the XML parser for some very special XML structures. Some of these files were rather complicated and it seems that the designers of these XML structure don't have easy translatability in mind when creating the structure. Here are some tips how to handle these files.

    Tip 1

    When you are creating XML structures that will contain translatable content or when you have at least some influence on the designers that are creating the XML structures, please recommend the book XML Internationalization and Localization by Yves Savourel, Sams, ISBN 0672320967. Yves is one of the XML gurus when it comes to internationalization and localization and the book contains useful hints that makes translation of XML files easier.

    Tip 2

    When you are a LSP and you have to translate your clients XML files you usually have no influence on the XML structure. Depending on the relation you have to your client, it may be worth to also recommend the book from tip 1. To configure the XML parser of Passolo you need at least some information on the XML structure from your client. Which elements or attributes must be localized and which additional meta data can be added to the project to simplify the translation process. The XML parser is quite sophisticated supporting XPATH expressions to automatically read meta data like IDs, comments and other data into the project. If you need to create XML parsing rules on a regular basis I would recommend to sign up for a training that take this into account.

    Tip 3

    Using the XML parser every rule must be configured explicitly and there are some limitations that can't be overcome. So you will always find complicated XML structures where a rule based setup doesn't give you the optimal solution. In this case I would recommend to implement a macro based parser solution. A good example is the Visual XLIFF component that can be downloaded by registered customers from the PASSOLO 4.0 download page. This parser was implemented a few years ago for XLIFF files with Windows profile and is based on Passolo's VBA compatible macro technology. It shows

    • How to implement a macro based parser using Passolo's COM object model
    • How to use MSXML4 to read and write XML files
    • How to use Passolo's internal dialog editor to visualize simple Windows dialogs

    This macro can be used as a starting point for your solution but you need some programming skills. Please note that it is not necessary to use Passolo's internal VBA compatible programming language. Every programming language that is able to work with COM object and COM object events can be used to implement such a special solution. It is always necessary to investigate whether such a user defined solution has a ROI.

    Nowadays I would add 2 more tips:

    Tip 4

    Implement a small utility that convert the file into a more localization friendly multilingual XML file format that can be handled by SDL Passolo. Something like

    Screenshot of an XML code snippet with a row element containing bilingual text in German and English indicating successful driver installation.

    Tip 5

    With the SDL Passolo SDK published in the SDL developer forum, download the SDK and implement your own special XML parser using the SDK. Nowadays I think this would be is easier than using the macro engine.

    Conclusion

    The ISM file in general is not very localization friendly and I’m really wondering why even larger companies don’t comply with the basic rules that were published by Yves Savourel (see above). If InstallShield cannot export other formats I would recommend to go for tip 4 or tip 5.

    emoji


    Generated Image Alt-Text
    [edited by: Trados AI at 5:06 AM (GMT 0) on 5 Mar 2024]
  • Hello Achim,

    thx for reply. You are very right with your statement about the ism file regarding the localisation.

    An export (txt) has the following shema: ID<tab><text><tab><comment>
    Is there a common filter/settings for this file?
  • Yes, creating a text parsing rule for such an file format is very easy and will take 5 minutes max.
  • Hello Achim,

    could you advice me to download the sample mentioned below Tip 3?