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); } }