Когда я добавляю новый файл свойств в свой проект внутри ресурсов и называю его, например, "lang1", BUNDLE_NAME распознается правильно.
Но если я добавляю ResourceBundle, содержащий lang2_de и lang2_en, и пытаюсьиспользовать его базовое имя в качестве BUNDLE_NAME, оно показывает мне следующую ошибку "Недопустимая ссылка на пакет ресурсов 'lang2'.
Так что у меня в основном 3 файла.
- lang1_de.properties
- lang2_de.properties
- lang2_en.properties
lang2 объединен в Resource Bundle с "'base name' = lang2"
Это работает с kotlin:
private const val BUNDLE_NAME = "lang1"
fun foo(@PropertyKey(resourceBundle = BUNDLE_NAME) key: String): String {
return key
}
Это не так:
private const val BUNDLE_NAME = "lang2"
fun foo(@PropertyKey(resourceBundle = BUNDLE_NAME) key: String): String {
return key
}
Но если я делаю то же самое с Java, это работает ...
private static final String BUNDLE_NAME = "lang2";
public static void foo(@PropertyKey(resourceBundle = BUNDLE_NAME) String key) {
return key;
}
Я делаюэто для получения информации о том, что мои свойства используются внутри моего кода.
Свойства помечены правильно в файлах свойств для обоих примеров.
Но для lang2 все строки, используемые внутри кода, всешоуn с ошибкой проверки «Строковый литерал« testprop »не является допустимым ключом свойства ...»
Я также создал проблему для этого в JetBrains / java-annotations:
https://github.com/JetBrains/java-annotations/issues/13