/*!

\page internationalization_support Internationalization Support

<b>Since v.1.1.3</b> CrashRpt supports multi-lingual user interfaces. You should place a valid
language file named \b crashrpt_lang.ini to the directory where \b CrashSender.exe file is located in order to make 
CrashRpt work properly. 

<b>Since v.1.2.4</b>, you can specify custom language file name by using the 
\ref CR_INSTALL_INFO::pszLangFilePath structure member.

The language file is a text document in UNICODE format and having INI extension. 
The language file contains localized strings used by CrashRpt dialogs.

If your software supports several languages, you can distribute several language files with your 
software. On install, rename an appropriate 
file to \b crashrpt_lang.ini and copy it to the folder where your \b CrashSender.exe is located.

You can download a language file from \a lang_files directory under the top-level directory of
the CrashRpt distribution.

Each language file has the CrashRptVersion field that stores the version of CrashRpt you
can use this language file in. If you try to use a language file with a wrong version, the crInstall()
will return an error.

For example, assume you want to download the English language file. Browse for
lang_files->crashrpt_lang_EN.ini (shown below).

\code
- lang_files
       crashrpt_lang_EN.ini
\endcode

If there is no language file for your favourite language, you can contribute one. Also, if you see
that there are some mistakes in an existing language file, you may want to improve it and then
contribute your changes. 

\section contributing_langfile Contributing a Language File

If you want to translate a language file to your native language, you may do the following. 

First of all, chose an existing language file for a language you know well. It would be 
easier for you to translate from such language.

Open the language file using <b>notepad</b>. It is strongly recommended that you use notepad for
editing to avoid unexpected problems with encoding.

You can see that the language file is a regular text file. The file has several sections enclosed
with [] symbols, e.g. [Settings], [MainDlg] and so on. Each section contains a group of named strings.
Strings are stored as <b>StringName=String value</b> pairs.

Below there is a fragment from the beginning of the English language file for CrashRpt v1.1.3:

\code
[Settings]

AuthorName=John Brown	
AuthorEmail=jbrown@gmail.com
Language=English
RTLReading=0
CrashRptVersion=1103

[MainDlg]
DlgCaption=Error Report
HeaderText=%s has stopped working
SubHeaderText=Please send us this error report to help fix the problem and improve this software.
WhatDoesReportContain=What does this report contain?
ProvideAdditionalInfo=Provide additional info about the problem (recommended).
YourEmail=Your E-mail:
\endcode

The <b>[Settings]</b> section contains some configuration parameters.

- The \b AuthorName string should contain your name. It can be empty.

- The \b AuthorEmail string should contain your email. You may store your email here so we
will be able to contact you if we have some problems with your translation. This parameter
can be empty.

- The \b Language string should contain the language name. This parameter is used to determine
what language you are translating to. This parameter is required.

- The \b RTLReading string should be equal to 0 for left-to-right languages (for example, English) 
and 1 for right-to-left ones (for example, Hebrew). This parameter is required. If it is set to 1,
window content is mirrored.

- The \b CrashRptVersion string must contain the CrashRpt version this language file can be used in. For example,
if the file should be used in CrashRpt v.1.1.3, this parameter must be equal to 1103. You typically do not change
the value of this parameter when translating from another language.

All other sections, such as [MainDlg] and [DetailDlg] contain strings that are used in CrashRpt dialogs.
Translate the right part of the string; the left part should not be modified.

Some strings contain formatting symbols, for example <b>%%s</b> (string placeholder), 
<b>%%d</b> (integer placeholder) or <b>\\n</b> (new line). These
special symbols should be left as they are, do not remove them! 

When you are finished the translation, save your changes as a file named \b crashrpt_lang_XX.ini. Replace XX with an appropriate
language abbreviation (EN and so on). Ensure your file has the .INI extension. In the <b>Save as type</b> field, select <b>Text documents (*.txt)</b>. 
In the <b>Encoding</b> field, select <b>Unicode</b>.

Then test your changes by substituting the language file. Rename your file into
<b>crashrpt_lang.ini</b> and copy it to the directory where \b CrashSender.exe is located (the \c bin directory under the
CrashRpt top-level directory) and run \b CrashRptTest.exe.

To contribute your changes, please leave us a message in our 
<a href="http://groups.google.com/group/crashrpt">Forum</a>. We will let you know how your changes 
can be uploaded. 

\section internationalization_faq FAQ

<b>I want to upgrade my language file from a previous version to the latest CrashRpt version. What do I do?</b>

To determine the differences between your language file and the language file for the latest CrashRpt version,
please see language files change log (located in the \a lang_files\readme.txt). 

*/
