1

У меня есть следующие Java класс i18n Сообщение .:Загрузка свойств сообщений Java для интернализации

public class Messages { 

    private static final String BUNDLE_NAME = "languages.message"; 
    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); 

    private Messages() { 
    } 

    public static String getI18n(String key) { 
     try { 
      return RESOURCE_BUNDLE.getString(key); 
     } catch (MissingResourceException e) { 
      return '!' + key + '!'; 
     } 
    } 

    public static String getI18n(String key, Object... params ) { 
     try { 
      return MessageFormat.format(RESOURCE_BUNDLE.getString(key), params); 
     } catch (MissingResourceException e) { 
      return '!' + key + '!'; 
     } 
    } 
} 

Я создал следующие свойства сообщений файлы .:

message.properties 
message_de.properties 
message_de_DE.properties 

В моей программе я получаю перевод в соответствии с стандартом по умолчанию системы. Если это de_DE, загружены свойства сообщения немца message_de_DE.properties.

Если локаль по умолчанию - de_CH, тогда файла свойств сообщений нет. Есть ли message_de.properties как резервный загруженный или мне нужно реализовать его самостоятельно?

ответ

1

Согласно сообщению this, вы правы.

Так что, когда язык по умолчанию вашей системы de_DE и вы запрашиваете ресурс для локали en_US, порядок поиска для свойств файлов:

  1. MyApp_en_US.properties
  2. MyApp_en.properties
  3. MyApp_de_DE.properties
  4. MyApp_de.properties
  5. MyApp.properties
Смежные вопросы