I have a problem with String.Format. The following code formats the string correctly apart from the first integer. Current culture is set to Iraqi arabic (ar-IQ):
int currentItem= 1;
string of= "من";
int count = 2;
string formatted = string.Format(CultureInfo.CurrentCulture, "{0}{1}{2}", currentItem, of, count);
The text is formatted right to left and the 2 is converted to an arabic digit, but the 1 isn’t.
Any ideas?
The default behaviour for converting numeric values is “Context”, which basically means if a number is proceeded by Arabic they display in Arabic (or another “non-Latin” character), if they’re not then they display in “standard” European numbers.
You can change that behaviour quite easily though:
That should work as you expect – more details on MSDN.