int i = 0;
if (currentLCDMillis - previousLCDMillis > interval2) {
i++;
lcd.setCursor (6, 0);
lcd.print(" "); //delete the old text
lcd.setCursor (6, 0);
lcd.print(languages[i]);
The first time that languages is accessed, i=1. You don't want to increment i until AFTER it has been used the first time.
Since that function is called over and over, it seems likely that i should be static.
And, i is a crappy name for a static variable.