// Path: src/main/java/net/sourceforge/pinemup/core/i18n/I18N.java
// public final class I18N {
//    public enum SupportedLocale {
//       de_DE("de", "DE"),
//       cs_CZ("cs", "CZ"),
//       en_US("en", "US"),
//       ru("ru"),
//       uk_UA("uk", "UA");
// 
//       private final Locale locale;
// 
//       private SupportedLocale(String language) {
//          locale = new Locale(language);
//       }
// 
//       private SupportedLocale(String language, String country) {
//          locale = new Locale(language, country);
//       }
// 
//       public Locale getLocale() {
//          return locale;
//       }
// 
//       @Override
//       public String toString() {
//          return locale.getDisplayName();
//       }
// 
//       public static SupportedLocale fromLocaleString(String localeString) {
//          String[] localeParts = localeString.split("_");
//          String language = localeParts[0];
//          String country = "";
//          if (localeParts.length > 1) {
//             country = localeParts[1];
//          }
// 
//          SupportedLocale locale = FALLBACK_LOCALE;
//          for (SupportedLocale l : SupportedLocale.values()) {
//             if (language.equals(l.getLocale().getLanguage()) && country.equals(l.getLocale().getCountry())) {
//                locale = l;
//                break;
//             }
//          }
//          return locale;
//       }
//    }
// 
//    private static final SupportedLocale FALLBACK_LOCALE = SupportedLocale.en_US;
// 
//    private static final Logger LOG = LoggerFactory.getLogger(I18N.class);
// 
//    private ResourceBundle res;
// 
//    private static class Holder {
//       private static final I18N INSTANCE = new I18N();
//    }
// 
//    public static I18N getInstance() {
//       return Holder.INSTANCE;
//    }
// 
//    public void setLocale(Locale locale) {
//       res = ResourceBundle.getBundle("i18n.messages", locale);
//       Locale.setDefault(locale);
//    }
// 
//    private I18N() {
//       res = ResourceBundle.getBundle("i18n.messages", FALLBACK_LOCALE.getLocale());
//    }
// 
//    public String getString(String key) {
//       String s;
//       try {
//          s = res.getString(key);
//       } catch (MissingResourceException e) {
//          s = key;
//          LOG.error("The resource with the key '" + key + "' could not be found.", e);
//       }
//       return s;
//    }
// 
//    public String getString(String key, Object... args) {
//       String message = getString(key).replace("'", "''");
//       return MessageFormat.format(message, args);
//    }
// }


import net.sourceforge.pinemup.core.i18n.I18N;
import java.awt.Color;
   private final byte code;
   private final String name;
   private final Color color1;
   private final Color color2;

   private NoteColor(byte code, String name, Color color1, Color color2) {
      this.code = code;
      this.name = name;
      this.color1 = color1;
      this.color2 = color2;
   }

   public byte getCode() {
      return code;
   }

   public String getLocalizedName() {
      return I18N.getInstance().getString(I18N_PREFIX + name);
   }

   public Color getColor1() {
      return color1;
   }

   public Color getColor2() {
      return color2;
   }

   public static NoteColor getNoteColorByCode(byte code) {
      if (code >= 0 && code < NoteColor.values().length) {
// Path: src/main/java/net/sourceforge/pinemup/core/i18n/I18N.java
// public final class I18N {
//    public enum SupportedLocale {
//       de_DE("de", "DE"),
//       cs_CZ("cs", "CZ"),
//       en_US("en", "US"),
//       ru("ru"),
//       uk_UA("uk", "UA");
// 
//       private final Locale locale;
// 
//       private SupportedLocale(String language) {
//          locale = new Locale(language);
//       }
// 
//       private SupportedLocale(String language, String country) {
//          locale = new Locale(language, country);
//       }
// 
//       public Locale getLocale() {
//          return locale;
//       }
// 
//       @Override
//       public String toString() {
//          return locale.getDisplayName();
//       }
// 
//       public static SupportedLocale fromLocaleString(String localeString) {
//          String[] localeParts = localeString.split("_");
//          String language = localeParts[0];
//          String country = "";
//          if (localeParts.length > 1) {
//             country = localeParts[1];
//          }
// 
//          SupportedLocale locale = FALLBACK_LOCALE;
//          for (SupportedLocale l : SupportedLocale.values()) {
//             if (language.equals(l.getLocale().getLanguage()) && country.equals(l.getLocale().getCountry())) {
//                locale = l;
//                break;
//             }
//          }
//          return locale;
//       }
//    }
// 
//    private static final SupportedLocale FALLBACK_LOCALE = SupportedLocale.en_US;
// 
//    private static final Logger LOG = LoggerFactory.getLogger(I18N.class);
// 
//    private ResourceBundle res;
// 
//    private static class Holder {
//       private static final I18N INSTANCE = new I18N();
//    }
// 
//    public static I18N getInstance() {
//       return Holder.INSTANCE;
//    }
// 
//    public void setLocale(Locale locale) {
//       res = ResourceBundle.getBundle("i18n.messages", locale);
//       Locale.setDefault(locale);
//    }
// 
//    private I18N() {
//       res = ResourceBundle.getBundle("i18n.messages", FALLBACK_LOCALE.getLocale());
//    }
// 
//    public String getString(String key) {
//       String s;
//       try {
//          s = res.getString(key);
//       } catch (MissingResourceException e) {
//          s = key;
//          LOG.error("The resource with the key '" + key + "' could not be found.", e);
//       }
//       return s;
//    }
// 
//    public String getString(String key, Object... args) {
//       String message = getString(key).replace("'", "''");
//       return MessageFormat.format(message, args);
//    }
// }


// Path: src/main/java/net/sourceforge/pinemup/core/model/NoteColor.java
import net.sourceforge.pinemup.core.i18n.I18N;
import java.awt.Color;

   private final byte code;
   private final String name;
   private final Color color1;
   private final Color color2;

   private NoteColor(byte code, String name, Color color1, Color color2) {
      this.code = code;
      this.name = name;
      this.color1 = color1;
      this.color2 = color2;
   }

   public byte getCode() {
      return code;
   }

   public String getLocalizedName() {
      return I18N.getInstance().getString(I18N_PREFIX + name);
   }

   public Color getColor1() {
      return color1;
   }

   public Color getColor2() {
      return color2;
   }

   public static NoteColor getNoteColorByCode(byte code) {
      if (code >= 0 && code < NoteColor.values().length) {
         return NoteColor.values()[code];