- Home
- DevShare
- Forums
- Wiki
- Products & Services
- Downloads
- Documentation
- Webinars
- Store
- Blog
Back to Designing BIRT Reports FAQ
Yes. Do the following:
When you run your report, BIRT will use the standard Java system for locating a property file that matches the user's locale. The resources for that file will appear in your labels. (If BIRT cannot find a resource file, or cannot find the requested key, then the default text for the label will appear. The default text is what you entered in BIRT's layout editor.)
BIRT Also provides language packs for many languages. The language packs are accessible from the downloads page.
If your default property file is named "myreport.properties", copy it to file named "myreport_lang.properties" or "myreport_lang_country.properties", where lang and country are two letter ISO codes. For example for german translation use "myreport_de.properties", for US english use "myreport_en_US.properties". Then translate all texts behind equal signs (property file consists of couples key=text).
For example, suppose BIRT is used in an ERP application. Invoices are printed in the locale of the customer. The user wants to see the invoice in the same locale as the customer. For example, if the user's locale is German, but customer's local is American, then the user would see the invoice in American format with English strings, decimal point "." instead of German "," etc.
This feature is not available in Release 1.0. It is something to consider for a future release.
Reports are viewed using the BIRT web application. This application takes a __locale parameter within the URL for running a report. Simply set this parameter to the desired locale.
Use reportContext.getMessage("companyNameKey", reportContext.getLocale()), where companyNameKey is a key from the resource bundle associated with the report. See javadoc for more information.
Yes, you can. But you should use javascript, as BIRT Designer does not support this feature. Imagine that you need to localize message: "There are <VALUE-OF>orders</VALUE-OF> orders." First define the key messageOrdersKey with this content: "There are {0} orders." Then edit your report item and type following:
<VALUE-OF>l10nParams = new Array(1); l10nParams[0] = orders;
reportContext.getMessage("messageOrdersKey", reportContext.getLocale(), l10nParams);</VALUE-OF>
Read Sun Java documentation for message format details.