Monday 21 July 2014

How to create a multilingual report in Oracle using translated templates

Oracle gives a very straightforward method to create multilingual reports if we use XML Publisher to design the reports. We no longer need to create very different report layouts for the same report to be used across languages. Once a language has been installed in addition to the default language, English, then we only need to assign the layout to the language and the characteristics of the language will determine how the output will look like.
I have created a new report below on an Oracle instance where 2 languages are installed, English and Arabic.
Step 1: Check enabled languages
Responsibility: System Administrator
Navigation: Install > Languages
Hit Ctrl+F11 to query for all the records
All the languages are displayed. Now scroll to the right.
You will notice that US English is the base language. This is true for all Oracle Apps installations. Along with English, Arabic (language code AR) in the second line is installed.
You will notice the languages on the Oracle home page.
You can see the option of languages at the bottom as Arabic is installed for this Oracle instance. This means we can have English reports as well as Arabic reports running in this instance.

Step 2: Register a report
We have already created a report named Employee.rdf and have dropped this rdf in $PER_TOP/reports/US in Unix because the concurrent executable is registered in Human Resources application. We shall now register this report to work as a XML Publisher report.
Executable definition
Responsibility: System Administrator
Navigation: Concurrent > Program > Executable
We have created a report named, XXMULTILINGO.
Program definition
We have created concurrent program named, XX Multi-lingual report.
Responsibility: System Administrator
Navigation: Concurrent > Program > Define
No parameters are defined for this report as the rdf does not take any parameter.

Step 3: Attach the report to a request group
Now this report will be attached to a request group so that it can be executed. We will attach the report to a request group named, OM Concurrent Programs, that is attached to the responsibility, Order Management – Medical Eqpt.
Responsibility: System Administrator
Navigation: Security > Responsibility > Request
Save and close the form.

Step 4: Create the Data Definition
We shall now create the data definition of the XML Publisher report with the same name as the concurrent program, i.e. XX Multi-lingual report, and same code, XXMULTILINGO.
Responsibility: XML Publisher Administrator
Navigation: Data Definitions
Step 5: Create the template
We have created 2 rtf templates, 1 for English and 1 for Arabic.
Arabic template (File Name: Arabic template.rtf)
English template (File name: English template.rtf)
Now we will register these templates in Oracle.
Responsibility: XML Publisher Administrator
Navigation: Templates
We created the template with the same name and short name as the concurrent program.
Now we shall add the templates.
Click on Browse to add a template.
We first added the English template and saved the template by clicking on Apply.
Now the English template has been added to this report. We shall now add the Arabic template. Click on Add File button.
The Add file section opens. Add the Arabic template file. Enter Language as Arabic.
Click on Apply button to save the template.
Now you can see that both the templates have been attached to the concurrent program.

Test the report
We shall first test the report in Arabic. To do so we shall log in from the home page by changing the language to Arabic.
After logging in we will have to go to the responsibility Order Management – Medical Equipment. Open the SRS form.
Submit a new request
Enter the program name as XX Multi-lingual report.
Submit the request.
When the program ends, check the output.
The MS word template allowed us to enter Arabic but the XML Publisher engine does not have the same font and therefore the Arabic letters could not be displayed properly and are being displayed as question marks (???). Note that the data is now right justified.
Now log out of Oracle and change the language to English on the home page. Go to the same responsibility and run the report. You will get the output as the following,

Appendix:
Suppose we used the same template for Arabic that we have used for English (the file named English template.rtf used above), the output will look like the following,
Note that the order of the columns has been reversed. In English the column order was Employee #, Title, Name. Since Arabic is right justified and the order of writing is from right to left the same order is now from right to left.

3 comments:

  1. Can we build multilingual reports in Hyperion Financial reporting?

    ReplyDelete
  2. Can we display the data also in Arabic using this process?

    ReplyDelete
  3. Great post on the importance of blog commenting! Blog commenting is an essential part of building a strong online presence and engaging with your audience.

    arabic language course

    ReplyDelete