Urdu is very popular and is supported by all modern by default. If you can type in Urdu in any available Windows program, you can type in in you .NET application even
RightToLeft
is not set.
And it has nothing to do with localization. You can type Urdu on any system. (I have no idea what is "localization it true", you don't need it.) Localization is something completely different.
But can you? How did you tell the OS that you switched your keyboard to Urdu? After all, paste some Urdu text in your control; and you will see it works immediately.
First of all, you need to add a language in the Control Panel, "Region and Language", "Keyboard and Languages". Chose a keyboard switch keys in "Advanced Key Settings". But this is something every user of the OS should know, not just a software developer. :-)
As you are using
System.Windows.Forms
(always tag it in your question, use "Improve question"!), you can also switch input languages using
System.Windows.Forms.InputLanguage.CurrentInputLanguage
,
http://msdn.microsoft.com/en-us/library/system.windows.forms.inputlanguage.currentinputlanguage.aspx[
^].
You don't have to do that. I would recommend to rely on the OS only.
By the way, right-to-left and left-to-right is going to be tricky for typing. You can freely mix, say, English and Urdu in one line, as well as any other languages. The direction will be jumping as your type characters from different subsets of Unicode code points.
Please see:
http://unicode.org[
^],
http://unicode.org/faq/utf_bom.html[
^].
—SA