I'm a new developer (layman in the field) using the new
version of RoboHelp 7. I've been asked to develop a help system
which would be accessible by english and french users. I read a lot
the documentation provided by Adobe but I have some questions in
order to avoid problems:
1) What's the best way for developing a multilingual help
system.... should I create specific files for english and specific
files for french ?
2) How the user will get the appropriate help file in his
selected language.... Should the user be obliged to select his
prefered language and the triggering the help application along
with passing the selected language ?
Welcome to the forums. I don't know the
best way, but I can tell you what I do and let you be the
To answer your questions in short (then see the explanation
1) I created a separate project for each language.
2) The way our developers implemented the code, the help
system appears in the language the user is viewing the application
I work on a couple of Web projects (Java and database driven)
where we have multiple languages. I made a copy of the original
English version of the project for each language (each copy must be
in a different directory). After the HTML topics were translated, I
put them in the appropriate copies of the projects so they were no
longer English. I also set the language of each copy to the
appropriate language in File > Project Settings. Then each
different language version is output to a different location.
Those separate versions of the help likewise go in different
directories on the server. In the application, the user chooses the
language in which to view the application. Then, when he clicks
"Help," the Java determines based on the language he's viewing
which version of the help to show. The way our developers have done
it is having the Java assemble a path to the start page based on
the language (and on the user's role) and assembling pieces of the
path that are stored in the database. This probably isn't the only
solution to make this work on the application side, but it has
worked for us.
So in your case, as an example, you could have
English_Project and French_Project. You store the source files in
C:\help project\English and C:\help project\French, respectively.
The English version could output to C:\help project\English\output,
and the French version to C:\help project\French\output. On the
server, these outputs could sit in directories next to each other
in such locations: ...\help\english and ...\help\french.
Then, when the user views the app in English and clicks Help,
the Java says, "I want the English help, so I'll use the path to
the ...\help\english version." The same kind of thing would happen
Another option for managing the two languages in RoboHelp is
to by having two conditional tags, English and French, and put all
the content of both languages in the same project in the same help
topics. Then apply the English tag to the English text and the
French tag to the French text. (The tags would have to be applied
to entries in the index, glossary, etc.) You would still run each
output to a different directory, and you would use the same
solution when it comes to the application deciding which version of
the help to open.
Another option to consider... This is for HTMLHelp installed
I am also creating one project per language, but keeping the
.htm topic filenames and compiled .chm filename the same across all
versions. The specific language version is going to be picked
during installation of the software app. It's all theory at the
moment; our install script writer has yet to start on it!! The plan
is, the install script will query the Windows operating system's
Culture variable, and based on that will pull the matching .chm
from the .msi.
Keeping the .chm filename the same in all versions means the
software app does not itself have to worry about which help file to
call. And keeping the .htm topic filenames the same is important if
your help is context-sensitive from the app, for the same reason:
the same code will work regardless of language. Less coding for the