LCD print arrays of Strings with millis();

  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.