Solved

Oracle Forms 6i. How to build a multilingual application?

Posted on 2009-04-08
7
1,292 Views
Last Modified: 2013-12-07
Hello!
I want to enhance my Oracle Forms 6i application with multilingual capability. Which is the best way to achieve this using the same form at runtime? I don't want to use Oracle Translation Builder, because I want to show the proper language in combination with the user is logging on. For example, user1 will show English and user2 Greek!
Thank you in advance!
0
Comment
Question by:vfafou
7 Comments
 
LVL 47

Accepted Solution

by:
schwertner earned 300 total points
ID: 24095777
It is a hard task. I took part in such project in USA - 3 language forms (english, polish, portugeese)
You have to create a table that will keep all labels in your forms.
The table:
CREATE TABLE labels(
        id   INTEGER,
        eng VARCHAR2(100),
        gree VARCHAR2(100));

Now base the labels not on hardcoded strings (the common solution!)
Base them on the contents of some variables.
The forms will have a parameter dedicated to the language.
In the BEFORE-INSTANCE trigger put code that will select into these variables
the appropriate texts from the column dedicated to the language pointed by the parameter of the
form.

The major issue is the different length of the equivalents worde in English and Greece ...
0
 
LVL 34

Assisted Solution

by:Mark Geerlings
Mark Geerlings earned 200 total points
ID: 24097373
I agree that this may not be not easy in Forms6i, but it should be possible.  I think Oracle managed to do it in their (big, expensive, complex) Oracle Applications suite, that is now called: e-Business Suite, or EBS.

The suggestion from schwertner should work.  I think it will be easiest if you have a startup form that all of your other forms are called from (via a: "call_form" command).  The startup form may need to have the prompts hard-coded in both languages, but then after the login (in either an "on-login" or "when-new-form-instance" trigger) it can check a table you have created to indicate the preferred language for each user and set that value in a form parameter that can then be passed to each other form in the application.  Those forms will have to have their prompts based on variables.  I suggest that you create a non-base-table block in each form with a field for each screen label that you need in that particular form.  These will be the variables that you use for your screen prompts.  These control block fielda can all be: "display_items" not "text_items" to save some memory.  Make sure that you set the navigation on the other block(s) in the form so the users cannot navigate to the control block.  Set these two properties on each of the control block fields that you use for screen prompts: Bevel - none; Background color - gray20. (That is, if you use the default forms6i canvas color.  If you have changed the canvas color, set the background color of these fiields to match your canvas color, so these fields look like prompts, not not like data fields.)

Write a program unit in each form to query the values you need for that form and place them in the appropriate control block fields.  Add a call to this program unit in both a "when-new-form-instance" trigger and in a "clear-form" trigger that you write, to make sure the prompts are always populated correctly.
0
 
LVL 47

Expert Comment

by:schwertner
ID: 24097619
It works. We did this in Columbus, Ohio nine years ago working with Forms 5, not with Forms 6.
The year was 1999.  This was e big project for a very big American Insurance Enterprise.
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

Author Closing Comment

by:vfafou
ID: 31567945
Thank you schwertner and markgeer! I will shortly start it!
0
 
LVL 47

Expert Comment

by:schwertner
ID: 24147163
Good Luck!
0
 

Expert Comment

by:CMANI10
ID: 24193974
I have done this ..now another query is ...
how can i change the native language of Operating System from English to polish at run time of application by the selection of user through the language selecting list item?
0
 
LVL 34

Expert Comment

by:Mark Geerlings
ID: 24194019
Like schwertner said: "Good Luck" with that!  I don't know that that is supported, at least not by any O/S that I am familiar with.  Which O/S do you have?
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Article by: Swadhin
From the Oracle SQL Reference (http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm) we are told that a join is a query that combines rows from two or more tables, views, or materialized views. This article provides a glimps…
Why doesn't the Oracle optimizer use my index? Querying too much data Most Oracle developers know that an index is useful when you can use it to restrict your result set to a small number of the total rows in a table. So, the obvious side…
This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now