How I’m Juggling Conditional Build Tags and Localization in RoboHelp

May 20th, 2008

I see questions from time to time in the RoboHelp forums about ways to deal with the same help system in multiple languages. So I thought I’d lay out the way I do it for reference.

First, let me say that I think the ultimate way to deal with localization would be for the help authoring tool to be able to run all of the translations out of one project. RoboHelp 7 lets you have multiple tables of contents, glossaries, and indexes, and of course, there are conditional build tags that let you create multiple versions of a single help topic. However, as far as I know (and I may be revealing gross ignorance here), it doesn’t let you do multiple versions of:

  • Project title (for the browser title bar)
  • RoboHHRE.lng, the file that drives text like input prompts and error messages
  • Topic titles (the actual HTML file title, not necessarily what appears at the top of a topic—or if it does allow this, you’d have to manually apply the conditional tags in the HTML rather than in the WYSIWYG editor)

Because of said limitations, here’s what I’ve done.

Just a little background on the particular project I’m talking about: When it was handed to me, it had six conditional build tags corresponding to six roles, and I had to add a seventh. That was before the material was translated. I realized that trying to deal with seven roles in four languages each would be a monster for one project. If I did everything out of one RoboHelp project, I would have 28 outputs. It could get ugly.

I created a three copies of the English project and renamed each so I knew what language it included (we were translating into Spanish, Portuguese, and Japanese). I turned in my HTML files to our translation group, as well as the glossary and index files. (I knew I could reconstruct the TOC by simple copy and paste from the title of each topic.) When I received the files back, I dropped them in to the appropriate copy of the RH project.

There was some cleanup to do, but largely, doing things this way preserved the conditional build tags, links, the index, and the glossary. (RoboHelp X5 was the current version when I received this project, so I didn’t have the option of multiple glossaries and indexes.) Things look virtually the same from one project to the other.

Due to the fact that I’ve glossed over details, it doesn’t sound as hairy as it really was. There was some trickiness to it.

The way the help is called is some good programming. Because we have 28 directories, one for each role and language combination, the Java developer who coded the help call put the language and role values in the database; when the user clicks “Help,” the Java dynamically assembles the directory path based on the applicable role and language, and the correct help output opens.

This has been my personal best practice for dealing with both localization and conditional tags based on roles. I’m interested to hear if you’re dealing with this kind of project and what has worked for you.

Leave a Reply