【问题标题】:Resource Bundle资源包
【发布时间】:2010-10-14 07:38:11
【问题描述】:

我只是从这个开始,并使用以下代码:

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

【问题讨论】:

    标签: java internationalization properties


    【解决方案1】:

    我只需要列举所有的键,这样我就读到了一个。用这段代码:

    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 
    

    Complete tutorial here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 2017-05-25
      • 1970-01-01
      • 2011-06-04
      • 2013-08-01
      • 2011-11-20
      • 2011-02-07
      相关资源
      最近更新 更多