Who’s up for a little bit of Passolo?

I can remember being asked in early 2007 to organise a report on the benefits of Passolo compared to other tools that also supported visual software localization.  In the same year, shortly after that, SDL purchased Pass Engineering and SDL Passolo was born.  At the time I didn’t know a lot about Trados Workbench or SDLX either as I had a very different role, and I only started getting interested in the technology we (and our competitors) use in 2008 just prior to the release of SDL Trados Studio 2009 the following year.  In all that time since then, until a few months ago, I’m ashamed to say I’ve never taken more than a cursory look at it.  It’s taken a course I’m doing at the moment at the University of Strasbourg to really bring home the value.  One of the modules on this course is “Localization of Graphical User Interfaces” and under some expert tutorage I’m plugging many of the gaps I have in my knowledge of this industry.  I’m even putting it to good use in my daily work!

Localizing apps!

Achim Herrmann (who is the most knowledgeable person I know with this product) didn’t have to ask twice about using Passolo when we discussed localizing SDL BaccS Lite into the same languages as Studio.  He looked at the sdlplugin and idenfified two dll files that contained all the localizable strings.  The beauty of Passolo is that we can then create a localization project where we can not only see the strings that need to be translated but we can see the user interface of the software itself as we’re doing it which gives us the perfect context to avoid rework later on.  For example, you can see the UI of BaccS Lite in the top of the image below with the extracted strings for translation underneath it:

Not only can we see the context visually, the translation is written into the image so you can check it to ensure any special characters are displayed correctly, or the translation fits into the space available; and you can also resize the space for some components such as the tab label we see above.  To handle this in Studio on the basis of the dll files would be impossible.  We would need to extract the strings and put them into something Studio would be able to handle which is often excel, or a text file containing the keyID and the translatable strings themselves.  But then we lose the visual context and we also lose one of the biggest benefits of using Passolo in the first place which is the ID based matching.

When you translate a project using Passolo, and it’s set up correctly, the translation units are stored against the ID.  This means that when you get updated source strings you don’t need to run them against a Translation Memory where there is always the possibility that a 100% match is not the correct 100% match in this context.  Instead they are matched against the string ID and this ensures beyond all doubt that the previously translated strings are the correct ones.

So this idea of being able to open files that Studio can’t work with is interesting and it brings me onto a more common problem I see people dealing with just about every week.  Multilingual Excel files!

Multilingual Excel

It’s common practice, particularly in the gaming industry, for strings to be provided in Excel with multiple columns used for each language.  I saw one yesterday in the SDL Community with 28 target languages all inside one Excel worksheet.  You can handle these in Studio of course but only with the use of the monolingual or bilingual Excel filetypes.  This means a lot of seperate projects and a lot of copy/paste or VBA work afterwards to put the translations back into one spreadsheet for your client.

Passolo doesn’t have this problem as it has the ability to handle Multilingual Excel files using its Excel Parser which comes with the ODBC database add-in.  “But how does that help me as I want to be able to translate these files using Studio?” I hear you ask… well Passolo also has the ability to export files as SDLXLIFF.  And since there is no visual context with an Excel file we have the perfect scenario… strings prepared for translation in Passolo with ID based matching (as long as the IDs are also in the Excel file), and the translation carried out in the more productive translation environment of Trados Studio.  Let’s take this file as an example:

I can add this to Passolo and set up the project using these options for the source file:

In my simple example the sheetname is the default one in Excel, the translatable text starts at row #2, the ID values are in column A and the English source text is in column B.  Once this is complete I need to tell Passolo where the target languages need to be written.

I have to do this for each target language which is a bit of a nuisance if I have a lot of languages and receive files with slightly different formats each time.  But if I get files in the same format then it’s no problem as I can save the parser settings and reuse them again.

Once that’s done I can generate my string lists so it looks like this:… French as an example where you can see I have extracted the source and the ID so they are linked together:

Now I export to SDLXLIFF and I can send the files out for translation with Trados Studio:

Now comes the really cool part… several cool parts in fact!!  I now have five SDLXLIFF files which you’d think I would not be able to add to a single project in Studio since they are all different language pairs.  But you can… I simply drop them into a new project with the appropriate language pairs and this will create a single multilingual project with the correct number of files per language.  So here we can see a single file with the FR extension in the French language folder:

You can also see the other languages in the Files list.  Normally if you add five source files to a project in Studio you would see five source files in each language folder, but in this case Studio identifies the language codes from the SDLXLIFF and correctly sets up the project.

Two things to note in the Studio screenshot below:

  1. you will see a warning that the file was created without using a filetype definition.  This is because the SDLXLIFF was created by Passolo and not Studio.  So there is no way for Studio to get the SDLXLIFF back to the original Excel, you need Passolo to be able to do this.
  2. the ID is respresented in the Document Structure column, so it may provide some useful information for the translator if a little more context is required.  I think a preview capability here would be nice so you had the IDs displayed all the time, and perhaps any other contextual information that can be used when setting up the project in Passolo… but that would be an enhancement for the future perhaps, or maybe an app.

