Hello,
We have applications in Arabic (right-to-left) and English language in 6i and still migrating to 12c.
All applications work correctly provided that each one has its own environment configuration with NLS_LANG is set to ARABIC_EGYPT.AR8MSWIN1256 in the environment file.
Now I'm working on an application that contains both Arabic and English forms and could not be separated to two configurations. Only English forms work correctly, Arabic forms direction is not good, most items are not in the right position although the same form appears in design time correctly, this is a screenshot of run time:

And this is of the design time:

Both development and run time NLS_LANG values are set to AMERICAN_AMERICA.AR8MSWIN1256.
English forms direction properties are set to default.
Arabic forms direction properties are set to Right to left (Canvases, Windows, Blocks, and Modules)
I cannot find a way to set NLS_LANG from inside the application before calling the form, is there a way to do this?
This is tested on two machines, both with Windows server 2008 R2 SP1. One of them with Forms and Reports 12c 12.2.1.0 and the other with version 12.2.1.2 because of this thread.