On screen keyboard with a different language on ubuntu

Try Gnome On-Screen Keyboard (gok), it has the ability to specify custom keyboard layouts via an XML file. Unfortunately the XML format is not documented well, and a GUI editor does not exist yet. I can't find any other on-screen keyboards that offer this though.

install it with sudo apt-get install gok

Update: Re the default Ubuntu on-screen keyboard 'onboard', see if this thread is of any help. The last post says that persian and arabic are pretty close, perhaps that translation could be the base for your custom layout. place the file in /home/user/.sok/layouts and choose it in onboard-settings.