0

我是Java开发人员的初学者。我在 Eclipse 中编写了一个 java 类文件,用于获取西班牙属性文件的所有键值对,如下所示:

   public class ResoucreBundleproperties {

      static void iterateKeys(Locale currentLocale) {

      ResourceBundle labels = 
         ResourceBundle.getBundle("xxxx_ar_SP",currentLocale);

      Enumeration<String> bundleKeys = labels.getKeys();

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

   } 
   public static  void main(String[] args) {

      Locale[] supportedLocales = {
         new Locale("SP","SPANISH"),
                 Locale.ENGLISH
      };


      iterateKeys(supportedLocales[0]);
      System.out.println();
   }

我得到了xxxx.ar_SP.properties所有键和值的输出。

现在我还有另外两个属性文件,例如yyyy_ar_SP.propertieszzzz_ar_SP.properties

(如果我犯了任何错误或者你无法理解我,请告诉我)。

问题 1:现在我将如何xxxx_ar_SP.properties,yyyy_ar_SP.properties,zzzz_ar_SP.properties在同一个 java 类中获取所有这两个属性文件 ()。那可能吗?

问题 2:如何将西班牙属性文件转换为 unicode 转义?

4

2 回答 2

1

你这样做是不对的。

您有一个默认属性文件xxxxx.properties,一种特定语言的属性文件xxxxx_es.properties,如果您想要区域变化,则添加国家/地区前缀xxxxx_es_ES.properties

资源包将使用您提供的语言环境或默认语言环境,并将执行以下操作:

1)如果找到语言或语言+国家的文件,请使用它。它将使用更具体的属性值;如果您的语言环境是“es_ES”并且您在“xxxxx_es_ES”中提供了一个值,则使用该值,否则(如果您的语言环境是“es_AR”并且不xxxxx_es_AR.properties存在,或者如果您的语言环境是es_ES但您没有在 中定义值xxxxx_es_ES.properties),然后它将搜索xxxxx_es.properties.

2) 如果找不到您的语言环境,它将使用默认(无语言环境)属性文件。

于 2013-06-24T12:49:56.497 回答
0

看起来您有多个特定语言环境的属性文件。为了将这些加载到一个Properties对象中,您可以执行以下操作:

static void loadProperties(Locale currentLocale, String... propertyFileNames){
  for(String propertyFileName : propertyFileNames)
  {
     ResourceBundle labels =
           ResourceBundle.getBundle(propertyFileName ,currentLocale);

     Enumeration<String> bundleKeys = labels.getKeys();

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

props静态java.util.Properties对象在哪里。

不确定问题 2 我将不得不环顾四周。

于 2013-06-24T13:02:11.593 回答