After applying this fix, there is still an issue when you first run the game, The text does not go to the size that it will go to after a change is made.
Using NGUI localization component on a UILabel game object, and switching from, for example, english to french, then back to english.
The english version, the 2nd time, is inconsistent with how it looks originally. Even though the text is the exactly same.
The only solution i have found so far is to put in UILocalize.cs, in Method Localize(), on line 68:
if (input != null && input.label == lbl) input.defaultText = val;
else lbl.text = val;
To be replaced by:
lbl.MakePixelPerfect();
if (input != null && input.label == lbl) input.defaultText = val;
else lbl.text = val;
lbl.text = lbl.processedText;
In that exact order. Moving MakePixelPerfect after setting the text, would cause it to ignore Max Width on the UILabel component.