Welcome to the forums. I don't know the
best way, but I can tell you what I do and let you be the
judge.
To answer your questions in short (then see the explanation
below):
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
in.
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
with French.
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.
That's probably a lot to digest. Hope it helps,
Ben