Once the files have been translated they can be imported back into Passolo using the “Import” feature like this:

Passolo will update all the strings accordingly for each language in your project:

Now you just need to generate the target file with “All strings” and the target file is a single Excel file with all the languages, fully translated, and correctly inserted into the columns:

So no copy/paste operations, everything is rebuilt in one go.  For these type of multilingual excel files Passolo certainly saves a lot of administrative time, reduces the potential errors in manually reconstructing the file and gives you the ability to use ID based matching.  A very nice tool and with a lot more features and functions I really like and would love to have in Trados Studio too!

11 thoughts on “Who’s up for a little bit of Passolo?

  1. I sure wish that there was some way to do this with hosted webapps that send software strings through translation. It’s a lot tricker though so i understand the lack of desire to get into this space.

    1. There may be a way ;). Passolo out-of-the-box can localize certain file formats in-context. In that case, the format contains both the strings plus the view definition (x,y,w,h,control type, string id, etc.). Passolo has a great SDK. This way, you can develop custom parsers and viewers. I have developed for example an in-context viewer for Qt for Passolo (https://www.henkboxma.com/sdl-passolo-addin-for-qt/) that takes the strings from TS-files and the preview definitions from UI-files.

      It gets trickier for dynamic (web) applications. In that case, the UI definitions are not available. This is why I have developed the Rigi technology. Basically, Rigi can capture HTML Previews of dynamic applications and indexes all strings that it finds on the UI. When a translator selects a text, then the plugin retrieves the preview from the Rigi server. This way, the translator can translate WYSIWYG. Besides this use case, Rigi also offers features for i18n-testing and language acceptance testing. In the latter case, the in-country reviewer receives the translations in context in a browser. Translators can access his comments directly and apply the changes (in-context).

      Rigi supports any dynamic app, including web apps, embedded software and WPF desktop applications.
      Rigi has plugins for SDL products like SDL Passolo (https://rigi.io/translationeditor/sdl-passolo/) and SDL Trados Studio (https://rigi.io/translationeditor/sdltradosstudio/).

      If you would like to see if it could work for your particular web app, feel free to contact me directly.

  2. Paul, you have inspired me! Last time I used Passolo was AGES ago but this is something worth exploring… Ali 🙂

  3. PS: I see that I only have a license for Passolo 2011. I guess this means it was ‘part of the package’ back then but is now no longer. Nevertheless it’s worth having a play with it… The agency I do most of my work for do localize software but they do it in Studio. Would be interesting to see how much better Passolo is at doing this. Ali 😀

    1. Hi Ali, nice to see I triggerred some interest. You would need a more recent version for sure, the current one is SDL Passolo 2018. There was also no export to SDLXLIFF in 2011 as far as I’m aware.

  4. Hi Paul,
    regarding your comment:
    “the ID is respresented in the Document Structure column, so it may provide some useful information for the translator if a little more context is required. I think a preview capability here would be nice so you had the IDs displayed all the time, and perhaps any other contextual information that can be used when setting up the project in Passolo… but that would be an enhancement for the future perhaps, or maybe an app.”

    Yes, this is something which would be very useful, also for XML files in Studio – and there are already several ideas (at least in the ETUG community, already 2 years old and on status “planned for future release” and/or with comment “Wondering if an app could do the trick here also”):

    – Dockable window for Document Structure Information (https://community.sdl.com/customers-partners/user-groups/etug_public/etug_european_trados_user_group/i/wish_list_-_sdl_trados_studio/dockable-window-for-document-structure-information)

    – Display additional information in Editor view for XML files (https://community.sdl.com/customers-partners/user-groups/etug_public/etug_european_trados_user_group/i/wish_list_-_sdl_trados_studio/display-additional-information-in-editor-view-for-xml-files)

    So let’s hope to see this soon 🙂

    Kind regards

    1. Thanks Christine. For XML files why don’t you just create a custom preview? There is so much variety for XML I think it makes more sense to use XSLT and display whatever you need. I know many users don’t have the skillsets for this but if you are preparing XML filetypes that contain information it’s important to show then I think similar skills can be used for the preview too.
      This doesn’t take away from the need for a preview of some additional information but I’m not sure how it could be done for XML without ensuring you require some sort of statement to define what should be displayed. So perhaps easier than creating a stylesheet, but still somewhat technical.

    1. Hi Maria, yes it is. I just tested the form and once I’ve completed it correctly I am redirected to be able to download from My SDL account. So yes… it is available. I suggest you post into here to ask this so you’ll get the appropriate help.

Leave a Reply