Implement localization framework
A comprehensive localization framework is introduced to the project,
transitioning from the use of hardcoded language constants in the
Settings class to a dynamic, locale-specific ResourceBundle approach.
The changes include:
- Creation of the Localizer class that is now injected through Guice to
provide dynamic language support based on user locale. This approach
leverages the ResourceBundle mechanism for localization.
- Addition of ResourceBundle property files for English (default),
organized by specific namespaces to facilitate easy expansion and
maintenance.
- Refactoring throughout the application to replace direct usage of
language-specific constants from the Settings class with calls to the
Localizer class. This shift enhances maintainability and flexibility in
language support.
Change-Id: Ibe343fe6d2fee8cd799ab2196df22c6940335cc2
Signed-off-by: Patrizio <patrizio.gelosi@amarulasolutions.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java
index 68e02d4..1a73e46 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java
@@ -4,6 +4,7 @@
import com.google.inject.Provider;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
import com.googlesource.gerrit.plugins.chatgpt.data.ChangeSetDataHandler;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClientReview;
@@ -32,6 +33,7 @@
private final Provider<GerritClientReview> clientReviewProvider;
@Getter
private final IChatGptClient chatGptClient;
+ private final Localizer localizer;
private GerritCommentRange gerritCommentRange;
private List<ReviewBatch> reviewBatches;
@@ -44,12 +46,15 @@
Configuration config,
ChangeSetData changeSetData,
Provider<GerritClientReview> clientReviewProvider,
- IChatGptClient chatGptClient) {
+ IChatGptClient chatGptClient,
+ Localizer localizer
+ ) {
this.config = config;
this.gerritClient = gerritClient;
this.changeSetData = changeSetData;
this.clientReviewProvider = clientReviewProvider;
this.chatGptClient = chatGptClient;
+ this.localizer = localizer;
}
public void review(GerritChange change) throws Exception {
@@ -62,7 +67,7 @@
log.info("No file to review has been found in the PatchSet");
return;
}
- ChangeSetDataHandler.update(config, change, gerritClient, changeSetData);
+ ChangeSetDataHandler.update(config, change, gerritClient, changeSetData, localizer);
if (changeSetData.getReviewSystemMessage() == null) {
ChatGptResponseContent reviewReply = getReviewReply(change, patchSet);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/Configuration.java
index 2b8a5ae..f4dbd60 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/Configuration.java
@@ -262,6 +262,10 @@
return getDouble(KEY_FILTER_COMMENTS_RELEVANCE_THRESHOLD, DEFAULT_FILTER_COMMENTS_RELEVANCE_THRESHOLD);
}
+ public Locale getLocaleDefault() {
+ return Locale.getDefault();
+ }
+
public int getVotingMinScore() {
return getInt(KEY_VOTING_MIN_SCORE, DEFAULT_VOTING_MIN_SCORE);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/data/ChangeSetDataHandler.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/data/ChangeSetDataHandler.java
index 8ae9ac8..878202f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/data/ChangeSetDataHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/data/ChangeSetDataHandler.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.data;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt.ChatGptUserPrompt;
@@ -17,10 +18,16 @@
Configuration config,
GerritChange change,
GerritClient gerritClient,
- ChangeSetData changeSetData
+ ChangeSetData changeSetData,
+ Localizer localizer
) {
GerritClientData gerritClientData = gerritClient.getClientData(change);
- ChatGptUserPrompt chatGptUserPrompt = new ChatGptUserPrompt(config, changeSetData, change, gerritClientData);
+ ChatGptUserPrompt chatGptUserPrompt = new ChatGptUserPrompt(
+ config,
+ changeSetData,
+ change,
+ gerritClientData,
+ localizer);
changeSetData.setCommentPropertiesSize(gerritClientData.getCommentProperties().size());
changeSetData.setDirectives(new HashSet<>());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/localization/Localizer.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/localization/Localizer.java
new file mode 100644
index 0000000..dcf068b
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/localization/Localizer.java
@@ -0,0 +1,21 @@
+package com.googlesource.gerrit.plugins.chatgpt.localization;
+
+import com.google.inject.Inject;
+import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ResourceBundle;
+
+@Slf4j
+public class Localizer {
+ private final ResourceBundle resourceBundle;
+
+ @Inject
+ public Localizer(Configuration config) {
+ this.resourceBundle = ResourceBundle.getBundle("localization.localTexts", config.getLocaleDefault());
+ }
+
+ public String getText(String key) {
+ return resourceBundle.getString(key);
+ }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientComments.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientComments.java
index e67a3d8..f9cc867 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientComments.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientComments.java
@@ -7,6 +7,7 @@
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.inject.Inject;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages.ClientMessage;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.gerrit.GerritCodeRange;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.gerrit.GerritComment;
@@ -31,6 +32,7 @@
private final ChangeSetData changeSetData;
private final HashMap<String, GerritComment> commentMap;
private final HashMap<String, GerritComment> patchSetCommentMap;
+ private final Localizer localizer;
private String authorUsername;
@Getter
@@ -38,9 +40,15 @@
@VisibleForTesting
@Inject
- public GerritClientComments(Configuration config, AccountCache accountCache, ChangeSetData changeSetData) {
+ public GerritClientComments(
+ Configuration config,
+ AccountCache accountCache,
+ ChangeSetData changeSetData,
+ Localizer localizer
+ ) {
super(config, accountCache);
this.changeSetData = changeSetData;
+ this.localizer = localizer;
commentProperties = new ArrayList<>();
commentMap = new HashMap<>();
patchSetCommentMap = new HashMap<>();
@@ -137,7 +145,7 @@
}
private void addLastComments(GerritChange change) {
- ClientMessage clientMessage = new ClientMessage(config, changeSetData);
+ ClientMessage clientMessage = new ClientMessage(config, changeSetData, localizer);
try {
List<GerritComment> latestComments = retrieveComments(change);
if (latestComments == null) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java
index 9278064..c9f9470 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java
@@ -11,6 +11,7 @@
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.inject.Inject;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.review.ReviewBatch;
import lombok.extern.slf4j.Slf4j;
@@ -22,15 +23,16 @@
import java.util.Optional;
import static com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt.MessageSanitizer.sanitizeChatGptMessage;
-import static com.googlesource.gerrit.plugins.chatgpt.settings.Settings.EMPTY_REVIEW_MESSAGE;
-import static com.googlesource.gerrit.plugins.chatgpt.settings.Settings.SYSTEM_MESSAGE_PREFIX;
@Slf4j
public class GerritClientReview extends GerritClientAccount {
+ private final Localizer localizer;
+
@VisibleForTesting
@Inject
- public GerritClientReview(Configuration config, AccountCache accountCache) {
+ public GerritClientReview(Configuration config, AccountCache accountCache, Localizer localizer) {
super(config, accountCache);
+ this.localizer = localizer;
}
public void setReview(
@@ -71,7 +73,7 @@
private ReviewInput buildReview(List<ReviewBatch> reviewBatches, ChangeSetData changeSetData, Integer reviewScore) {
ReviewInput reviewInput = ReviewInput.create();
Map<String, List<CommentInput>> comments = new HashMap<>();
- String systemMessage = EMPTY_REVIEW_MESSAGE;
+ String systemMessage = localizer.getText("message.empty.review");
if (changeSetData.getReviewSystemMessage() != null) {
systemMessage = changeSetData.getReviewSystemMessage();
}
@@ -82,7 +84,7 @@
}
}
if (comments.isEmpty()) {
- reviewInput.message(SYSTEM_MESSAGE_PREFIX + systemMessage);
+ reviewInput.message(localizer.getText("system.message.prefix") + ' ' + systemMessage);
}
else {
reviewInput.comments = comments;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/commands/ClientCommands.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/commands/ClientCommands.java
index e77decd..adf1f04 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/commands/ClientCommands.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/commands/ClientCommands.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.commands;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.ClientBase;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt.Directives;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
@@ -13,8 +14,6 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static com.googlesource.gerrit.plugins.chatgpt.settings.Settings.MESSAGE_DEBUGGING_FUNCTIONALITIES_DISABLED;
-
@Slf4j
@Getter
public class ClientCommands extends ClientBase {
@@ -51,11 +50,14 @@
private final ChangeSetData changeSetData;
@Getter
private final Directives directives;
+ private final Localizer localizer;
+
@Getter
private boolean containingHistoryCommand;
- public ClientCommands(Configuration config, ChangeSetData changeSetData) {
+ public ClientCommands(Configuration config, ChangeSetData changeSetData, Localizer localizer) {
super(config);
+ this.localizer = localizer;
this.changeSetData = changeSetData;
directives = new Directives(changeSetData);
containingHistoryCommand = false;
@@ -123,7 +125,9 @@
changeSetData.setReplyFilterEnabled(false);
}
else {
- changeSetData.setReviewSystemMessage(MESSAGE_DEBUGGING_FUNCTIONALITIES_DISABLED);
+ changeSetData.setReviewSystemMessage(localizer.getText(
+ "message.debugging.functionalities.disabled"
+ ));
log.debug("Unable to set Response Mode to Debug: `enableMessageDebugging` config must be " +
"set to true");
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java
index 749564f..6370782 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.ClientBase;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.commands.ClientCommands;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
@@ -21,14 +22,14 @@
@Getter
private String message;
- public ClientMessage(Configuration config, ChangeSetData changeSetData) {
+ public ClientMessage(Configuration config, ChangeSetData changeSetData, Localizer localizer) {
super(config);
botMentionPattern = getBotMentionPattern();
- clientCommands = new ClientCommands(config, changeSetData);
+ clientCommands = new ClientCommands(config, changeSetData, localizer);
}
- public ClientMessage(Configuration config, ChangeSetData changeSetData, String message) {
- this(config, changeSetData);
+ public ClientMessage(Configuration config, ChangeSetData changeSetData, String message, Localizer localizer) {
+ this(config, changeSetData, localizer);
this.message = message;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java
index 36253c2..7b9460a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.ClientBase;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages.ClientMessage;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.gerrit.GerritComment;
@@ -12,14 +13,16 @@
protected ClientMessage commentMessage;
private final ChangeSetData changeSetData;
+ private final Localizer localizer;
- public ChatGptComment(Configuration config, ChangeSetData changeSetData) {
+ public ChatGptComment(Configuration config, ChangeSetData changeSetData, Localizer localizer) {
super(config);
this.changeSetData = changeSetData;
+ this.localizer = localizer;
}
protected String getCleanedMessage(GerritComment commentProperty) {
- commentMessage = new ClientMessage(config, changeSetData, commentProperty.getMessage());
+ commentMessage = new ClientMessage(config, changeSetData, commentProperty.getMessage(), localizer);
if (isFromAssistant(commentProperty)) {
commentMessage.removeDebugMessages();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptHistory.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptHistory.java
index f0624d5..1eb2771 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptHistory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptHistory.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptRequestMessage;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.gerrit.GerritComment;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
@@ -17,11 +18,8 @@
public class ChatGptHistory extends ChatGptComment {
private static final String ROLE_USER = "user";
private static final String ROLE_ASSISTANT = "assistant";
- private static final Set<String> MESSAGES_EXCLUDED_FROM_HISTORY = new HashSet<>() {{
- add(Settings.GERRIT_DEFAULT_MESSAGE_DONE);
- add(Settings.EMPTY_REVIEW_MESSAGE);
- }};
+ private final Set<String> messagesExcludedFromHistory;
private final HashMap<String, GerritComment> commentMap;
private final HashMap<String, GerritComment> patchSetCommentMap;
private final Set<String> patchSetCommentAdded;
@@ -30,9 +28,18 @@
private boolean filterActive;
- public ChatGptHistory(Configuration config, ChangeSetData changeSetData, GerritClientData gerritClientData) {
- super(config, changeSetData);
+ public ChatGptHistory(
+ Configuration config,
+ ChangeSetData changeSetData,
+ GerritClientData gerritClientData,
+ Localizer localizer
+ ) {
+ super(config, changeSetData, localizer);
CommentData commentData = gerritClientData.getCommentData();
+ messagesExcludedFromHistory = Set.of(
+ Settings.GERRIT_DEFAULT_MESSAGE_DONE,
+ localizer.getText("message.empty.review")
+ );
commentMap = commentData.getCommentMap();
patchSetCommentMap = commentData.getPatchSetCommentMap();
patchSetComments = retrievePatchSetComments(gerritClientData);
@@ -123,7 +130,7 @@
private void addMessageToHistory(List<ChatGptRequestMessage> messageHistory, GerritComment comment) {
String messageContent = getCleanedMessage(comment);
boolean shouldNotProcessComment = messageContent.isEmpty() ||
- MESSAGES_EXCLUDED_FROM_HISTORY.contains(messageContent) ||
+ messagesExcludedFromHistory.contains(messageContent) ||
patchSetCommentAdded.contains(messageContent) ||
filterActive && isInactiveComment(comment);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPrompt.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPrompt.java
index 8b7a788..0aa539a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPrompt.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPrompt.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptMessageItem;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
@@ -15,12 +16,18 @@
public class ChatGptUserPrompt {
private final ChatGptUserPromptBase chatGptUserPromptBase;
- public ChatGptUserPrompt(Configuration config, ChangeSetData changeSetData, GerritChange change, GerritClientData gerritClientData) {
+ public ChatGptUserPrompt(
+ Configuration config,
+ ChangeSetData changeSetData,
+ GerritChange change,
+ GerritClientData gerritClientData,
+ Localizer localizer
+ ) {
if (change.getIsCommentEvent()) {
- chatGptUserPromptBase = new ChatGptUserPromptRequests(config, changeSetData, gerritClientData);
+ chatGptUserPromptBase = new ChatGptUserPromptRequests(config, changeSetData, gerritClientData, localizer);
}
else {
- chatGptUserPromptBase = new ChatGptUserPromptReview(config, changeSetData, gerritClientData);
+ chatGptUserPromptBase = new ChatGptUserPromptReview(config, changeSetData, gerritClientData, localizer);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptBase.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptBase.java
index bd3b8e2..1a2c8d5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptBase.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptBase.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.patch.code.InlineCode;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.patch.diff.FileDiffProcessed;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptMessageItem;
@@ -28,11 +29,16 @@
@Getter
protected List<GerritComment> commentProperties;
- public ChatGptUserPromptBase(Configuration config, ChangeSetData changeSetData, GerritClientData gerritClientData) {
+ public ChatGptUserPromptBase(
+ Configuration config,
+ ChangeSetData changeSetData,
+ GerritClientData gerritClientData,
+ Localizer localizer
+ ) {
this.gerritClientData = gerritClientData;
fileDiffsProcessed = gerritClientData.getFileDiffsProcessed();
commentData = gerritClientData.getCommentData();
- gptMessageHistory = new ChatGptHistory(config, changeSetData, gerritClientData);
+ gptMessageHistory = new ChatGptHistory(config, changeSetData, gerritClientData, localizer);
messageItems = new ArrayList<>();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptRequests.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptRequests.java
index 0c23bbd..9316bc5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptRequests.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptRequests.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptMessageItem;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptRequestMessage;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
@@ -14,9 +15,10 @@
public ChatGptUserPromptRequests(
Configuration config,
ChangeSetData changeSetData,
- GerritClientData gerritClientData
+ GerritClientData gerritClientData,
+ Localizer localizer
) {
- super(config, changeSetData, gerritClientData);
+ super(config, changeSetData, gerritClientData, localizer);
commentProperties = commentData.getCommentProperties();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptReview.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptReview.java
index c65b4a9..006fac9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptReview.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptUserPromptReview.java
@@ -1,6 +1,7 @@
package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptMessageItem;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptRequestMessage;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
@@ -15,9 +16,10 @@
public ChatGptUserPromptReview(
Configuration config,
ChangeSetData changeSetData,
- GerritClientData gerritClientData
+ GerritClientData gerritClientData,
+ Localizer localizer
) {
- super(config, changeSetData, gerritClientData);
+ super(config, changeSetData, gerritClientData, localizer);
commentProperties = new ArrayList<>(commentData.getCommentMap().values());
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/settings/Settings.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/settings/Settings.java
index 3705e01..9e74d10 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/settings/Settings.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/settings/Settings.java
@@ -16,11 +16,6 @@
);
public static final String GERRIT_COMMIT_MESSAGE_PREFIX = "Subject: ";
- public static final String SYSTEM_MESSAGE_PREFIX = "SYSTEM MESSAGE: ";
- public static final String EMPTY_REVIEW_MESSAGE = "No update to show for this Change Set";
- public static final String MESSAGE_DEBUGGING_FUNCTIONALITIES_DISABLED = "Message Debugging functionalities are " +
- "disabled";
-
public enum MODES {
stateless,
stateful
diff --git a/src/main/resources/localization/localTexts.properties b/src/main/resources/localization/localTexts.properties
new file mode 100644
index 0000000..512f858
--- /dev/null
+++ b/src/main/resources/localization/localTexts.properties
@@ -0,0 +1,3 @@
+system.message.prefix=SYSTEM MESSAGE:
+message.empty.review=No update to show for this Change Set
+message.debugging.functionalities.disabled=Message Debugging functionalities are disabled
diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
index fb1859f..fd316e0 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
@@ -36,6 +36,7 @@
import com.googlesource.gerrit.plugins.chatgpt.listener.GerritEventContextModule;
import com.google.inject.TypeLiteral;
import com.google.inject.util.Providers;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClientComments;
@@ -298,21 +299,28 @@
}
private void initTest() {
- ChangeSetData changeSetData = new ChangeSetData(GPT_USER_ACCOUNT_ID, config.getVotingMinScore(), config.getMaxReviewFileSize());
+ ChangeSetData changeSetData = new ChangeSetData(
+ GPT_USER_ACCOUNT_ID,
+ config.getVotingMinScore(),
+ config.getMaxReviewFileSize()
+ );
+ Localizer localizer = new Localizer(config);
gerritClient =
new GerritClient(
new GerritClientFacade(
config,
changeSetData,
- new GerritClientComments(config, accountCacheMock, changeSetData),
+ new GerritClientComments(config, accountCacheMock, changeSetData, localizer),
getGerritClientPatchSet()));
patchSetReviewer =
new PatchSetReviewer(
gerritClient,
config,
changeSetData,
- Providers.of(new GerritClientReview(config, accountCacheMock)),
- getChatGptClient());
+ Providers.of(new GerritClientReview(config, accountCacheMock, localizer)),
+ getChatGptClient(),
+ localizer
+ );
mockConfigCreator = mock(ConfigCreator.class);
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/integration/CodeReviewPluginIT.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/integration/CodeReviewPluginIT.java
index e814f64..2f4c452 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/integration/CodeReviewPluginIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/integration/CodeReviewPluginIT.java
@@ -2,6 +2,7 @@
import com.google.gerrit.server.account.AccountCache;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClientReview;
@@ -67,13 +68,14 @@
@Test
public void setReview() throws Exception {
ChangeSetData changeSetData = new ChangeSetData(1, config.getVotingMinScore(), config.getMaxReviewFileSize());
+ Localizer localizer = new Localizer(config);
when(config.getGerritUserName()).thenReturn("Your Gerrit username");
List<ReviewBatch> reviewBatches = new ArrayList<>();
reviewBatches.add(new ReviewBatch());
reviewBatches.get(0).setContent("message");
- GerritClientReview gerritClientReview = new GerritClientReview(config, accountCache);
+ GerritClientReview gerritClientReview = new GerritClientReview(config, accountCache, localizer);
gerritClientReview.setReview(new GerritChange("Your changeId"), reviewBatches, changeSetData);
}
}