How does it work?
LangAgent consists of three parts:
LangAgent Workshop (la.exe) LangAgent Workshop reference
LangAgent Workshop operates in two modes: GUI and command line.
You can run LangAgent Workshop as a plain application, and
setup a LangAgent project, and adjust parameters. LangAgent
Compiler (integrated into LangAgent Workshop) operates in the
command line mode. Normally, you will add a call to LangAgent
Compiler in the post-build step in your application. So, every
time you compile your project, LangAgent Compiler will be invoked.
LangAgent Editor (laedit.exe) LangAgent Editor reference
LangAgent Editor is a special editor for task files.
Provide your translators with this tool so that they could translate
LangAgent Run-time library (lartl.dll, lartlu.dll) LangAgent runtime and API reference
Run-time DLL should be included along with a message file into
the installation package.
Here is a description how it works.
- Run workshop and setup the project. This is a one-time task
and will be described in details in the next chapter. Particularly
you should specify the languages you are going to support in your
- Prepare your project for LangAgent. This is a one-time task
and will be described in details in the next chapter. You will
have to add several lines of the code to the project and review
all text messages. For each text message use the LSTR macro. For
Resource texts (strings and dialog boxes) are processed automatically.
- Compile your project. LA Workshop is invoked in the post-build
step. LA Workshop scans source files, extracts all text messages
and creates or updates task files (.xmla) (this process is marked
as LA phase 1 on the diagram).
- Send .xmla task files to translators.
- Translators edit the .xmla files using LA Editor. When the
translation work is done, they send .xmla files back to you.
- Review the .xmla files and copy them back to the project directory.
Don't worry about overwriting the existing files.
- Compile your project again. LA Compiler will create a message
file for your application (this process is marked as LA phase
2 on the diagram). Message file contains all texts in all supported
languages. Message file could be encrypted.
- Build a distribution package. Don't forget to include laRTL.dll
and message file (.la) into the package. LA Runtime will automatically
handle all text messages in your application (including resources)
and translate them on the fly.
Tips and tricks
- LangAgent does NOT translate any string that contain a copyright
sign (C). This is set by design.
- LangAgent does not translate any control in a dialog if its
text begins with the `(back apostrophe) symbol (back apostrophe
will be removed at runtime).
- Current version of LangAgent was designed for and tested on
European languages. You may have some troubles with eastern languages.
For example, some languages use right-to-left writing which is
not yet supported by LangAgent.
- English words are short enough, so the translated text can often
turn out longer than the original one. Make sure, that a longer
text can properly fit into your GUI. Pay special attention to
checking all your dialog boxes if there is no control with a truncated
text. We recommend you to leave some additional free space in
every dialog control to avoid the translated text truncating.
- LangAgent translates the strings which are loaded using the
AfxLoadString function only. LangAgent does NOT translate a string
if it is loaded via the WIN32 API functions (such as LoadString
or LoadResource). To handle strings loaded by the LoadString function
use the LaGetStr function
LoadString(hInst, ID_MYSTRING, StrBuffer, sizeof StrBuffer);
LPCTSTR translatedStr = LaGetStr(StrBuffer);
// use translatedStr
Next step. How do I attach it to my