ResourceBundle.getBundle("MyProgramResource",new Locale("hi"));
This is looking for a ResourceBundle called MyProgramResource for the Locale "hi" (not a standard Locale, what language are your really after?) . So you will need a properties file called MyProgramResource_hi.properties in your classpath. Did this line work? If the names properties file does not exist, you will get a MissingResourceException.
Assuming you did successfully get this ResourceBundle I would assume you have a defined property you want to format. So, rather than getting all defined keys in the ResourceBundle, why not get the one you are interested in:
If you want to substitute values, I would expect substitutionString to be a string like this:
If you have that, then you can apply the MessageFormat: