Resource Bundle - PullRequest
       11

Resource Bundle

1 голос
/ 14 октября 2010

Я только начинаю с этого и с этого кода:

public static void main(String[] args) {
 Locale[] supportedLocales = {
      new Locale("en", "CA"),
      new Locale("es", "ES")

  };

 ResourceBundle labels = ResourceBundle.getBundle("Messages", supportedLocales[0]);
 System.out.println(supportedLocales[0].getDisplayVariant());
 System.out.println(supportedLocales[0].getVariant().toString());
}

}

Я не получаю ни одного из этих sysout.В пути к классам есть следующие файлы:
Messages.bundle

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:loadBundle basename="Messages" var="msg"/>
<f:view> <html>
    <body>
        <f:view>
            <h:form>
                <h:commandButton value="#{msg.cancel}" action="fail"/>
                <h:commandButton value="#{msg.submit}" action="success"/>
                <h:outputText value="#{myBundle[myBean.msgKey]}"/>
            </h:form>  
        </f:view>
    </body>
</html> </f:view>

И для каждого языка:

Messages_es.properties

cancel=Cancelar
submit=Enviar
Search=Buscar

1 Ответ

0 голосов
/ 14 октября 2010

Мне просто нужно было перечислить все ключи, таким образом я читал одну. С этим кодом:

Enumeration bundleKeys = labels.getKeys();

    while (bundleKeys.hasMoreElements()) {
        String key = (String)bundleKeys.nextElement();
        String value = labels.getString(key);
        System.out.println("key = " + key + ", " + 
                   "value = " + value);
    }  

Я получаю этот вывод:

key = Search, value = Buscar
key = submit, value = Enviar
key = cancel, value = Cancelar 

Полную инструкцию здесь .

...