I realize this may be thread > 60 days old but I thought I'd propose a hack for anyone else who stumbles on this issue. As both vallcrist and Ernest indicated, when an actual newline character is present in a localization value the first character of the value will not be present in the game.
Example Localization.txt:
KEY,English,Spanish
name,"Common Name
Latin Name","ES Translation Missing
Latin Name"
anotherKey,"Some Value","ES Translation Missing"
Using "name" in English yields "ommon Name
Latin Name".
To remedy this you have two choices:
The first is to use the localizations as intended by replacing the newline character with "\n", so that the name line becomes
name,"Common Name\nLatin Name","ES Translation Missing\nLatin Name"
The other option is to modify NGUI/Scripts/Internal/ByteReader.cs by commenting out line 220:
while (canRead)
{
if (insideQuotes)
{
string s = ReadLine(false);
if (s == null) return null;
s = s.Replace("\\n", "\n");
line += "\n" + s;
// ++wordStart; // comment out this line
}
I'm not completely sure of what other solutions this might impact but it seems to work for my localizations csv so far.
Hope this helps someone in the future.