// Path: src/main/java/com/cipherdyne/jfwknop/EnumFwknopRcType.java
// public enum EnumFwknopRcType {
// 
//     PORT_LIST,
//     IP_ADDRESS,
//     LOCAL_IP_ADDRESS,
//     Y_N,
//     DIGEST_ALGORITHM,
//     ENCRYPT_MODE,
//     PASSPHRASE,
//     BASE64_PASSPHRASE,
//     GPG_KEY_ID,
//     DIRECTORY_PATH,
//     FILE_PATH,
//     IP_PLUS_PORT,
//     SINGLE_PORT,
//     PROTOCOL,
//     PROTOCOL_PLUS_PORT,
//     SECONDS,
//     URL,
//     STRING,
//     TIME;
// 
//     private EnumFwknopRcType() {
//     }
// }
// 
// Path: src/main/java/com/cipherdyne/utils/InternationalizationHelper.java
// public class InternationalizationHelper {
// 
//     static private ResourceBundle messages;
//     private static final Logger LOGGER = LogManager.getLogger(InternationalizationHelper.class.getName());
//     private static InternationalizationHelper instance = null;
// 
//     /**
//      * Hidden constructor
//      *
//      * @param language
//      * @param country
//      */
//     private InternationalizationHelper(final String language, final String country) {
// 
//         messages = ResourceBundle.getBundle("messages", new Locale(language, country));
//     }
// 
//     public static String getMessage(final String i18nKey) {
// 
//         String translation = i18nKey;
// 
//         if (instance == null) {
//             instance = new InternationalizationHelper("en", "EN");
//         }
// 
//         try {
//             translation = messages.getString(i18nKey);
//         } catch (final MissingResourceException e) {
//             LOGGER.warn("No translation found for key " + i18nKey);
//         }
// 
//         return translation;
//     }
// 
//     public static String getMessageOrNull(final String i18nKey) {
// 
//         String translation = null;
// 
//         if (instance == null) {
//             instance = new InternationalizationHelper("en", "EN");
//         }
// 
//         try {
//             translation = messages.getString(i18nKey);
//         } catch (final MissingResourceException e) {
// 
//         }
// 
//         return translation;
//     }
// 
//     public static void configure(final String locale) {
//         String[] localeArray = locale.split("_");
//         instance = new InternationalizationHelper(localeArray[0], localeArray[1]);
//     }
// }


import static com.cipherdyne.jfwknop.EnumFwknopRcType.*;
import com.cipherdyne.utils.InternationalizationHelper;

    SPA_SOURCE_PORT(SINGLE_PORT, "i18n.spa.client.sourceport"),
    FW_TIMEOUT(SECONDS, "i18n.misc.timeout"),
    RESOLVE_IP_HTTPS(Y_N, "i18n.resolve.ip.https"),
    RESOLVE_HTTP_ONLY(Y_N, "i18n.resolve.ip.http.only"),
    RESOLVE_URL(URL, "i18n.spa.client.resolveurl"),
    SERVER_RESOLVE_IPV4(Y_N, "i18n.spa.server.resolve.ipv4"),
    TIME_OFFSET(TIME, "i18n.misc.timeoffset");

    final private EnumFwknopRcType type;
    final private String i18Label;
    final private EnumFwknopdRcKey remoteKey;

    private EnumFwknopRcKey(EnumFwknopRcType type, String i18label) {
        this.type = type;
        this.i18Label = i18label;
        this.remoteKey = null;
    }

    private EnumFwknopRcKey(EnumFwknopRcType type, String i18label, EnumFwknopdRcKey remoteKey) {
        this.type = type;
        this.i18Label = i18label;
        this.remoteKey = remoteKey;
    }

    public EnumFwknopRcType getType() {
        return this.type;
    }

    public String getLabel() {
// Path: src/main/java/com/cipherdyne/jfwknop/EnumFwknopRcType.java
// public enum EnumFwknopRcType {
// 
//     PORT_LIST,
//     IP_ADDRESS,
//     LOCAL_IP_ADDRESS,
//     Y_N,
//     DIGEST_ALGORITHM,
//     ENCRYPT_MODE,
//     PASSPHRASE,
//     BASE64_PASSPHRASE,
//     GPG_KEY_ID,
//     DIRECTORY_PATH,
//     FILE_PATH,
//     IP_PLUS_PORT,
//     SINGLE_PORT,
//     PROTOCOL,
//     PROTOCOL_PLUS_PORT,
//     SECONDS,
//     URL,
//     STRING,
//     TIME;
// 
//     private EnumFwknopRcType() {
//     }
// }
// 
// Path: src/main/java/com/cipherdyne/utils/InternationalizationHelper.java
// public class InternationalizationHelper {
// 
//     static private ResourceBundle messages;
//     private static final Logger LOGGER = LogManager.getLogger(InternationalizationHelper.class.getName());
//     private static InternationalizationHelper instance = null;
// 
//     /**
//      * Hidden constructor
//      *
//      * @param language
//      * @param country
//      */
//     private InternationalizationHelper(final String language, final String country) {
// 
//         messages = ResourceBundle.getBundle("messages", new Locale(language, country));
//     }
// 
//     public static String getMessage(final String i18nKey) {
// 
//         String translation = i18nKey;
// 
//         if (instance == null) {
//             instance = new InternationalizationHelper("en", "EN");
//         }
// 
//         try {
//             translation = messages.getString(i18nKey);
//         } catch (final MissingResourceException e) {
//             LOGGER.warn("No translation found for key " + i18nKey);
//         }
// 
//         return translation;
//     }
// 
//     public static String getMessageOrNull(final String i18nKey) {
// 
//         String translation = null;
// 
//         if (instance == null) {
//             instance = new InternationalizationHelper("en", "EN");
//         }
// 
//         try {
//             translation = messages.getString(i18nKey);
//         } catch (final MissingResourceException e) {
// 
//         }
// 
//         return translation;
//     }
// 
//     public static void configure(final String locale) {
//         String[] localeArray = locale.split("_");
//         instance = new InternationalizationHelper(localeArray[0], localeArray[1]);
//     }
// }


// Path: src/main/java/com/cipherdyne/jfwknop/EnumFwknopRcKey.java
import static com.cipherdyne.jfwknop.EnumFwknopRcType.*;
import com.cipherdyne.utils.InternationalizationHelper;


    SPA_SOURCE_PORT(SINGLE_PORT, "i18n.spa.client.sourceport"),
    FW_TIMEOUT(SECONDS, "i18n.misc.timeout"),
    RESOLVE_IP_HTTPS(Y_N, "i18n.resolve.ip.https"),
    RESOLVE_HTTP_ONLY(Y_N, "i18n.resolve.ip.http.only"),
    RESOLVE_URL(URL, "i18n.spa.client.resolveurl"),
    SERVER_RESOLVE_IPV4(Y_N, "i18n.spa.server.resolve.ipv4"),
    TIME_OFFSET(TIME, "i18n.misc.timeoffset");

    final private EnumFwknopRcType type;
    final private String i18Label;
    final private EnumFwknopdRcKey remoteKey;

    private EnumFwknopRcKey(EnumFwknopRcType type, String i18label) {
        this.type = type;
        this.i18Label = i18label;
        this.remoteKey = null;
    }

    private EnumFwknopRcKey(EnumFwknopRcType type, String i18label, EnumFwknopdRcKey remoteKey) {
        this.type = type;
        this.i18Label = i18label;
        this.remoteKey = remoteKey;
    }

    public EnumFwknopRcType getType() {
        return this.type;
    }

    public String getLabel() {
        return InternationalizationHelper.getMessage(this.i18Label);