import java.text.MessageFormat;
import java.util.Locale;
import java.util.Map;
import java.util.HashMap;

public class FruitMessage {
   private static final Map<String, String> PATTERNS = new HashMap<>();

   static {
      PATTERNS.put("en", "{0,choice,0#There are no fruits.|1#There is one fruit.|1<There are {0,number} fruits.}");
      // Spanish (0 = No hay, 1 = Hay una, >1 = Hay X)
      PATTERNS.put("es", "{0,choice,0#No hay frutas.|1#Hay una fruta.|1<Hay {0,number} frutas.}");
      // German (0 = Es gibt keine, 1 = Es gibt eine, >1 = Es gibt X)
      PATTERNS.put("de", "{0,choice,0#Es gibt keine Früchte.|1#Es gibt eine Frucht.|1<Es gibt {0,number} Früchte.}");
      // Romanian (0 = Nu există, 1 = Există un, >1 = Există X)
      PATTERNS.put("ro", "{0,choice,0#Nu există fructe.|1#Există un fruct.|1<Există {0,number} fructe.}");
   }

   public static MessageFormat message (final Locale l) {
      final var langCode = l.getLanguage();
      final var pattern = PATTERNS.getOrDefault (langCode, PATTERNS.get("en"));
      final var m = new MessageFormat (pattern, l);
      return m;
     // (count -> m.format (new Object[]{count}))
   }
}