From 33884c70e361fecf1b307a37757eb0cef10e63a4 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 1 Jul 2021 09:44:14 +0000 Subject: [PATCH] [java-compiler] Properly localize MakeModuleAction presentation GitOrigin-RevId: 3a4ace4dfb390f048f341b1f3181b43e6dd84f5e --- .../compiler/actions/MakeModuleAction.java | 24 +++++++++---------- .../messages/JavaCompilerBundle.properties | 3 +++ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/actions/MakeModuleAction.java b/java/compiler/impl/src/com/intellij/compiler/actions/MakeModuleAction.java index b052cb3452c1..0efc0db99900 100644 --- a/java/compiler/impl/src/com/intellij/compiler/actions/MakeModuleAction.java +++ b/java/compiler/impl/src/com/intellij/compiler/actions/MakeModuleAction.java @@ -15,6 +15,7 @@ */ package com.intellij.compiler.actions; +import com.intellij.ide.nls.NlsMessages; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.compiler.JavaCompilerBundle; import com.intellij.openapi.diagnostic.Logger; @@ -23,6 +24,8 @@ import com.intellij.openapi.project.Project; import com.intellij.task.ProjectTaskManager; import org.jetbrains.annotations.NotNull; +import java.util.stream.Stream; + public class MakeModuleAction extends CompileActionBase { private static final Logger LOG = Logger.getInstance(MakeModuleAction.class); @@ -61,22 +64,17 @@ public class MakeModuleAction extends CompileActionBase { String presentationText; if (modules != null) { - String text = actionName; - for (int i = 0; i < modules.length; i++) { - if (text.length() > 30) { - text = JavaCompilerBundle.message("action.make.selected.modules.text"); - break; - } - Module toMake = modules[i]; - if (i!=0) { - text += ","; - } - text += " '" + toMake.getName() + "'"; + if (modules.length == 1) { + presentationText = JavaCompilerBundle.message("action.make.single.module.text", modules[0].getName()); + } else { + String moduleNames = Stream.of(modules).map(m -> "'"+m.getName()+"'").collect(NlsMessages.joiningNarrowAnd()); + presentationText = moduleNames.length() > 20 ? + JavaCompilerBundle.message("action.make.selected.modules.text") : + JavaCompilerBundle.message("action.make.few.modules.text", moduleNames); } - presentationText = text; } else if (module != null) { - presentationText = actionName + " '" + module.getName() + "'"; + presentationText = JavaCompilerBundle.message("action.make.single.module.text", module.getName()); } else { presentationText = actionName; diff --git a/java/compiler/openapi/resources/messages/JavaCompilerBundle.properties b/java/compiler/openapi/resources/messages/JavaCompilerBundle.properties index 686e1a19c048..0690066ff2b7 100644 --- a/java/compiler/openapi/resources/messages/JavaCompilerBundle.properties +++ b/java/compiler/openapi/resources/messages/JavaCompilerBundle.properties @@ -11,6 +11,9 @@ action.compile.description.selected.files=Selected Files rebuild.lvcs.label.no.errors=''{0}'' with no errors rebuild.lvcs.label.with.errors=''{0}'' with errors action.make.selected.modules.text=Build Selected _Modules +action.make.single.module.text=Build _Module ''{0}'' +# {0} = comma-separated quoted module names +action.make.few.modules.text=Build _Modules {0} message.resource.patterns.format.changed=The format of resource patterns has changed.\n{0} failed to convert existing regular expression patterns:\n{1}\nPlease enter pattern string in a new format.\nEach resource pattern may contain the following wildcards:\n? - one character\n* - zero or more characters\n! - negate the pattern (allowed only at the start of a pattern)\nUse ; (semicolon) to separate resource patterns;\nEscape the "!" character with a backslash ("\\").\nYou might also need to modify template project settings.\nPress ''{2}'' to accept entered patterns, ''{3}'' to load default patterns in new format. pattern.conversion.dialog.title=Pattern Conversion error.bad.resource.patterns=The following resource patterns are malformed:{0}