docs: public final void add(final String[] pLangCountries) {
      if (pLangCountries != null && pLangCountries.length % 2 == 0) {
        for (int i = 0; i < pLangCountries.length / 2; i++) {
          Locale locale = new Locale(pLangCountries[i * 2],
            pLangCountries[i * 2 + 1]);
          if (!(messages != null && locale.equals(Locale.getDefault()))) {
            ResourceBundle msgs = null;
            try {
              msgs = ResourceBundle.getBundle("Messages", locale);
            } catch (Exception e) {
              this.logger.error(null, SrvI18n.class,
                " when loading msg for locale " + locale, e);
            }
            if (msgs != null) {
              this.messagesMap.put(pLangCountries[i * 2], msgs);
              this.logger.info(null, SrvI18n.class,
                "Added messages for lang/country: " + pLangCountries[i * 2]
                  + "/" + pLangCountries[i * 2 + 1]);
              if (this.messages == null) {
                this.messages = msgs;
              }
            } else {
              //If there is no MessagesBundle[current-locale].properties
              this.logger.error(null, SrvI18n.class,
                "There is no messages for lang/country: " + pLangCountries[i * 2]
                  + "/" + pLangCountries[i * 2 + 1]);
            }
          } else {
            this.logger.info(null, SrvI18n.class,
              "Messages already added as default for lang/country: "
                + pLangCountries[i * 2] + "/" + pLangCountries[i * 2 + 1]);
          }
        }
      } else {
        String msg = null;
        if (pLangCountries == null) {
          msg =  "is null!";
        } else {
          for (String str : pLangCountries) {
            if (msg == null) {
              msg = str;
            } else {
              msg += "/" + str;
            }
          }
        }
        this.logger.error(null, SrvI18n.class,
          "Parameters language error, pLangCountries: " + msg);
      }
    }