JetBrains / JetBrains/java-annotations

PropertyKey with compile time prefix value

未关闭
#10 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Kotlin
星标
463
派生
72
PR 合并指标
30 天内没有已合并 PR

描述

Hello!

I'd like to use PropertyKey in some of my projects in order to control usages of l10n keys in compile time. The issue that I faced is that all my property keys is prefixed with "title" and "detail" values. So that when I create an object (that needs to be localized) I set only the error key without prefix. See the code below for clarification:

```java
// imports omitted
public final class Error {
private final String errorKey;
public String getErrorKey() {
return errorKey;
}
// would like to ability to set _prefix_ value(s)
public Error(@PropertyKey(resourceBundle = "app", prefix={"title.", "detail."}) String errorKey) {
this.errorKey = errorKey;
}
}

public class ErrorHandler{
// somewhere in errorHandler
public void localizeError(Error error, ResourceBundle resourceBundle){
// create prefixed keys
String titleKey = "title." + error.getErrorKey();
String detailKey = "detail." + error.getErrorKey();

// localize the error
String title = resourceBundle.getString(titleKey);
String detail = resourceBundle.getString(detailKey);

// print localized messages
System.out.println("Localized error title is: " + title);
System.out.println("Localized error detail is: " + detail);
}
}
```

So, my questions are:

1. Is it possible to get this functionality in the nearest feature? And could you suggest any workaround for now?
2. Could I write my own annotation with such functionality? Probably in this case I'm supposed to enhance the IDEA inspections. I've never written customization (plugins or so) for IDEA and I'm afraid it would require a lot of work to implement my simple logic, isn't it?

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。