This content has been marked as final. Show 4 replies
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,
Good day Ben,
I would like to thank you for your detailed answer. It seems logical and I will use your recommandation for my development.
Another option to consider... This is for HTMLHelp installed to Windows.
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 programmer.
Hope that helps, good luck with your solution!
Thank you Kathy for your answer. You brought another point of view. I will consider your way of doing and try to use the best solution from answers I received.