[i18n] idea-ui master
authorNikita Eshkeev <nikita.eshkeev@jetbrains.com>
Thu, 13 Aug 2020 23:52:46 +0000 (02:52 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 13 Aug 2020 23:53:18 +0000 (23:53 +0000)
This patch replaces hard coded strings with i18n properties in idea-ui and in some other modules that implement interfaces and extend classes from the idea-ui module

Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>
GitOrigin-RevId: 6b280b485e30b5d47b8803205b0ebbafe4319daf

160 files changed:
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactImpl.java
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerImpl.java
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/InvalidArtifact.java
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/InvalidArtifactType.java
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/JarArtifactType.java
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/JarFromModulesTemplate.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/ArtifactElementType.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/DirectoryCopyElementType.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/ExtractedDirectoryElementType.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/FacetBasedPackagingElementType.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/FileCopyElementType.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryElementType.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/ModuleElementTypeBase.java
java/compiler/impl/src/com/intellij/packaging/impl/elements/ModuleOutputElementTypeBase.java
java/compiler/impl/src/com/intellij/packaging/impl/ui/ArtifactProblemsHolderBase.java
java/compiler/openapi/resources/messages/JavaCompilerBundle.properties
java/compiler/openapi/src/com/intellij/packaging/artifacts/Artifact.java
java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactTemplate.java
java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactType.java
java/compiler/openapi/src/com/intellij/packaging/elements/ComplexPackagingElementType.java
java/compiler/openapi/src/com/intellij/packaging/elements/CompositePackagingElementType.java
java/compiler/openapi/src/com/intellij/packaging/elements/PackagingElementType.java
java/compiler/openapi/src/com/intellij/packaging/ui/ArtifactProblemQuickFix.java
java/compiler/openapi/src/com/intellij/packaging/ui/ArtifactProblemsHolder.java
java/compiler/openapi/src/com/intellij/packaging/ui/TreeNodePresentation.java
java/compiler/tests/com/intellij/compiler/artifacts/DynamicArtifactExtensionsLoaderTest.kt
java/compiler/tests/com/intellij/compiler/artifacts/PackagingValidationTestCase.java
java/idea-ui/resources/messages/JavaUiBundle.properties
java/idea-ui/src/com/intellij/facet/impl/ui/FacetEditorImpl.java
java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java
java/idea-ui/src/com/intellij/framework/FrameworkOrGroup.java
java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryType.java
java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryTypeBase.java
java/idea-ui/src/com/intellij/framework/library/impl/DownloadableLibraryPropertiesEditor.java
java/idea-ui/src/com/intellij/ide/actions/TemplateProjectStructureAction.java
java/idea-ui/src/com/intellij/ide/util/importProject/DetectedRootsChooser.java
java/idea-ui/src/com/intellij/ide/util/importProject/JavaModuleInsight.java
java/idea-ui/src/com/intellij/ide/util/importProject/LibrariesLayoutPanel.java
java/idea-ui/src/com/intellij/ide/util/importProject/LibraryDescriptor.java
java/idea-ui/src/com/intellij/ide/util/importProject/ModuleInsight.java
java/idea-ui/src/com/intellij/ide/util/importProject/ModulesLayoutPanel.java
java/idea-ui/src/com/intellij/ide/util/importProject/ProjectLayoutPanel.java
java/idea-ui/src/com/intellij/ide/util/importProject/RootDetectionProcessor.java
java/idea-ui/src/com/intellij/ide/util/importProject/RootsDetectionStep.java
java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java
java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportNodeBase.java
java/idea-ui/src/com/intellij/ide/util/newProjectWizard/OldFrameworkSupportProviderWrapper.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/ModuleImportBuilder.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/DefaultProjectStructureDetector.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/DetectedContentRoot.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/DetectedProjectRoot.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/JavaModuleSourceRoot.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/JavaSourceRootDetector.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/impl/JavaProjectStructureDetector.java
java/idea-ui/src/com/intellij/ide/util/projectWizard/importSources/impl/ProjectFromSourcesBuilderImpl.java
java/idea-ui/src/com/intellij/jarFinder/IvyAttachSourceProvider.java
java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.java
java/idea-ui/src/com/intellij/jarRepository/RepositoryLibraryType.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/AnnotationsEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/BuildElementsEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ClasspathEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ErrorPaneConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/GeneralProjectSettingsElement.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandlerBase.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavadocEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LanguageLevelCombo.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModificationOfImportedModelWarningComponent.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/OutputEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectJdksConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurableBase.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactErrorPanel.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemDescription.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemsHolderImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProjectStructureElement.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactPropertiesEditors.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/InvalidArtifactConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/LayoutTreeComponent.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/HideContentAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/LayoutTreeActionBase.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/MovePackagingElementAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/RemovePackagingElementAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/SurroundElementWithAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/nodes/PackagingNodeSource.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/ArtifactsSourceItemsProvider.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/LibrarySourceItem.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/ModuleGroupItem.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddItemPopupAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddLibraryDependencyAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AnalyzeModuleDependencyAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathPanelImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathTableItem.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathTableModel.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/LibraryItem.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ProjectStructureChooseLibrariesDialog.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryPresentationManager.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/impl/LibraryPresentationManagerImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/CreateNewLibraryAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/JavadocQuarantineStatusCleaner.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryPropertiesEditorBase.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryRootsComponent.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTreeRenderer.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/BaseLibrariesConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/LibraryJarsDiffDialog.kt
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ConfigurationErrorQuickFix.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/FacetProjectStructureElement.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/LibraryProjectStructureElement.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ModuleProjectStructureElement.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureElement.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureProblemDescription.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureProblemsHolderImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/SdkProjectStructureElement.java
java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java
java/idea-ui/src/com/intellij/projectImport/ProjectFormatPanel.java
java/idea-ui/src/com/intellij/projectImport/ProjectImportBuilder.java
java/idea-ui/src/com/intellij/projectImport/ProjectImportProvider.java
java/idea-ui/src/com/intellij/projectImport/SelectImportedProjectsStep.java
java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java
java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesFromTablesDialog.java
java/idea-ui/src/org/jetbrains/idea/maven/utils/library/RepositoryUtils.java
java/idea-ui/testSrc/com/intellij/ide/projectWizard/ImportActionTest.java
java/openapi/resources/messages/JavaBundle.properties
java/openapi/src/org/jetbrains/idea/maven/utils/library/RepositoryLibraryDescription.java
jps/model-api/src/org/jetbrains/jps/model/JpsNamedElement.java
jps/model-api/src/org/jetbrains/jps/model/ex/JpsNamedCompositeElementBase.java
jps/model-serialization/src/org/jetbrains/jps/model/serialization/artifact/ArtifactState.java
jps/model-serialization/src/org/jetbrains/jps/model/serialization/artifact/JpsArtifactSerializer.java
platform/core-api/src/com/intellij/openapi/project/Project.java
platform/core-api/src/com/intellij/util/PathUtil.java
platform/editor-ui-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java
platform/lang-api/src/com/intellij/facet/Facet.java
platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportProvider.java
platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportProviderBase.java
platform/lang-impl/src/com/intellij/ide/projectView/impl/ModuleGroup.java
platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryPresentationProvider.java
platform/lang-impl/src/com/intellij/openapi/roots/libraries/ui/AttachRootButtonDescriptor.java
platform/platform-api/resources/messages/CommonBundle.properties
platform/platform-api/src/com/intellij/openapi/roots/ui/CellAppearanceEx.java
platform/projectModel-api/resources/messages/ProjectModelBundle.properties
platform/projectModel-api/src/com/intellij/openapi/roots/DependencyScope.java
platform/projectModel-api/src/com/intellij/openapi/roots/OrderEntry.java
platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryUtil.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/storage/ClassPathStorageUtil.java
platform/util/src/com/intellij/BundleBase.java
platform/util/src/com/intellij/openapi/util/text/StringUtil.java
platform/util/src/com/intellij/xml/CommonXmlStrings.java
platform/util/ui/src/com/intellij/util/ui/UIUtil.java
plugins/groovy/groovy-psi/resources/messages/GroovyBundle.properties
plugins/groovy/src/org/jetbrains/plugins/groovy/GroovySourceRootDetector.java
plugins/groovy/src/org/jetbrains/plugins/groovy/config/GroovyLibraryPresentationProviderBase.java
plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectStructureDetector.java
plugins/javaFX/resources/messages/JavaFXBundle.properties
plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/JavaFxApplicationArtifactType.java
plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/preloader/JavaFxPreloaderArtifactType.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenFrameworkSupportProvider.java

index 39a9da53d7bd449aaeab54ed939da3854f42cb05..b0ca014b1cd5d58e59c1e543af2e31c472d58fc4 100644 (file)
@@ -24,6 +24,7 @@ import com.intellij.packaging.artifacts.*;
 import com.intellij.packaging.elements.CompositePackagingElement;
 import com.intellij.packaging.impl.elements.ArchivePackagingElement;
 import com.intellij.util.EventDispatcher;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -35,7 +36,7 @@ import java.util.Map;
 
 public class ArtifactImpl extends UserDataHolderBase implements ModifiableArtifact {
   private CompositePackagingElement<?> myRootElement;
-  private String myName;
+  private @Nls(capitalization = Nls.Capitalization.Title) String myName;
   private boolean myBuildOnMake;
   private String myOutputPath;
   private final EventDispatcher<? extends ArtifactListener> myDispatcher;
@@ -43,13 +44,15 @@ public class ArtifactImpl extends UserDataHolderBase implements ModifiableArtifa
   private Map<ArtifactPropertiesProvider, ArtifactProperties<?>> myProperties;
   private final ProjectModelExternalSource myExternalSource;
 
-  public ArtifactImpl(@NotNull String name, @NotNull ArtifactType artifactType, boolean buildOnMake,
+  public ArtifactImpl(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String name,
+                      @NotNull ArtifactType artifactType, boolean buildOnMake,
                       @NotNull CompositePackagingElement<?> rootElement, String outputPath,
                       @Nullable ProjectModelExternalSource externalSource) {
     this(name, artifactType, buildOnMake, rootElement, outputPath, externalSource, null);
   }
 
-  public ArtifactImpl(@NotNull String name, @NotNull ArtifactType artifactType, boolean buildOnMake,
+  public ArtifactImpl(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String name,
+                      @NotNull ArtifactType artifactType, boolean buildOnMake,
                       @NotNull CompositePackagingElement<?> rootElement, String outputPath,
                       @Nullable ProjectModelExternalSource externalSource, EventDispatcher<? extends ArtifactListener> dispatcher) {
     myName = name;
index 1a09aeac5ac7840c2cf2b1819041e708db21a721..f8995cee65b7b9ad5bb180821c2fee41dc82e1e1 100644 (file)
@@ -6,6 +6,7 @@ import com.intellij.configurationStore.XmlSerializer;
 import com.intellij.openapi.Disposable;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.application.WriteAction;
+import com.intellij.openapi.compiler.JavaCompilerBundle;
 import com.intellij.openapi.components.PersistentStateComponent;
 import com.intellij.openapi.components.State;
 import com.intellij.openapi.components.Storage;
@@ -27,6 +28,7 @@ import com.intellij.packaging.elements.*;
 import com.intellij.util.containers.ContainerUtil;
 import gnu.trove.THashSet;
 import org.jdom.Element;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -144,6 +146,7 @@ public final class ArtifactManagerImpl extends ArtifactManager implements Persis
 
   @Nullable
   private static <S> ArtifactPropertiesState serializeProperties(ArtifactPropertiesProvider provider, ArtifactProperties<S> properties) {
+    if (properties.getState() == null) return null;
     final Element options = XmlSerializer.serialize(properties.getState());
     if (options == null) {
       return null;
@@ -184,9 +187,8 @@ public final class ArtifactManagerImpl extends ArtifactManager implements Persis
       XmlSerializer.deserializeInto(element, state);
       packagingElement.loadState(state);
     }
-    final List children = element.getChildren(PACKAGING_ELEMENT_NAME);
-    //noinspection unchecked
-    for (Element child : (List<? extends Element>)children) {
+    final List<? extends Element> children = element.getChildren(PACKAGING_ELEMENT_NAME);
+    for (Element child : children) {
       ((CompositePackagingElement<?>)packagingElement).addOrFindChild(deserializeElement(child));
     }
     return packagingElement;
@@ -218,7 +220,7 @@ public final class ArtifactManagerImpl extends ArtifactManager implements Persis
     ArtifactType type = ArtifactType.findById(state.getArtifactType());
     ProjectModelExternalSource externalSource = findExternalSource(state.getExternalSystemId());
     if (type == null) {
-      return createInvalidArtifact(state, externalSource, "Unknown artifact type: " + state.getArtifactType());
+      return createInvalidArtifact(state, externalSource, JavaCompilerBundle.message("unknown.artifact.type.0", state.getArtifactType()));
     }
 
     final Element element = state.getRootElement();
@@ -229,7 +231,7 @@ public final class ArtifactManagerImpl extends ArtifactManager implements Persis
         rootElement = (CompositePackagingElement<?>)deserializeElement(element);
       }
       catch (UnknownPackagingElementTypeException e) {
-        return createInvalidArtifact(state, externalSource, "Unknown element: " + e.getTypeId());
+        return createInvalidArtifact(state, externalSource, JavaCompilerBundle.message("unknown.element.0", e.getTypeId()));
       }
     }
     else {
@@ -245,13 +247,16 @@ public final class ArtifactManagerImpl extends ArtifactManager implements Persis
         deserializeProperties(artifact.getProperties(provider), propertiesState);
       }
       else {
-        return createInvalidArtifact(state, externalSource, "Unknown artifact properties: " + propertiesState.getId());
+        final String message = JavaCompilerBundle.message("unknown.artifact.properties.0", propertiesState.getId());
+        return createInvalidArtifact(state, externalSource, message);
       }
     }
     return artifact;
   }
 
-  private InvalidArtifact createInvalidArtifact(ArtifactState state, ProjectModelExternalSource externalSource, String errorMessage) {
+  private InvalidArtifact createInvalidArtifact(ArtifactState state,
+                                                ProjectModelExternalSource externalSource,
+                                                @Nls(capitalization = Nls.Capitalization.Sentence) String errorMessage) {
     final InvalidArtifact artifact = new InvalidArtifact(state, errorMessage, externalSource);
     ProjectLoadingErrorsNotifier.getInstance(myProject).registerError(new ArtifactLoadingErrorDescription(myProject, artifact));
     UnknownFeaturesCollector.getInstance(myProject).registerUnknownFeature(FEATURE_TYPE, state.getArtifactType(), "Artifact");
index e4eae8ff54009a1b2e3afcd2db65b6ad8c603351..695a7b3fd33f5d8b83488402c77a4c855578150d 100644 (file)
@@ -17,21 +17,28 @@ package com.intellij.packaging.impl.artifacts;
 
 import com.intellij.openapi.roots.ProjectModelExternalSource;
 import com.intellij.packaging.elements.PackagingElementFactory;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.jps.model.serialization.artifact.ArtifactState;
 
 public class InvalidArtifact extends ArtifactImpl {
   private final ArtifactState myState;
-  private final String myErrorMessage;
+  private final @Nls(capitalization = Nls.Capitalization.Sentence) String myErrorMessage;
 
-  public InvalidArtifact(@NotNull ArtifactState state, String errorMessage, ProjectModelExternalSource externalSource) {
-    super(state.getName(), InvalidArtifactType.getInstance(), false, PackagingElementFactory.getInstance().createArtifactRootElement(), "",
+  public InvalidArtifact(@NotNull ArtifactState state,
+                         @Nls(capitalization = Nls.Capitalization.Sentence) String errorMessage,
+                         ProjectModelExternalSource externalSource) {
+    super(state.getName(),
+          InvalidArtifactType.getInstance(),
+          false,
+          PackagingElementFactory.getInstance().createArtifactRootElement(),
+          "",
           externalSource);
     myState = state;
     myErrorMessage = errorMessage;
   }
 
-  public String getErrorMessage() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getErrorMessage() {
     return myErrorMessage;
   }
 
index 5eec8dd0f5254e7ea36923970e28fed12e474f61..f20bc083cbdcb5dbe1a08afecc8280299f653587 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.packaging.impl.artifacts;
 
 import com.intellij.icons.AllIcons;
+import com.intellij.ide.IdeBundle;
 import com.intellij.openapi.components.ServiceManager;
 import com.intellij.packaging.artifacts.ArtifactType;
 import com.intellij.packaging.elements.CompositePackagingElement;
@@ -32,7 +33,7 @@ public class InvalidArtifactType extends ArtifactType {
   }
 
   public InvalidArtifactType() {
-    super("invalid", "Invalid");
+    super("invalid", IdeBundle.message("invalid.node.text"));
   }
 
   @NotNull
index de3ac09b99a5cd1c939f5035563bb891c3314b28..749e007918248e8d18047aed81221619f1f921ca 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.packaging.impl.artifacts;
 
 import com.intellij.icons.AllIcons;
+import com.intellij.openapi.compiler.JavaCompilerBundle;
 import com.intellij.packaging.artifacts.ArtifactTemplate;
 import com.intellij.packaging.artifacts.ArtifactType;
 import com.intellij.packaging.elements.CompositePackagingElement;
@@ -30,7 +31,7 @@ import java.util.List;
 
 public class JarArtifactType extends ArtifactType {
   public JarArtifactType() {
-    super("jar", "JAR");
+    super("jar", JavaCompilerBundle.message("jar.text"));
   }
 
   public static JarArtifactType getInstance() {
index 5d77da903fe2abdda830de90ddc45567a8ba482a..c0a7a857bfc41a9f61bd4b76f04b929a999ba185 100644 (file)
@@ -38,6 +38,7 @@ import com.intellij.packaging.impl.elements.ProductionModuleOutputElementType;
 import com.intellij.packaging.impl.elements.TestModuleOutputElementType;
 import com.intellij.util.CommonProcessors;
 import gnu.trove.THashSet;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.Nullable;
 
 import java.io.IOException;
@@ -180,7 +181,7 @@ public class JarFromModulesTemplate extends ArtifactTemplate {
   }
 
   @Override
-  public String getPresentableName() {
-    return "From modules with dependencies...";
+  public @Nls String getPresentableName() {
+    return JavaCompilerBundle.message("jar.from.modules.presentable.name");
   }
 }
index 291e505d99aa9b595b9bd36764beea44335a3f4b..fd03dde47dc6be0ad975647a2725b86753664644 100644 (file)
@@ -86,6 +86,6 @@ public class ArtifactElementType extends ComplexPackagingElementType<ArtifactPac
 
   @Override
   public String getShowContentActionText() {
-    return "Show Content of Included Artifacts";
+    return JavaCompilerBundle.message("show.content.of.included.artifacts");
   }
 }
index 07133eb3dcebfa0205b529097a806080c723160d..8bdd357b7a19b5e8f41e0970fb8f0c3385e17895 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.packaging.impl.elements;
 
 import com.intellij.icons.AllIcons;
+import com.intellij.openapi.compiler.JavaCompilerBundle;
 import com.intellij.openapi.fileChooser.FileChooser;
 import com.intellij.openapi.fileChooser.FileChooserDescriptor;
 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
@@ -34,7 +35,7 @@ import java.util.List;
 public class DirectoryCopyElementType extends PackagingElementType<DirectoryCopyPackagingElement> {
 
   DirectoryCopyElementType() {
-    super("dir-copy", "Directory Content");
+    super("dir-copy", JavaCompilerBundle.message("directory.copy.element.type.name"));
   }
 
   @Override
index 631b5ad87567d992643146d93a60c60394e8affc..a9f26d8de7438fa4964e10147d7505cf0ad94f8c 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.packaging.impl.elements;
 
 import com.intellij.icons.AllIcons;
+import com.intellij.openapi.compiler.JavaCompilerBundle;
 import com.intellij.openapi.fileChooser.FileChooser;
 import com.intellij.openapi.fileChooser.FileChooserDescriptor;
 import com.intellij.openapi.project.Project;
@@ -35,7 +36,7 @@ import java.util.List;
 public class ExtractedDirectoryElementType extends PackagingElementType<ExtractedDirectoryPackagingElement> {
 
   ExtractedDirectoryElementType() {
-    super("extracted-dir", "Extracted Directory");
+    super("extracted-dir", JavaCompilerBundle.message("extracted.directory.element.type.name"));
   }
 
   @Override
index c647a68ad3041330830de5d7ff2ae1c4dffbea9d..fd7f11c706f14f3d0dcd877f3df0c3ebab3043f8 100644 (file)
@@ -13,6 +13,7 @@ import com.intellij.packaging.elements.CompositePackagingElement;
 import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.elements.PackagingElementType;
 import com.intellij.packaging.ui.ArtifactEditorContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 
@@ -24,7 +25,9 @@ import java.util.List;
 public abstract class FacetBasedPackagingElementType<E extends PackagingElement<?>, F extends Facet> extends PackagingElementType<E> {
   private final FacetTypeId<F> myFacetType;
 
-  protected FacetBasedPackagingElementType(@NotNull @NonNls String id, @NotNull String presentableName, FacetTypeId<F> facetType) {
+  protected FacetBasedPackagingElementType(@NotNull @NonNls String id,
+                                           @NotNull @Nls(capitalization = Nls.Capitalization.Title) String presentableName,
+                                           FacetTypeId<F> facetType) {
     super(id, presentableName);
     myFacetType = facetType;
   }
index bda0dca3d955eb85f3abc8ed8d439b1d98ab430c..f9f6c1d377430ac9871763aebdaebd25159d6506 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.packaging.impl.elements;
 
+import com.intellij.CommonBundle;
 import com.intellij.icons.AllIcons;
 import com.intellij.openapi.fileChooser.FileChooser;
 import com.intellij.openapi.fileChooser.FileChooserDescriptor;
@@ -33,7 +34,7 @@ import java.util.List;
 public class FileCopyElementType extends PackagingElementType<FileCopyPackagingElement> {
 
   FileCopyElementType() {
-    super("file-copy", "File");
+    super("file-copy", CommonBundle.message("file.title"));
   }
 
   @Override
index a5c917549ea443db6a6e85ec7fe0ae8e6610d97f..e718fa3bdad174b32faab1132e12bbc889a353d5 100644 (file)
@@ -75,6 +75,6 @@ public class LibraryElementType extends ComplexPackagingElementType<LibraryPacka
 
   @Override
   public String getShowContentActionText() {
-    return "Show Library Files";
+    return JavaCompilerBundle.message("show.library.files");
   }
 }
index a3acdf10e5075bb31d100fe84407c8b04257894e..85baa796566802ca9d893d9f445cfa54e57dd1d8 100644 (file)
@@ -28,6 +28,7 @@ import com.intellij.packaging.elements.CompositePackagingElement;
 import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.elements.PackagingElementType;
 import com.intellij.packaging.ui.ArtifactEditorContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -36,7 +37,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 public abstract class ModuleElementTypeBase<E extends ModulePackagingElementBase> extends PackagingElementType<E> {
-  public ModuleElementTypeBase(String id, String presentableName) {
+  public ModuleElementTypeBase(String id, @Nls(capitalization = Nls.Capitalization.Title) String presentableName) {
     super(id, presentableName);
   }
 
index ef35015eece8dcd640b0ae6d3bf1e572e76086d5..e90b4b00fca117f1778d0e2731e64c23bb64981d 100644 (file)
@@ -2,10 +2,11 @@
 package com.intellij.packaging.impl.elements;
 
 import com.intellij.openapi.compiler.JavaCompilerBundle;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 public abstract class ModuleOutputElementTypeBase<E extends ModulePackagingElementBase> extends ModuleElementTypeBase<E> {
-  public ModuleOutputElementTypeBase(String id, String presentableName) {
+  public ModuleOutputElementTypeBase(String id, @Nls(capitalization = Nls.Capitalization.Title) String presentableName) {
     super(id, presentableName);
   }
 
index 4493348bab1120aeb738bab7ebd55b57552bebf0..4a07ba622763ee7f75e4b7510539376c77b64644 100644 (file)
@@ -17,6 +17,7 @@ package com.intellij.packaging.impl.ui;
 
 import com.intellij.packaging.elements.PackagingElementResolvingContext;
 import com.intellij.packaging.ui.ArtifactProblemsHolder;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 public abstract class ArtifactProblemsHolderBase implements ArtifactProblemsHolder {
@@ -33,7 +34,7 @@ public abstract class ArtifactProblemsHolderBase implements ArtifactProblemsHold
   }
 
   @Override
-  public void registerError(@NotNull String message, @NotNull String problemTypeId) {
+  public void registerError(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @NotNull String problemTypeId) {
     registerError(message, problemTypeId, null);
   }
 }
index 3633afedc1dee39d0e23fd60ecfb58864edd5f15..5d3e575aac80e71731824ed9d2bdfccdb6267f6e 100644 (file)
@@ -229,4 +229,13 @@ dialog.title.manifest.select.main.class=Select Main Class
 label.unknown.value=<unknown>
 label.extracted.dir.presentation=Extracted ''{0}''
 label.library.element.module=module ''{0}''
-label.in.path.suffix=(in {0})
\ No newline at end of file
+label.in.path.suffix=(in {0})
+jar.text=JAR
+jar.from.modules.presentable.name=From modules with dependencies...
+unknown.artifact.type.0=Unknown artifact type: {0}
+unknown.element.0=Unknown element: {0}
+unknown.artifact.properties.0=Unknown artifact properties: {0}
+show.content.of.included.artifacts=Show Content of Included Artifacts
+show.library.files=Show Library Files
+directory.copy.element.type.name=Directory Content
+extracted.directory.element.type.name=Extracted Directory
index 5cb2c2958a07a810e839f5ef0f940f2039206561..a88488497679ecf63f733e53ec385e22bb6427fb 100644 (file)
@@ -19,6 +19,7 @@ import com.intellij.openapi.roots.ProjectModelBuildableElement;
 import com.intellij.openapi.util.UserDataHolder;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.packaging.elements.CompositePackagingElement;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -31,7 +32,7 @@ public interface Artifact extends UserDataHolder, ProjectModelBuildableElement {
   @NotNull
   ArtifactType getArtifactType();
 
-  String getName();
+  @Nls(capitalization = Nls.Capitalization.Title) String getName();
 
   boolean isBuildOnMake();
 
index 07f6f4459aaa788fc46986bf3ef350b06b443f90..ff6b439f9804ee71cc9c87b1120252017961a39b 100644 (file)
 package com.intellij.packaging.artifacts;
 
 import com.intellij.packaging.elements.CompositePackagingElement;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 public abstract class ArtifactTemplate {
 
-  public abstract String getPresentableName();
+  public abstract @Nls(capitalization = Nls.Capitalization.Title) String getPresentableName();
 
   @Nullable
   public NewArtifactConfiguration createArtifact() {
index e5c64b7569a87cff0647bc1507e8e9ced109c1c4..ec1826a68f51fdeefe8c20a382984c89ba3f43ec 100644 (file)
@@ -8,6 +8,7 @@ import com.intellij.packaging.elements.PackagingElementOutputKind;
 import com.intellij.packaging.elements.PackagingElementResolvingContext;
 import com.intellij.packaging.ui.ArtifactProblemsHolder;
 import com.intellij.packaging.ui.PackagingSourceItem;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -19,9 +20,9 @@ import java.util.List;
 public abstract class ArtifactType {
   public static final ExtensionPointName<ArtifactType> EP_NAME = ExtensionPointName.create("com.intellij.packaging.artifactType");
   private final String myId;
-  private final String myTitle;
+  private final @Nls(capitalization = Nls.Capitalization.Sentence) String myTitle;
 
-  protected ArtifactType(@NonNls String id, String title) {
+  protected ArtifactType(@NonNls String id, @Nls(capitalization = Nls.Capitalization.Sentence) String title) {
     myId = id;
     myTitle = title;
   }
@@ -30,7 +31,7 @@ public abstract class ArtifactType {
     return myId;
   }
 
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return myTitle;
   }
 
index e9d6b1b2619b9e89d7fd4e1a6da83bf1b6cf23fa..856fc75fbec1972e8f3cbb1808bd1eaf4e5c73a9 100644 (file)
@@ -18,16 +18,17 @@ package com.intellij.packaging.elements;
 
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.ModificationTracker;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 public abstract class ComplexPackagingElementType<E extends ComplexPackagingElement<?>> extends PackagingElementType<E> {
-  protected ComplexPackagingElementType(@NotNull @NonNls String id, @NotNull String presentableName) {
+  protected ComplexPackagingElementType(@NotNull @NonNls String id, @NotNull @Nls(capitalization = Nls.Capitalization.Title) String presentableName) {
     super(id, presentableName);
   }
 
-  public abstract String getShowContentActionText();
+  public abstract @Nls(capitalization = Nls.Capitalization.Title) String getShowContentActionText();
 
   @Nullable
   public ModificationTracker getAllSubstitutionsModificationTracker(@NotNull Project project) {
index da50e7ee206ea540ef2a124cf06b58fa379759fa..d0b081bee1bffd1849676a003776489f496b4424 100644 (file)
@@ -17,6 +17,7 @@ package com.intellij.packaging.elements;
 
 import com.intellij.packaging.artifacts.Artifact;
 import com.intellij.packaging.ui.ArtifactEditorContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -25,7 +26,7 @@ import java.util.Collections;
 import java.util.List;
 
 public abstract class CompositePackagingElementType<E extends CompositePackagingElement<?>> extends PackagingElementType<E> {
-  protected CompositePackagingElementType(@NotNull @NonNls String id, @NotNull String presentableName) {
+  protected CompositePackagingElementType(@NotNull @NonNls String id, @NotNull @Nls(capitalization = Nls.Capitalization.Title) String presentableName) {
     super(id, presentableName);
   }
 
index 910b7561a57d9c05af4b2c2c4463bd17fbeb2b48..94ddb0d06f55761bc3bb1ba7bebab79798bac5a3 100644 (file)
@@ -6,6 +6,7 @@ import com.intellij.openapi.project.Project;
 import com.intellij.packaging.artifacts.Artifact;
 import com.intellij.packaging.ui.ArtifactEditorContext;
 import com.intellij.packaging.ui.PackagingElementPropertiesPanel;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -16,9 +17,9 @@ import java.util.List;
 public abstract class PackagingElementType<E extends PackagingElement<?>> {
   public static final ExtensionPointName<PackagingElementType> EP_NAME = ExtensionPointName.create("com.intellij.packaging.elementType");
   private final String myId;
-  private final String myPresentableName;
+  private final @Nls(capitalization = Nls.Capitalization.Title) String myPresentableName;
 
-  protected PackagingElementType(@NotNull @NonNls String id, @NotNull String presentableName) {
+  protected PackagingElementType(@NotNull @NonNls String id, @NotNull @Nls(capitalization = Nls.Capitalization.Title) String presentableName) {
     myId = id;
     myPresentableName = presentableName;
   }
@@ -27,7 +28,7 @@ public abstract class PackagingElementType<E extends PackagingElement<?>> {
     return myId;
   }
 
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Title) String getPresentableName() {
     return myPresentableName;
   }
 
index 006cb28f569ab89180c05ed7c0a3733ade043728..7cde65d33545cd94ab6c84eba39c687f8aae651e 100644 (file)
  */
 package com.intellij.packaging.ui;
 
+import com.intellij.java.JavaBundle;
+import com.intellij.openapi.util.NlsContexts;
+
 public abstract class ArtifactProblemQuickFix {
-  private final String myActionName;
+  private final @NlsContexts.Label String myActionName;
 
   protected ArtifactProblemQuickFix() {
-    this("Fix");
+    this(JavaBundle.message("intention.create.test.dialog.fix.library"));
   }
 
-  protected ArtifactProblemQuickFix(String actionName) {
+  protected ArtifactProblemQuickFix(@NlsContexts.Label String actionName) {
     myActionName = actionName;
   }
 
-  public String getActionName() {
+  public @NlsContexts.Label String getActionName() {
     return myActionName;
   }
 
index a23c820f8e20c1d6b615d8cb30557e2a76fd8787..674c3430087be3092ba7380bc44d6631bf77b976 100644 (file)
@@ -17,6 +17,7 @@ package com.intellij.packaging.ui;
 
 import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.elements.PackagingElementResolvingContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -26,11 +27,11 @@ public interface ArtifactProblemsHolder {
   @NotNull
   PackagingElementResolvingContext getContext();
 
-  void registerError(@NotNull String message, @NotNull String problemTypeId);
+  void registerError(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @NotNull String problemTypeId);
 
-  void registerError(@NotNull String message, @NotNull String problemTypeId, @Nullable List<PackagingElement<?>> pathToPlace,
+  void registerError(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @NotNull String problemTypeId, @Nullable List<PackagingElement<?>> pathToPlace,
                      ArtifactProblemQuickFix @NotNull ... quickFixes);
 
-  void registerWarning(@NotNull String message, @NotNull String problemTypeId, @Nullable List<PackagingElement<?>> pathToPlace,
+  void registerWarning(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @NotNull String problemTypeId, @Nullable List<PackagingElement<?>> pathToPlace,
                        ArtifactProblemQuickFix @NotNull ... quickFixes);
 }
index 053eac37565a133efcb81cb7149218cd024a8b1f..4d395a3950bb8ef26016297ded5ccc54ae539450 100644 (file)
  */
 package com.intellij.packaging.ui;
 
+import com.intellij.ide.projectView.PresentationData;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.util.NlsSafe;
+import com.intellij.ui.SimpleTextAttributes;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
-import com.intellij.ide.projectView.PresentationData;
-import com.intellij.ui.SimpleTextAttributes;
 
 public abstract class TreeNodePresentation {
   public abstract @NlsSafe String getPresentableName();
@@ -32,7 +33,7 @@ public abstract class TreeNodePresentation {
                               SimpleTextAttributes commentAttributes);
 
   @Nullable
-  public String getTooltipText() {
+  public @NlsContexts.Tooltip String getTooltipText() {
     return null;
   }
 
index 7db89ee29d73d941c7dd9d6bdd53994fcb5993a3..9237b229866831e1177205716e846d798144f0e3 100644 (file)
@@ -93,7 +93,7 @@ class DynamicArtifactExtensionsLoaderTest : HeavyPlatformTestCase() {
         Disposer.dispose(artifactTypeDisposable)
       }
     })
-    extensionPointName.getPoint().registerExtension(type, artifactTypeDisposable)
+    extensionPointName.point.registerExtension(type, artifactTypeDisposable)
   }
 
   override fun setUp() {
index dfcea75d1126ed42623638d6f022c32c04ba6522..76dda31b3f0ac5c16cbe8908d0a9b898dc5335b8 100644 (file)
@@ -9,6 +9,7 @@ import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.impl.ui.ArtifactProblemsHolderBase;
 import com.intellij.packaging.ui.ArtifactProblemQuickFix;
 import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -36,7 +37,7 @@ public abstract class PackagingValidationTestCase extends PackagingElementsTestC
     }
 
     @Override
-    public void registerError(@NotNull String message,
+    public void registerError(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message,
                               @NotNull String problemTypeId,
                               @Nullable List<PackagingElement<?>> pathToPlace,
                               ArtifactProblemQuickFix @NotNull ... quickFixes) {
@@ -45,7 +46,7 @@ public abstract class PackagingValidationTestCase extends PackagingElementsTestC
     }
 
     @Override
-    public void registerWarning(@NotNull String message,
+    public void registerWarning(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message,
                                 @NotNull String problemTypeId, @Nullable List<PackagingElement<?>> pathToPlace,
                                 ArtifactProblemQuickFix @NotNull ... quickFixes) {
       registerError(message, problemTypeId, pathToPlace, quickFixes);
index 7b40f284a0bb79d27c9e912e29508e46a968f426..9a5f7f5c930fdad296f9689dcc65f78abd1d0c8f 100644 (file)
@@ -79,7 +79,7 @@ error.resolve.generic=Resolve Error
 action.name.extract.artifact=Extract Artifact...
 prompt.overwrite.project.file=The {1} file \n''{0}''\nalready exists.\nWould you like to overwrite it?
 module.circular.dependency.warning.description=<html><b>There are circular dependencies between:</b> {0}</html>
-action.text.0.disabled.if.elements.are.sorted={0} (disabled if elements are sorted)
+action.text.0.disabled.if.elements.are.sorted={0} (Disabled if Elements Are Sorted)
 error.project.undefined=No external project config file is defined
 dialog.title.extract.artifact=Extract Artifact
 find.pointcut.applications.not.found.title=Information
@@ -174,7 +174,7 @@ project.facets.display.name=Facets
 module.paths.searching.source.roots.progress=Searching for source roots in {0}
 label.library.level=&Level:
 sdk.configure.javadoc.tab=Documentation Paths
-add.external.annotations.path.title=Add path to external annotations
+add.external.annotations.path.title=Add Path to External Annotations
 library.source.show.diff=Show diff
 prompt.relative.path.to.sources.empty=Relative path to sources is empty.\nWould you like to mark the module content root\n\"{0}\"\nas a source directory?
 project.new.wizard.progress.title=Initialization ...
@@ -305,7 +305,7 @@ rename.module.title=Rename module
 action.text.change.module.names=Change Module Names...
 error.message.module.name.prefix.contains.invalid.chars=A prefix must be composed of characters which can be used in a file name
 path.0.is.invalid.error.message=Path ''{0}'' is invalid
-classpath.add.simple.module.library.action=JARs or directories...
+classpath.add.simple.module.library.action=JARs or Directories...
 project.new.wizard.from.existent.sources.description=<html>Create {0} {1} structure over existing sources</html>
 dialog.title.copy.library=Copy Library
 action.text.sort.elements.by.names.and.types=Sort Elements by Names and Types
@@ -330,7 +330,7 @@ project.roots.javadoc.tab.description=<html>Manage external JavaDocs attached to
 dialog.title.rename.module.or.library.0=Rename {0}
 module.remove.confirmation=Remove {1, choice, 1#module ''''{0}''''|2#{1} modules} from the project?\nNo files will be deleted on disk.
 title.no.jdk.specified=No SDK Specified
-project.roots.error.message.invalid.roots=invalid {0} {1, choice, 1#root|2#roots}
+project.roots.error.message.invalid.roots=Invalid {0} {1, choice, 1#root|2#roots}
 label.available.elements=Available Elements
 new.library.file.chooser.description=Select JAR files in which library classes are located
 dialog.message.obsolete.library.files.remover.delete.files=The following Selected {0,choice,1#file isn''''t|2#files aren''''t} used anymore: \
@@ -395,12 +395,12 @@ project.roots.classpath.format.default.descr=IntelliJ IDEA (.iml)
 module.classpath.button.edit=Ed&it...
 choose.modules.dialog.description=Library ''{0}'' will be added to the selected modules.
 dialog.message.no.suitable.modules.for.0.facet.found=No suitable modules for {0} facet found.
-project.roots.output.compiler.title=Compiler output
+project.roots.output.compiler.title=Compiler Output
 tab.name.all.facets=All Facets
 section.title.test.resource.folders=Test Resource Folders
 module.circular.dependency.warning.short=There is circular dependency between {0}
 import.project.action.text={0, choice, 0#Import |1#}{1, choice, 0#Java |1#}Project from Existing Sources...
-action.description.remove.packaging.elements=Remove Selected Elements
+action.description.remove.packaging.elements=Remove selected elements
 section.title.resource.folders=Resource Folders
 classpath.chooser.description.add.module.dependency=Select the modules the current module should depend on:
 module.libraries.target.jdk.select.title=Select Project SDK
@@ -441,8 +441,8 @@ dialog.message.multiple.maven.coordinates=Multiple Maven coordinates are found i
 dialog.message.do.you.want=Do you want to search Maven repositories manually?
 dialog.title.cannot.detect.maven.coordinates=Cannot Detect Maven Coordinates
 task.title.comparing.jar.files=Comparing JAR Files...
-action.text.class.path.move.up=Move Up (disabled if items are shown in sorted order)
-action.text.class.path.move.down=Move Down (disabled if items are shown in sorted order)
+action.text.class.path.move.up=Move Up (Disabled if Items Are Shown in Sorted Order)
+action.text.class.path.move.down=Move Down (Disabled if Items Are Shown in Sorted Order)
 configurable.empty.text.select.library=Select a library to view or edit its details here
 action.name.text=text
 dialog.message.cannot.file.copy=Cannot copy file {0}: {1}
@@ -484,7 +484,7 @@ jar.repository.manager.progress.text.loading.dependencies=Loading dependencies o
 jar.repository.manager.library.resolve.progress.text=Loading {0}
 jar.repository.manager.version.resolve.progress.text=Loading {0} versions
 repository.library.properties.include.transitive.dependencies=Include &transitive dependencies
-library.options.panel.existing.library.combobox.label.unnamed=<unnamed>
+unnamed.title=<unnamed>
 attach.source.provider.download.sources.action.name=Download Sources
 attach.source.provider.download.sources.action.busy.text=Download sources...
 progress.details.building.library.dependencies.for.module=Building library dependencies for module {0}
@@ -497,7 +497,60 @@ libraries.layout.step.description=Please review libraries found. At this stage y
 module.structure.step.description=Please review suggested module structure for the project. At this stage you can set module names,\nexclude particular modules from the project, merge or split individual modules.\nAll dependencies between the modules as well as dependencies on the libraries will be automatically updated.
 label.select.jars.to.extract.to.new.library=&Select jars to extract to the new library:
 label.select.content.roots.to.extract.to.new.module=&Select content roots to extract to the new module:
-title.module.dependencies=Module dependencies
+title.module.dependencies=Module Dependencies
 title.modules=Modules
-title.library.contents=Library contents
-title.libraries=Libraries
\ No newline at end of file
+title.library.contents=Library Contents
+title.libraries=Libraries
+default.project.structure.root.type.name=Content
+module.insight.scan.progress.text.scanning=Scanning {0}
+module.insight.scan.progress.text.building.modules.layout=Building modules layout...
+module.wizard.dialog.title=Import {0, choice, 0#Project|1#Module} {1, choice, 1#from {2}}
+ivi.attach.source.provider.action.name=Attach Sources from Ivy Repository
+library=library
+for.generated.resources=For \egenerated resources
+modification.imported.model.warning.label.text={0} is imported from {1}. Any changes made in its configuration may be lost after reimporting.
+library.0=Library ''{0}''
+downloadable.library.type.description={0} library{2, choice, 0# of version {1}|1#}
+repository.library.type.maven.description=Maven: {0}
+project.configurable.dialog.message=Please specify project name!
+project.jdks.configurable.empty.selection.string=Select an SDK to view or edit its details here
+project.structure.configurable.reset.text=Resetting Project Structure
+facet.project.structure.display.text=Facet ''{0}'' in module ''{1}''
+library.project.structure.invalid.roots.description=Library {0} has broken {1} {2, choice, 0#path|1#paths}:
+library.0.is.not.used=Library {0} is not used
+label.remove.invalid.roots=Remove invalid {0, choice, 0#root|1#roots}
+label.add.to.dependencies=Add to Dependencies...
+label.remove.library=Remove library
+label.remove.all.unused.libraries=Remove all unused libraries
+circular.dependencies.message=Circular dependencies
+layout.tree.check.can.remove.dialog.message=The selected node belongs to {1, choice, \
+    1#the ''''{0}'''' element.|\
+    2#{1} elements.}\
+  Do you want to remove {1, choice, \
+    1#the whole ''''{0}'''' element from the artifact?|\
+    2#all these elements from the artifact?}
+action.hide.content.text=Hide Content{1, choice, 1# of ''''{0}''''|2#}
+popup.title.surround.with=Surround With...
+library.source.item.label.invalid.library=Invalid library
+library.source.item.label.empty.library=Empty library
+analyze.module.dependency.action.dialog.message.no.dependency.found=No code dependencies were found.{0} Would you like to remove the dependency?
+analyze.module.dependency.exported.entries=''{0}''{2, choice, \
+  1# and ''''{1}''''|\
+  2# and {2} more dependencies}
+analyze.module.dependency.replacement.text={1, choice, \
+  1#a direct dependency on ''''{0}''''|\
+  2#direct dependencies}
+analyze.module.dependency.replace.dialog.message=No direct code dependencies were found.{0}\n\
+  However {1} exported by ''{2}'' {3, choice, 1#is|2#are} used in code.\n\
+  Do you want to replace dependency on ''{4}'' with {5}?
+downloadable.library.properties.change.version.title=Change \\&Version...
+notification.content.no.files.were.downloaded=No files were downloaded for {0}
+library.jars.diff.dialog.0.jars.differ.from.1.library.jars={0} JARs differ from the ''{1}'' library JARs.
+library.jars.change.coordinates.action.title=Change Coordinates...
+project.structure.dialog.title.choose.libraries=Choose Libraries
+add.idea.module.label=Add IDEA module
+existing.sources=Existing sources
+label.ipr.file.based=.ipr (file based)
+label.directory.based={0} (directory based)
+select.imported.projects.dialog.message.nothing.found=Nothing found to import
+select.imported.projects.dialog.title.unable.to.proceed=Unable to Proceed
\ No newline at end of file
index 1f35f82874dc89c3046f1b56fa28f393f7ab1dd6..e66a9d953c414c1c5cfd468f44144d593b16a3d3 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.facet.impl.ui;
 import com.intellij.facet.Facet;
 import com.intellij.facet.FacetConfiguration;
 import com.intellij.facet.ui.*;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.Disposable;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.options.Configurable;
@@ -107,7 +108,8 @@ public class FacetEditorImpl extends UnnamedConfigurableGroup implements Unnamed
         @Override
         public ValidationResult check() {
           if (isModified()) {
-            String text = ModificationOfImportedModelWarningComponent.getWarningText("Facet '" + myContext.getFacetName() + "'", externalSource);
+            String text = ModificationOfImportedModelWarningComponent.getWarningText(
+              JavaUiBundle.message("facet.banner.text", myContext.getFacetName()), externalSource);
             return new ValidationResult(text);
           }
           return ValidationResult.OK;
index 82aa8a1085f6b2924ccb90b48438360107ee04e9..0a1cc71eadbb5ed2aeb1360d9a6a26e495123335 100644 (file)
@@ -233,7 +233,7 @@ public class LibraryOptionsPanel implements Disposable {
         else if (value instanceof NewLibraryEditor) {
           setIcon(PlatformIcons.LIBRARY_ICON);
           final String name = value.getName();
-          append(name != null ? name : JavaUiBundle.message("library.options.panel.existing.library.combobox.label.unnamed"));
+          append(name != null ? name : JavaUiBundle.message("unnamed.title"));
         }
       }
     });
index 4b4d4f843d2f02189ac22922706f273047b3bb8a..4225cf08a12b30c3e5900d4301a3f96d3d5ef5ba 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.framework;
 
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -30,7 +31,7 @@ public interface FrameworkOrGroup {
   String getId();
 
   @NotNull
-  String getPresentableName();
+  @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName();
 
   @NotNull
   Icon getIcon();
index abfc770909c983ff7f63a4c2a4adc25f5cb5cee5..835d08aa62260bcafdf36ab621a3822e5d108eda 100644 (file)
 package com.intellij.framework.library;
 
 import com.intellij.diagnostic.PluginException;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.libraries.*;
 import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent;
 import com.intellij.openapi.roots.libraries.ui.LibraryPropertiesEditor;
-import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -31,7 +32,7 @@ import java.util.List;
 
 public abstract class DownloadableLibraryType extends LibraryType<LibraryVersionProperties> {
   private final Icon myIcon;
-  private final String myLibraryCategoryName;
+  private final @Nls(capitalization = Nls.Capitalization.Title) String myLibraryCategoryName;
   private final DownloadableLibraryDescription myLibraryDescription;
 
   /**
@@ -42,7 +43,7 @@ public abstract class DownloadableLibraryType extends LibraryType<LibraryVersion
    * @param groupId name of directory on https://frameworks.jetbrains.com site which contains information about available library versions
    * @param localUrls URLs of xml files containing information about the library versions (see /contrib/osmorc/src/org/osmorc/facet/osgi.core.xml for example)
    */
-  protected DownloadableLibraryType(@NotNull String libraryCategoryName,
+  protected DownloadableLibraryType(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String libraryCategoryName,
                                @NotNull String libraryTypeId,
                                @NotNull String groupId,
                                URL @NotNull ... localUrls) {
@@ -53,7 +54,7 @@ public abstract class DownloadableLibraryType extends LibraryType<LibraryVersion
    * @deprecated use {@link #DownloadableLibraryType(String, String, String, URL...)} instead and override {@link #getLibraryTypeIcon()}
    */
   @Deprecated
-  public DownloadableLibraryType(@NotNull String libraryCategoryName,
+  public DownloadableLibraryType(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String libraryCategoryName,
                                  @NotNull String libraryTypeId,
                                  @NotNull String groupId,
                                  @Nullable Icon icon,
@@ -101,9 +102,10 @@ public abstract class DownloadableLibraryType extends LibraryType<LibraryVersion
   }
 
   @Override
-  public String getDescription(@NotNull LibraryVersionProperties properties) {
+  public @Nls String getDescription(@NotNull LibraryVersionProperties properties) {
     final String versionString = properties.getVersionString();
-    return StringUtil.capitalize(myLibraryCategoryName) + " library" + (versionString != null ? " of version " + versionString : "");
+    final int versionStringPresent = versionString != null ? 0 : 1;
+    return JavaUiBundle.message("downloadable.library.type.description", myLibraryCategoryName, versionString, versionStringPresent);
   }
 
   @Override
index 8f19e9939274a7b16bcdf3469add07234885ac48..427ec60a41b2f64a785ae6d41989c650ea3d1eca 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.framework.library;
 
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -26,7 +27,7 @@ import java.net.URL;
  */
 @Deprecated
 public abstract class DownloadableLibraryTypeBase extends DownloadableLibraryType {
-  protected DownloadableLibraryTypeBase(@NotNull String libraryCategoryName,
+  protected DownloadableLibraryTypeBase(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String libraryCategoryName,
                                         @NotNull String libraryTypeId,
                                         @NotNull String groupId,
                                         @Nullable Icon icon,
index 71efb179f92d2153dc60869ccb2c6e5df8da0e6a..140481cf4892b97a6735ad682798d8a685e820e7 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.framework.library.DownloadableLibraryDescription;
 import com.intellij.framework.library.DownloadableLibraryType;
 import com.intellij.framework.library.FrameworkLibraryVersion;
 import com.intellij.framework.library.LibraryVersionProperties;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.application.ModalityState;
 import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent;
@@ -42,7 +43,7 @@ public class DownloadableLibraryPropertiesEditor extends LibraryPropertiesEditor
   public DownloadableLibraryPropertiesEditor(DownloadableLibraryDescription description,
                                               LibraryEditorComponent<LibraryVersionProperties> editorComponent,
                                               DownloadableLibraryType libraryType) {
-    super(editorComponent, libraryType, "Change &Version...");
+    super(editorComponent, libraryType, JavaUiBundle.message("downloadable.library.properties.change.version.title"));
     myDescription = description;
     myLibraryType = libraryType;
     myCurrentVersionString = myEditorComponent.getProperties().getVersionString();
index c0f8ceb5c20924522f6420f3e9591ffb7f3be065..38696bc34ff8d456a09bf1d0a8c77f2ea936450c 100644 (file)
@@ -22,7 +22,9 @@ public class TemplateProjectStructureAction extends ShowStructureSettingsAction
   @Override
   public void update(@NotNull AnActionEvent e) {
     if (e.getPlace().equals(ActionPlaces.WELCOME_SCREEN)) {
-      e.getPresentation().setText(StringUtil.trimEnd(getTemplatePresentation().getText(), "..."));
+      final String text = getTemplatePresentation().getText();
+      if (text == null) return;
+      e.getPresentation().setText(StringUtil.trimEnd(text, "..."));
     }
   }
 }
\ No newline at end of file
index 1a001d71146575689910268c56ed88aa1b82c9c8..5931ae9ef814eaf73dd75a8891ef52ddcaf74aff 100644 (file)
@@ -30,7 +30,7 @@ public class DetectedRootsChooser {
   private final ColumnInfo<DetectedRootData,Boolean> myIncludedColumn = new ColumnInfo<DetectedRootData, Boolean>("") {
 
     @Override
-    public Class getColumnClass() {
+    public Class<Boolean> getColumnClass() {
       return Boolean.class;
     }
 
@@ -98,7 +98,7 @@ public class DetectedRootsChooser {
 
     @Override
     public TableCellEditor getEditor(DetectedRootData o) {
-      ComboBox<DetectedProjectRoot> comboBox = new ComboBox<>(new CollectionComboBoxModel(Arrays.asList(o.getAllRoots()), o.getSelectedRoot()));
+      ComboBox<DetectedProjectRoot> comboBox = new ComboBox<>(new CollectionComboBoxModel<>(Arrays.asList(o.getAllRoots()), o.getSelectedRoot()));
       comboBox.setRenderer(SimpleListCellRenderer.create("", DetectedProjectRoot::getRootTypeName));
       return new DefaultCellEditor(comboBox);
     }
index b72334373f037c54ef9aa2800891795d51c9d960..8929c56e4a742c997f5be4c4fe071d34ff3b0588 100644 (file)
@@ -1,6 +1,7 @@
 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.ide.util.importProject;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.highlighter.JavaFileType;
 import com.intellij.ide.util.projectWizard.importSources.DetectedProjectRoot;
 import com.intellij.ide.util.projectWizard.importSources.DetectedSourceRoot;
@@ -14,6 +15,7 @@ import com.intellij.openapi.module.StdModuleTypes;
 import com.intellij.openapi.progress.ProcessCanceledException;
 import com.intellij.openapi.progress.ProgressIndicator;
 import com.intellij.openapi.project.ProjectManager;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.pom.java.LanguageLevel;
@@ -66,7 +68,7 @@ public final class JavaModuleInsight extends ModuleInsight {
       Map<String, ModuleInfo> moduleInfos = new HashMap<>();
       for (JavaModuleSourceRoot moduleInfoRoot : moduleInfoRoots) {
         final File sourceRoot = moduleInfoRoot.getDirectory();
-        myProgress.setText("Scanning " + sourceRoot.getPath());
+        myProgress.setText(JavaUiBundle.message("module.insight.scan.progress.text.scanning", sourceRoot.getPath()));
         final ModuleInfo moduleInfo = scanModuleInfoFile(sourceRoot);
         if (moduleInfo != null) {
           moduleInfo.descriptor = createModuleDescriptor(moduleInfo.directory, Collections.singletonList(moduleInfoRoot));
@@ -74,7 +76,7 @@ public final class JavaModuleInsight extends ModuleInsight {
           addExportedPackages(sourceRoot, moduleInfo.exportsPackages);
         }
       }
-      myProgress.setText("Building modules layout...");
+      myProgress.setText(JavaUiBundle.message("module.insight.scan.progress.text.building.modules.layout"));
       for (ModuleInfo moduleInfo : moduleInfos.values()) {
         for (String requiresModule : moduleInfo.requiresModules) {
           ModuleInfo requiredModuleInfo = moduleInfos.get(requiresModule);
@@ -101,7 +103,8 @@ public final class JavaModuleInsight extends ModuleInsight {
 
   private ModuleInfo scanModuleInfoFile(@NotNull File directory) {
     File file = new File(directory, PsiJavaModule.MODULE_INFO_FILE);
-    myProgress.setText2(file.getName());
+    @NlsSafe final String name = file.getName();
+    myProgress.setText2(name);
     try {
       String text = FileUtil.loadFile(file);
 
index e96f463040e8e11d53786d8784b997e0eb59b3a5..6af6d682553801e8ca1c6791a17218fecb4bb168 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.ide.util.importProject;
 
 import com.intellij.ide.JavaUiBundle;
+import org.jetbrains.annotations.Nls;
 
 import java.io.File;
 import java.util.Collection;
@@ -70,13 +71,23 @@ public class LibrariesLayoutPanel extends ProjectLayoutPanel<LibraryDescriptor>{
   }
 
   @Override
-  protected String getDependenciesTitle() {
+  protected @Nls(capitalization = Nls.Capitalization.Title) String getDependenciesTitle() {
     return JavaUiBundle.message("title.library.contents");
   }
 
   @Override
-  protected String getElementTypeName() {
-    return "library";
+  protected @Nls String getElementTypeName() {
+    return JavaUiBundle.message("library");
+  }
+
+  @Override
+  protected @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNameTitle() {
+    return JavaUiBundle.message("configurable.library.prefix");
+  }
+
+  @Override
+  protected @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNamePlural() {
+    return JavaUiBundle.message("title.libraries");
   }
 
   @Override
index 57f3db99154d558cd07975661b5cb309ca826817..87483294ccd290c5578d04b98df2e380b1b80289 100644 (file)
@@ -15,6 +15,8 @@
  */
 package com.intellij.ide.util.importProject;
 
+import com.intellij.openapi.util.NlsSafe;
+
 import java.io.File;
 import java.util.Collection;
 import java.util.Collections;
@@ -24,7 +26,7 @@ import java.util.Collections;
  */
 public class LibraryDescriptor {
   
-  private String myName;
+  private @NlsSafe String myName;
   private final Collection<File> myJars;
 
   public LibraryDescriptor(String name, Collection<File> jars) {
@@ -32,7 +34,7 @@ public class LibraryDescriptor {
     myJars = jars;
   }
 
-  public String getName() {
+  public @NlsSafe String getName() {
     return myName != null? myName : "";
   }
 
index 0b8e5717e2ea5d5e69387fe612060842d9de94dc..5b4c2c645f37b881e804635542c87e36b002877b 100644 (file)
@@ -8,6 +8,7 @@ import com.intellij.ide.util.projectWizard.importSources.impl.ProjectFromSources
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.progress.ProcessCanceledException;
 import com.intellij.openapi.progress.ProgressIndicator;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.Ref;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.io.FileUtilRt;
@@ -92,7 +93,7 @@ public abstract class ModuleInsight {
         if (isIgnoredName(sourceRoot)) {
           continue;
         }
-        myProgress.setText("Scanning " + sourceRoot.getPath());
+        myProgress.setText(JavaUiBundle.message("module.insight.scan.progress.text.scanning", sourceRoot.getPath()));
 
         final HashSet<String> usedPackages = new HashSet<>();
         mySourceRootToReferencedPackagesMap.put(sourceRoot, usedPackages);
@@ -107,7 +108,7 @@ public abstract class ModuleInsight {
       myProgress.popState();
 
       myProgress.pushState();
-      myProgress.setText("Building modules layout...");
+      myProgress.setText(JavaUiBundle.message("module.insight.scan.progress.text.building.modules.layout"));
       Map<File, ModuleCandidate> rootToModule = new HashMap<>();
       for (DetectedSourceRoot sourceRoot : processedRoots) {
         final File srcRoot = sourceRoot.getDirectory();
@@ -464,7 +465,8 @@ public abstract class ModuleInsight {
   protected abstract boolean isSourceFile(final File file);
 
   private void scanSourceFile(File file, final Set<? super String> usedPackages) {
-    myProgress.setText2(file.getName());
+    @NlsSafe final String name = file.getName();
+    myProgress.setText2(name);
     try {
       final char[] chars = FileUtil.loadFileText(file);
       scanSourceFileForImportedPackages(StringFactory.createShared(chars), s -> usedPackages.add(myInterner.intern(s)));
@@ -488,14 +490,14 @@ public abstract class ModuleInsight {
           scanRootForLibraries(file);
         }
         else {
-          final String fileName = file.getName();
+          @NlsSafe final String fileName = file.getName();
           if (isLibraryFile(fileName)) {
             if (!myJarToPackagesMap.containsKey(file)) {
               final HashSet<String> libraryPackages = new HashSet<>();
               myJarToPackagesMap.put(file, libraryPackages);
 
               myProgress.pushState();
-              myProgress.setText2(file.getName());
+              myProgress.setText2(fileName);
               try {
                 scanLibraryForDeclaredPackages(file, s -> {
                   if (!libraryPackages.contains(s)) {
index e5fbf845bd3ad8736e9865597ad57fdc28b42dc9..738693c4b992653d4a6fb72933d734a745d2049a 100644 (file)
@@ -1,7 +1,10 @@
 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.ide.util.importProject;
 
+import com.intellij.CommonBundle;
 import com.intellij.ide.JavaUiBundle;
+import com.intellij.java.JavaBundle;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.Nullable;
 
 import java.io.File;
@@ -84,13 +87,23 @@ public class ModulesLayoutPanel extends ProjectLayoutPanel<ModuleDescriptor>{
   }
 
   @Override
-  protected String getDependenciesTitle() {
+  protected @Nls(capitalization = Nls.Capitalization.Title) String getDependenciesTitle() {
     return JavaUiBundle.message("title.module.dependencies");
   }
 
   @Override
   protected String getElementTypeName() {
-    return "module";
+    return JavaBundle.message("java.terms.module");
+  }
+
+  @Override
+  protected @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNameTitle() {
+    return CommonBundle.message("label.module");
+  }
+
+  @Override
+  protected @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNamePlural() {
+    return JavaUiBundle.message("title.modules");
   }
 
   @Override
index 563f684639ff5e4c64c7eba259d20afe030deba4..5889adf7f59d4dc2815e6d8781dda91c2c85b40a 100644 (file)
@@ -13,7 +13,7 @@ import com.intellij.openapi.ui.Messages;
 import com.intellij.openapi.ui.Splitter;
 import com.intellij.openapi.ui.ex.MultiLineLabel;
 import com.intellij.openapi.util.NlsContexts;
-import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.ui.DocumentAdapter;
 import com.intellij.ui.IdeBorderFactory;
 import com.intellij.ui.ScrollPaneFactory;
@@ -23,6 +23,7 @@ import com.intellij.util.PlatformIcons;
 import com.intellij.util.containers.ContainerUtil;
 import com.intellij.util.ui.FormBuilder;
 import com.intellij.util.ui.JBUI;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -72,7 +73,7 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
 
     final JPanel entriesPanel = new JPanel(new BorderLayout());
     entriesPanel.add(myEntriesChooser, BorderLayout.CENTER);
-    entriesPanel.setBorder(IdeBorderFactory.createTitledBorder(StringUtil.capitalize(StringUtil.pluralize(getElementTypeName())), false));
+    entriesPanel.setBorder(IdeBorderFactory.createTitledBorder(getElementTypeNamePlural(), false));
     splitter.setFirstComponent(entriesPanel);
 
     final JScrollPane depsPane = ScrollPaneFactory.createScrollPane(myDependenciesList);
@@ -198,38 +199,18 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
     return Integer.MAX_VALUE;
   }
 
-  protected static String getElementText(Object element) {
+  protected static @NlsSafe String getElementText(Object element) {
     if (element instanceof LibraryDescriptor) {
-      final StringBuilder builder = new StringBuilder();
-      builder.append(((LibraryDescriptor)element).getName());
-      final Collection<File> jars = ((LibraryDescriptor)element).getJars();
-      if (jars.size() == 1) {
-        final File parentFile = jars.iterator().next().getParentFile();
-        if (parentFile != null) {
-          builder.append(" (");
-          builder.append(parentFile.getPath());
-          builder.append(")");
-        }
-      }
-      return builder.toString();
+      return getElementTextFromLibraryDescriptor((LibraryDescriptor)element);
     }
 
     if (element instanceof File) {
-      final StringBuilder builder = new StringBuilder();
-      builder.append(((File)element).getName());
-      final File parentFile = ((File)element).getParentFile();
-      if (parentFile != null) {
-        builder.append(" (");
-        builder.append(parentFile.getPath());
-        builder.append(")");
-      }
-      return builder.toString();
+      return getElementTextFromFile((File)element);
     }
 
     if (element instanceof ModuleDescriptor) {
       final ModuleDescriptor moduleDescriptor = (ModuleDescriptor)element;
-      final StringBuilder builder = new StringBuilder();
-      builder.append(moduleDescriptor.getName());
+      final StringBuilder builder = new StringBuilder(moduleDescriptor.getName());
 
       final Set<File> contents = moduleDescriptor.getContentRoots();
       final int rootCount = contents.size();
@@ -256,6 +237,24 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
     return "";
   }
 
+  @NotNull
+  private static @NlsSafe String getElementTextFromFile(File element) {
+    final File parentFile = element.getParentFile();
+    if (parentFile == null) return element.getName();
+
+    return element.getName() + " (" + parentFile.getPath() + ")";
+  }
+
+  @NotNull
+  private static @NlsSafe String getElementTextFromLibraryDescriptor(LibraryDescriptor element) {
+    final Collection<File> jars = element.getJars();
+    if (jars.size() != 1) return element.getName();
+
+    final File parentFile = jars.iterator().next().getParentFile();
+
+    return element.getName() + " (" + parentFile.getPath() + ")";
+  }
+
   protected abstract List<T> getEntries();
 
   protected abstract Collection getDependencies(T entry);
@@ -268,7 +267,7 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
 
   protected abstract Collection<File> getContent(T entry);
 
-  protected abstract String getElementName(T entry);
+  protected abstract @Nls String getElementName(T entry);
 
   protected abstract void setElementName(T entry, String name);
 
@@ -280,9 +279,13 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
 
   protected abstract @NlsContexts.TabTitle String getEntriesChooserTitle();
 
-  protected abstract @NlsContexts.TabTitle String getDependenciesTitle();
+  protected abstract @Nls(capitalization = Nls.Capitalization.Title) String getDependenciesTitle();
+
+  protected abstract @Nls String getElementTypeName();
+
+  protected abstract @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNameTitle();
 
-  protected abstract String getElementTypeName();
+  protected abstract @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNamePlural();
 
   private boolean isNameAlreadyUsed(String entryName) {
     final Set<T> itemsToIgnore = new HashSet<>(myEntriesChooser.getSelectedElements());
@@ -329,7 +332,9 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
           ProjectLayoutPanel.this,
           JavaUiBundle.message("label.enter.new.name.for.merge.result"),
           JavaUiBundle.message("dialog.title.merge.module.or.library"),
-          Messages.getQuestionIcon(), getElementName(elements.get(0)), getValidator());
+          Messages.getQuestionIcon(),
+          getElementName(elements.get(0)),
+          getValidator());
         if (newName != null) {
           final T merged = merge(elements);
           setElementName(merged, newName);
@@ -399,7 +404,7 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
         final T element = elements.get(0);
         final String newName = Messages.showInputDialog(ProjectLayoutPanel.this,
                                                         JavaUiBundle.message("label.new.name.for.0.1", getElementTypeName(), getElementName(element)),
-                                                        JavaUiBundle.message("dialog.title.rename.module.or.library.0", StringUtil.capitalize(getElementTypeName())),
+                                                        JavaUiBundle.message("dialog.title.rename.module.or.library.0", getElementTypeNameTitle()),
                                                         Messages.getQuestionIcon(),
                                                         getElementName(element),
                                                         getValidator()
@@ -434,7 +439,7 @@ abstract class ProjectLayoutPanel<T> extends JPanel {
 
     private SplitDialog(final Collection<File> files) {
       super(myEntriesChooser, true);
-      setTitle(JavaUiBundle.message("dialog.title.split.module.or.library.0", StringUtil.capitalize(getElementTypeName())));
+      setTitle(JavaUiBundle.message("dialog.title.split.module.or.library.0", getElementTypeNameTitle()));
 
       myNameField = new JTextField();
       myChooser = new ElementsChooser<File>(true) {
index 1b818b8647eb03d6879c822b05184996f69d6110..773baea0e81651dcba81cfd5bc3bacefc2f564e6 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.openapi.fileTypes.FileTypeManager;
 import com.intellij.openapi.module.ModuleType;
 import com.intellij.openapi.progress.ProgressIndicator;
 import com.intellij.openapi.progress.ProgressManager;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.Pair;
 import com.intellij.openapi.util.io.FileSystemUtil;
 import com.intellij.openapi.util.io.FileUtil;
@@ -107,7 +108,8 @@ public class RootDetectionProcessor {
       if (myProgressIndicator.isCanceled()) {
         return parentsToSkip;
       }
-      myProgressIndicator.setText2(dir.getPath());
+      @NlsSafe final String path = dir.getPath();
+      myProgressIndicator.setText2(path);
     }
 
     if (FileSystemUtil.isSymLink(dir)) {
index b8c1f500cc308329d03207387f5a060cdb572bbe..34b8faf2ca0644cf75c94187f0d9d6689f0094c4 100644 (file)
@@ -99,7 +99,7 @@ public class RootsDetectionStep extends AbstractStepWithProgress<List<DetectedRo
   private void updateSelectedTypes() {
     Set<String> selectedTypes = new LinkedHashSet<>();
 
-    selectedTypes.add("Existing Sources");
+    selectedTypes.add(JavaUiBundle.message("existing.sources"));
 
     for (DetectedRootData rootData : myDetectedRootsChooser.getMarkedElements()) {
       for (ProjectStructureDetector detector : rootData.getSelectedDetectors()) {
index 71b0591cef6c20913ebf3c9fe8c8a4eafcdf9872..4116caee37607db9021f282781ecbef5c7d1cfb2 100644 (file)
@@ -1,6 +1,7 @@
 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.ide.util.newProjectWizard;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.util.newProjectWizard.modes.ImportMode;
 import com.intellij.ide.util.newProjectWizard.modes.WizardMode;
 import com.intellij.ide.util.projectWizard.ModuleWizardStep;
@@ -13,6 +14,7 @@ import com.intellij.openapi.projectRoots.Sdk;
 import com.intellij.openapi.projectRoots.SdkTypeId;
 import com.intellij.openapi.roots.ui.configuration.DefaultModulesProvider;
 import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.projectImport.ProjectImportBuilder;
 import com.intellij.projectImport.ProjectImportProvider;
 import com.intellij.util.containers.ContainerUtil;
@@ -53,13 +55,12 @@ public class AddModuleWizard extends AbstractProjectWizard {
     initModuleWizard(project, filePath);
   }
 
-  private static String getImportWizardTitle(Project project, ProjectImportProvider... providers) {
-    StringBuilder builder = new StringBuilder("Import ");
-    builder.append(project == null ? "Project" : "Module");
-    if (providers.length == 1) {
-      builder.append(" from ").append(providers[0].getName());
+  private static @NlsContexts.DialogTitle String getImportWizardTitle(Project project, ProjectImportProvider... providers) {
+    int isProject = project == null ? 0 : 1;
+    if (providers.length != 1) {
+      return JavaUiBundle.message("module.wizard.dialog.title", isProject, 0, null);
     }
-    return builder.toString();
+    return JavaUiBundle.message("module.wizard.dialog.title", isProject, 1, providers[0].getName());
   }
 
   private void initModuleWizard(@Nullable final Project project, @Nullable final String defaultPath) {
index 7999f682d6eded1b9b6faea87c0e3086ed0c38d0..283d5df444cdc8cbe196e277d5a7a5877036a79c 100644 (file)
@@ -4,6 +4,7 @@ package com.intellij.ide.util.newProjectWizard;
 import com.intellij.diagnostic.PluginException;
 import com.intellij.framework.FrameworkOrGroup;
 import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.ui.CheckedTreeNode;
 import com.intellij.util.ui.EmptyIcon;
 import org.jetbrains.annotations.NotNull;
@@ -54,7 +55,7 @@ public abstract class FrameworkSupportNodeBase<T extends FrameworkOrGroup> exten
   }
 
   @NotNull
-  protected final String getTitle() {
+  protected final @NlsContexts.Label String getTitle() {
     return getUserObject().getPresentableName();
   }
 
@@ -75,7 +76,7 @@ public abstract class FrameworkSupportNodeBase<T extends FrameworkOrGroup> exten
     return getUserObject().getId();
   }
 
-  @SuppressWarnings({"unchecked", "RedundantCast", "rawtypes"})
+  @SuppressWarnings({"unchecked", "rawtypes"})
   @NotNull
   public List<FrameworkSupportNodeBase> getChildren() {
     return children != null ? (List)children : Collections.emptyList();
index 3ae4ef78bc0269331ace3cb01036d1de7e002ca4..6ff853b40d2b56d05f5ae4caa5ce9ac6476078cf 100644 (file)
@@ -18,6 +18,7 @@ import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescri
 import com.intellij.openapi.util.Disposer;
 import com.intellij.ui.GuiUtils;
 import com.intellij.util.ui.EmptyIcon;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -88,6 +89,7 @@ public class OldFrameworkSupportProviderWrapper extends FrameworkSupportInModule
 
     @NotNull
     @Override
+    @Nls(capitalization = Nls.Capitalization.Title)
     public String getPresentableName() {
       return GuiUtils.getTextWithoutMnemonicEscaping(myOldProvider.getTitle());
     }
index a9664a699fd0d7d271ed6d4471257fc60ae5cd3c..cfcef3bdc381832859dfb950b3302d662a7d8841 100644 (file)
@@ -1,6 +1,7 @@
 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.ide.util.projectWizard;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.module.ModifiableModuleModel;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
@@ -17,7 +18,7 @@ final class ModuleImportBuilder extends ProjectImportBuilder {
   @NotNull
   @Override
   public String getName() {
-    return "Add IDEA module";
+    return JavaUiBundle.message("add.idea.module.label");
   }
 
   @Override
index 42e393b71a48e1737ecde98d5717036bf5657a39..2982c4a9b76a4631288a38bf1b1421c9482e2587 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.ide.util.projectWizard.importSources;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.util.importProject.ProjectDescriptor;
 import com.intellij.openapi.module.WebModuleTypeBase;
 import org.jetbrains.annotations.NotNull;
@@ -30,7 +31,7 @@ public class DefaultProjectStructureDetector extends ProjectStructureDetector {
                                                File @NotNull [] children,
                                                @NotNull File base,
                                                @NotNull List<DetectedProjectRoot> result) {
-    result.add(new DetectedContentRoot(dir, "Content", WebModuleTypeBase.getInstance()));
+    result.add(new DetectedContentRoot(dir, JavaUiBundle.message("default.project.structure.root.type.name"), WebModuleTypeBase.getInstance()));
     return DirectoryProcessingResult.SKIP_CHILDREN;
   }
 
index c51584a9646b64fcaf4e980cc869512a82a502cf..5936d0ae6a1d6237744749b7f22dc87e16f5c316 100644 (file)
 package com.intellij.ide.util.projectWizard.importSources;
 
 import com.intellij.openapi.module.ModuleType;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.io.File;
 
 public final class DetectedContentRoot extends DetectedProjectRoot {
-  @NotNull private final String myRootTypeName;
+  @NotNull private final @Nls(capitalization = Nls.Capitalization.Sentence) String myRootTypeName;
   @NotNull private final ModuleType myModuleType;
   private final ModuleType @NotNull [] myTypesToReplace;
 
-  public DetectedContentRoot(@NotNull File directory, @NotNull String rootTypeName, @NotNull ModuleType moduleType, ModuleType @NotNull ... typesToReplace) {
+  public DetectedContentRoot(@NotNull File directory,
+                             @Nls(capitalization = Nls.Capitalization.Sentence) @NotNull String rootTypeName,
+                             @NotNull ModuleType moduleType,
+                             ModuleType @NotNull ... typesToReplace) {
     super(directory);
     myRootTypeName = rootTypeName;
     myModuleType = moduleType;
@@ -34,7 +38,7 @@ public final class DetectedContentRoot extends DetectedProjectRoot {
 
   @NotNull
   @Override
-  public String getRootTypeName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getRootTypeName() {
     return myRootTypeName;
   }
 
index ad09fa513731fc9dcd2a8700a0024a28efdaae7e..12e5ac69ae200e7ef33121161556d767f0a518b0 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.ide.util.projectWizard.importSources;
 
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -32,7 +33,7 @@ public abstract class DetectedProjectRoot {
   }
 
   @NotNull
-  public abstract String getRootTypeName();
+  public abstract @Nls(capitalization = Nls.Capitalization.Sentence) String getRootTypeName();
 
   @Nullable
   public DetectedProjectRoot combineWith(@NotNull DetectedProjectRoot root) {
index 75120ecfd80ac01604ec1b31d00cb0a875c7867d..7f24a83a4b24deb08376be87cf90f1b72b157fc1 100644 (file)
  */
 package com.intellij.ide.util.projectWizard.importSources;
 
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -25,24 +27,24 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class JavaModuleSourceRoot extends DetectedSourceRoot {
-  private final List<String> myLanguages;
+  private final List<@Nls(capitalization = Nls.Capitalization.Sentence) String> myLanguages;
   private final boolean myWithModuleInfoFile; // module-info.java
 
-  public JavaModuleSourceRoot(File directory, @Nullable String packagePrefix, @NotNull String language) {
+  public JavaModuleSourceRoot(File directory, @Nullable String packagePrefix, @Nls(capitalization = Nls.Capitalization.Sentence) @NotNull String language) {
     super(directory, packagePrefix);
     myLanguages = new ArrayList<>();
     myLanguages.add(language);
     myWithModuleInfoFile = false;
   }
 
-  public JavaModuleSourceRoot(File directory, @NotNull String language, boolean withModuleInfoFile) {
+  public JavaModuleSourceRoot(File directory, @Nls(capitalization = Nls.Capitalization.Sentence) @NotNull String language, boolean withModuleInfoFile) {
     super(directory, "");
     myLanguages = new ArrayList<>();
     myLanguages.add(language);
     myWithModuleInfoFile = withModuleInfoFile;
   }
 
-  private JavaModuleSourceRoot(File directory, String packagePrefix, List<String> languages) {
+  private JavaModuleSourceRoot(File directory, String packagePrefix, List<@Nls(capitalization = Nls.Capitalization.Sentence) String> languages) {
     super(directory, packagePrefix);
     myLanguages = languages;
     myWithModuleInfoFile = false;
@@ -50,8 +52,9 @@ public class JavaModuleSourceRoot extends DetectedSourceRoot {
 
   @NotNull
   @Override
-  public String getRootTypeName() {
-    return StringUtil.join(myLanguages, ", ");
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getRootTypeName() {
+    @NlsSafe String result = StringUtil.join(myLanguages, ", ");
+    return result;
   }
 
   @Override
@@ -64,7 +67,7 @@ public class JavaModuleSourceRoot extends DetectedSourceRoot {
 
   @NotNull
   public JavaModuleSourceRoot combineWith(@NotNull JavaModuleSourceRoot root) {
-    List<String> union = new ArrayList<>(myLanguages.size() + root.myLanguages.size());
+    List<@Nls(capitalization = Nls.Capitalization.Sentence) String> union = new ArrayList<>(myLanguages.size() + root.myLanguages.size());
     union.addAll(myLanguages);
     union.addAll(root.myLanguages);
     ContainerUtil.removeDuplicates(union);
index 9ec282a0492bafbe52910db77136b39cbff93272..a4c76cb5b57bd57138bb23d8ae58647d9c9823a4 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.openapi.util.Pair;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.io.FileUtilRt;
 import com.intellij.util.NullableFunction;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.io.File;
@@ -84,7 +85,7 @@ public abstract class JavaSourceRootDetector extends ProjectStructureDetector {
   }
 
   @NotNull
-  protected abstract String getLanguageName();
+  protected abstract @Nls(capitalization = Nls.Capitalization.Sentence) String getLanguageName();
 
   @NotNull
   protected abstract String getFileExtension();
index 2c3dd03ea1f46f7cd5a75849f34ac7f2b96d1117..492e8b79efae96a6b075d2eeb2ced32953b7d3ab 100644 (file)
@@ -10,7 +10,9 @@ import com.intellij.ide.util.projectWizard.ProjectWizardStepFactory;
 import com.intellij.ide.util.projectWizard.importSources.JavaSourceRootDetectionUtil;
 import com.intellij.ide.util.projectWizard.importSources.JavaSourceRootDetector;
 import com.intellij.ide.util.projectWizard.importSources.ProjectFromSourcesBuilder;
+import com.intellij.java.JavaBundle;
 import com.intellij.util.NullableFunction;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -21,8 +23,8 @@ public class JavaProjectStructureDetector extends JavaSourceRootDetector {
 
   @NotNull
   @Override
-  protected String getLanguageName() {
-    return "Java";
+  protected @Nls(capitalization = Nls.Capitalization.Sentence) String getLanguageName() {
+    return JavaBundle.message("options.java.display.name");
   }
 
   @NotNull
index d8af2a9cab65b9ee61269eb2fda8678c98880d5c..ca1b276cb7c428336ed32e86840e22c1a0098717 100644 (file)
@@ -3,6 +3,7 @@ package com.intellij.ide.util.projectWizard.importSources.impl;
 
 import com.intellij.icons.AllIcons;
 import com.intellij.ide.IdeBundle;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.util.importProject.LibraryDescriptor;
 import com.intellij.ide.util.importProject.ModuleDescriptor;
 import com.intellij.ide.util.importProject.ModuleInsight;
@@ -51,7 +52,6 @@ import java.util.*;
  */
 public final class ProjectFromSourcesBuilderImpl extends ProjectImportBuilder implements ProjectFromSourcesBuilder {
   private static final Logger LOG = Logger.getInstance(ProjectFromSourcesBuilderImpl.class);
-  private static final String NAME = "Existing Sources";
   private String myBaseProjectPath;
   private final List<ProjectConfigurationUpdater> myUpdaters = new ArrayList<>();
   private final Map<ProjectStructureDetector, ProjectDescriptor> myProjectDescriptors = new LinkedHashMap<>();
@@ -125,7 +125,7 @@ public final class ProjectFromSourcesBuilderImpl extends ProjectImportBuilder im
   @NotNull
   @Override
   public String getName() {
-    return NAME;
+    return JavaUiBundle.message("existing.sources");
   }
 
   @Override
@@ -143,7 +143,7 @@ public final class ProjectFromSourcesBuilderImpl extends ProjectImportBuilder im
   }
 
   @Override
-  public void setFileToImport(String path) {
+  public void setFileToImport(@NotNull String path) {
     setBaseProjectPath(path);
   }
 
index 8215c43480b1a94333dca6ee3e98aaf7eec0b004..514e104997bf65e1fe8f495ae16ade3e36f5dc12 100644 (file)
@@ -84,7 +84,8 @@ public class IvyAttachSourceProvider extends AbstractAttachSourceProvider {
           return Collections.emptyList(); // Sources already attached.
         }
 
-        return Collections.singleton(new AttachExistingSourceAction(jarRoot, library, "Attache sources from Ivy repository") );
+        return Collections.singleton(new AttachExistingSourceAction(jarRoot, library,
+                                                                    JavaUiBundle.message("ivi.attach.source.provider.action.name")));
       }
     }
 
index 076a77fd1e7143dbaefc423d738a8b56c4858bfe..ca070e6fd35d59b2516fc12141f311ef1f937b3c 100644 (file)
@@ -30,7 +30,6 @@ import com.intellij.xml.util.XmlStringUtil;
 import gnu.trove.THashMap;
 import org.eclipse.aether.version.InvalidVersionSpecificationException;
 import org.eclipse.aether.version.Version;
-import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -99,7 +98,7 @@ public class RepositoryAttachDialog extends DialogWrapper {
                                    : JavaUiBundle.message("dialog.title.search.library.in.maven.repositories"));
     myProject = project;
     myProgressIcon.suspend();
-    @Nls final String text = JavaUiBundle.message("repository.attach.dialog.caption.label");
+    final String text = JavaUiBundle.message("repository.attach.dialog.caption.label");
     myCaptionLabel.setText(XmlStringUtil.wrapInHtml(StringUtil.escapeXmlEntities(text)));
     myInfoLabel.setPreferredSize(
       new Dimension(myInfoLabel.getFontMetrics(myInfoLabel.getFont()).stringWidth("Showing: 1000"), myInfoLabel.getPreferredSize().height));
index 5090e2effecf969d1b2e52fa6e3e0df9d61f9bdf..a80b5b33ba9591428982eb00afe51c517c6ec36a 100644 (file)
@@ -25,6 +25,7 @@ import com.intellij.openapi.roots.libraries.ui.LibraryPropertiesEditor;
 import com.intellij.openapi.roots.libraries.ui.LibraryRootsComponentDescriptor;
 import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.idea.maven.utils.library.RepositoryLibraryDescription;
@@ -80,9 +81,10 @@ public class RepositoryLibraryType extends LibraryType<RepositoryLibraryProperti
 
   @NotNull
   @Override
-  public String getDescription(@NotNull RepositoryLibraryProperties properties) {
+  public @Nls String getDescription(@NotNull RepositoryLibraryProperties properties) {
     RepositoryLibraryDescription description = RepositoryLibraryDescription.findDescription(properties);
-    return "Maven: " + description.getDisplayName(properties.getVersion());
+    final String name = description.getDisplayName(properties.getVersion());
+    return JavaUiBundle.message("repository.library.type.maven.description", name);
   }
 
   @Nullable
index 6d188d29fcc8fdf31da8e3bb7e26d0df9a7b3d65..8c05d39d0f8a43974ec4b4a6e23002d8c25d1b07 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptor;
 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.JavaModuleExternalPaths;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.ui.*;
 import com.intellij.ui.components.JBLabel;
@@ -52,7 +53,7 @@ public class AnnotationsEditor extends ModuleElementsEditor {
   }
 
   @Override
-  public String getDisplayName() {
+  public @NlsContexts.ConfigurableName String getDisplayName() {
     return getName();
   }
 
@@ -105,7 +106,7 @@ public class AnnotationsEditor extends ModuleElementsEditor {
     }).setRemoveAction(new AnActionButtonRunnable() {
         @Override
         public void run(AnActionButton button) {
-          final List removedItems = TableUtil.removeSelectedItems(myTable);
+          final List<Object[]> removedItems = TableUtil.removeSelectedItems(myTable);
           if (removedItems.size() > 0) {
             saveData();
           }
@@ -164,7 +165,7 @@ public class AnnotationsEditor extends ModuleElementsEditor {
     }
 
     @Override
-    public Class getColumnClass(int columnIndex) {
+    public Class<TableItem> getColumnClass(int columnIndex) {
       return TableItem.class;
     }
 
@@ -187,7 +188,7 @@ public class AnnotationsEditor extends ModuleElementsEditor {
     }
   }
 
-  public static String getName() {
+  public static @NlsContexts.ConfigurableName String getName() {
     return JavaUiBundle.message("project.roots.external.annotations.tab.title");
   }
 }
index 63e18135e9ad0101cab6a8f265824a165bf05394..40dccdb7b637d41dfef19b166dd16beb7f5eabb0 100644 (file)
@@ -9,6 +9,7 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptor;
 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
 import com.intellij.openapi.fileChooser.FileChooserFactory;
 import com.intellij.openapi.roots.CompilerModuleExtension;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
@@ -23,7 +24,6 @@ import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import javax.accessibility.AccessibleContext;
 import javax.swing.*;
 import javax.swing.event.DocumentEvent;
 import java.awt.*;
@@ -35,8 +35,8 @@ public class BuildElementsEditor extends ModuleElementsEditor {
   private JRadioButton myInheritCompilerOutput;
   private JRadioButton myPerModuleCompilerOutput;
 
-  private CommitableFieldPanel myOutputPathPanel;
-  private CommitableFieldPanel myTestsOutputPathPanel;
+  private CommittableFieldPanel myOutputPathPanel;
+  private CommittableFieldPanel myTestsOutputPathPanel;
   private JCheckBox myCbExcludeOutput;
   private JLabel myOutputLabel;
   private JLabel myTestOutputLabel;
@@ -180,7 +180,7 @@ public class BuildElementsEditor extends ModuleElementsEditor {
     fireModuleConfigurationChanged();
   }
 
-  private CommitableFieldPanel createOutputPathPanel(final String title, final CommitPathRunnable commitPathRunnable) {
+  private CommittableFieldPanel createOutputPathPanel(final @NlsContexts.DialogTitle String title, final CommitPathRunnable commitPathRunnable) {
     final JTextField textField = new ExtendableTextField();
     final FileChooserDescriptor outputPathsChooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
     outputPathsChooserDescriptor.putUserData(LangDataKeys.MODULE_CONTEXT, getModel().getModule());
@@ -223,7 +223,7 @@ public class BuildElementsEditor extends ModuleElementsEditor {
       }
     });
 
-    return new CommitableFieldPanel(textField, null, null, new BrowseFilesListener(textField, title, "", outputPathsChooserDescriptor) {
+    return new CommittableFieldPanel(textField, null, null, new BrowseFilesListener(textField, title, "", outputPathsChooserDescriptor) {
       @Override
       public void actionPerformed(ActionEvent e) {
         super.actionPerformed(e);
@@ -253,7 +253,7 @@ public class BuildElementsEditor extends ModuleElementsEditor {
 
   @Override
   public void moduleStateChanged() {
-    //if content enties tree was changed
+    //if content entries tree was changed
     myCbExcludeOutput.setSelected(getCompilerExtension().isExcludeOutput());
   }
 
@@ -281,15 +281,15 @@ public class BuildElementsEditor extends ModuleElementsEditor {
     void saveUrl(String url);
   }
 
-  private static class CommitableFieldPanel extends FieldPanel {
+  private static class CommittableFieldPanel extends FieldPanel {
     private final Runnable myCommitRunnable;
 
-    CommitableFieldPanel(final JTextField textField,
-                                String labelText,
-                                final String viewerDialogTitle,
-                                ActionListener browseButtonActionListener,
-                                final Runnable documentListener,
-                                final Runnable commitPathRunnable) {
+    CommittableFieldPanel(final JTextField textField,
+                          String labelText,
+                          final String viewerDialogTitle,
+                          ActionListener browseButtonActionListener,
+                          final Runnable documentListener,
+                          final Runnable commitPathRunnable) {
       super(textField, labelText, viewerDialogTitle, browseButtonActionListener, documentListener);
       myCommitRunnable = commitPathRunnable;
     }
index 101b81047ef3dcb79d546ca4001353ebb35ebdb2..7959f277639140a08ddafd3a3f21b025ae4e20d8 100644 (file)
@@ -31,6 +31,7 @@ import com.intellij.openapi.roots.impl.storage.ClasspathStorageProvider;
 import com.intellij.openapi.roots.ui.configuration.classpath.ClasspathPanelImpl;
 import com.intellij.openapi.ui.ComboBox;
 import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.ui.SimpleListCellRenderer;
 import com.intellij.util.ArrayUtilRt;
 import com.intellij.util.ui.JBUI;
@@ -71,7 +72,7 @@ public class ClasspathEditor extends ModuleElementsEditor implements ModuleRootL
   }
 
   @Override
-  public String getDisplayName() {
+  public @NlsContexts.ConfigurableName String getDisplayName() {
     return getName();
   }
 
@@ -187,7 +188,7 @@ public class ClasspathEditor extends ModuleElementsEditor implements ModuleRootL
       return (String)comboBoxClasspathFormat.getSelectedItem();
     }
 
-    private String getModuleClasspathFormat() {
+    private @NlsContexts.Label String getModuleClasspathFormat() {
       return ClassPathStorageUtil.getStorageType(myState.getRootModel().getModule());
     }
 
@@ -208,7 +209,7 @@ public class ClasspathEditor extends ModuleElementsEditor implements ModuleRootL
     }
   }
 
-  public static String getName() {
+  public static @NlsContexts.ConfigurableName String getName() {
     return JavaCompilerBundle.message("modules.classpath.title");
   }
 }
\ No newline at end of file
index 9b9d492a471585640cec9cc08b3ada8a28799b26..ec496fff16be92bbdbe7d0d120b5108ff33cfba2 100644 (file)
@@ -237,9 +237,9 @@ public class ErrorPaneConfigurable extends JPanel implements Configurable, Dispo
 
   private class ShowErrorsUpdate extends Update {
     private final int myCurrentStamp;
-    private final String myText;
+    private final @Nls(capitalization = Nls.Capitalization.Sentence) String myText;
 
-    ShowErrorsUpdate(int currentStamp, String text) {
+    ShowErrorsUpdate(int currentStamp, @Nls(capitalization = Nls.Capitalization.Sentence) String text) {
       super(currentStamp);
       myCurrentStamp = currentStamp;
       myText = text;
index a8ec86a132ac8770c9b351133b0e2b7c84b3ab08..d18200f3e014ce7cb90a3b0340b7602878acb8a6 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.openapi.roots.ui.configuration;
 import com.intellij.compiler.ModuleCompilerUtil;
 import com.intellij.compiler.ModuleSourceSet;
 import com.intellij.compiler.server.impl.BuildProcessCustomPluginsConfiguration;
+import com.intellij.ide.IdeBundle;
 import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleManager;
@@ -32,6 +33,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.*;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.util.Chunk;
 import com.intellij.util.containers.MultiMap;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 
@@ -44,18 +46,18 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
 
   @NotNull
   @Override
-  public String getPresentableText() {
-    return "Project";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableText() {
+    return IdeBundle.message("title.project");
   }
 
   @Override
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return ProjectStructureConfigurable.getInstance(myContext.getProject()).getProjectConfig().getProjectName();
   }
 
   @Override
-  public String getTypeName() {
-    return "Project";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return IdeBundle.message("title.project");
   }
 
   @Override
@@ -92,7 +94,7 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
       final String message;
       final String description;
       if (cycles.size() > 1) {
-        message = "Circular dependencies";
+        message = JavaUiBundle.message("circular.dependencies.message");
         @NonNls final String br = "<br>&nbsp;&nbsp;&nbsp;&nbsp;";
         StringBuilder cyclesString = new StringBuilder();
         for (int i = 0; i < cycles.size(); i++) {
index 0ffbb62768e355418fd4ae6cc1cca8d808d3c60d..079804f4c68d4b788230130961e617f7c8bdcb09 100644 (file)
@@ -11,7 +11,6 @@ import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.ui.roots.IconActionComponent;
 import com.intellij.util.ui.FormBuilder;
-import com.intellij.util.ui.UIUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
@@ -98,7 +97,7 @@ public abstract class JavaResourceRootEditHandlerBase extends ModuleSourceRootEd
       myProperties = properties;
       setTitle(ProjectBundle.message("module.paths.edit.properties.title"));
       myRelativeOutputPathField = new JTextField();
-      myIsGeneratedCheckBox = new JCheckBox(UIUtil.replaceMnemonicAmpersand("For &generated resources"));
+      myIsGeneratedCheckBox = new JCheckBox(JavaUiBundle.message("for.generated.resources"));
       myMainPanel = FormBuilder.createFormBuilder()
         .addLabeledComponent(JavaUiBundle.message("label.relative.output.path"), myRelativeOutputPathField)
         .addComponent(myIsGeneratedCheckBox)
index 25292aa886a4e911929ae5940b7a4886fa1490af..4b19b58049a488ee1506ff6a79a79c695d3892d3 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.roots.ui.configuration;
 
+import com.intellij.CommonBundle;
 import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.fileChooser.FileChooser;
@@ -23,6 +24,7 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.projectRoots.ui.Util;
 import com.intellij.openapi.roots.JavaModuleExternalPaths;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.ui.*;
 import com.intellij.ui.components.JBLabel;
@@ -55,6 +57,7 @@ public class JavadocEditor extends ModuleElementsEditor {
   }
 
   @Override
+  @NlsContexts.ConfigurableName
   public String getDisplayName() {
     return getName();
   }
@@ -125,12 +128,13 @@ public class JavadocEditor extends ModuleElementsEditor {
       }).setRemoveAction(new AnActionButtonRunnable() {
         @Override
         public void run(AnActionButton button) {
-          final List removedItems = TableUtil.removeSelectedItems(myTable);
+          final List<Object[]> removedItems = TableUtil.removeSelectedItems(myTable);
           if (removedItems.size() > 0) {
             saveData();
           }
         }
-      }).setButtonComparator("Add", JavaUiBundle.message("module.javadoc.add.url.button"), "Remove").createPanel();
+      }).setButtonComparator(CommonBundle.message("button.add"), JavaUiBundle.message("module.javadoc.add.url.button"),
+                             CommonBundle.message("button.remove")).createPanel();
 
     final JPanel mainPanel = new JPanel(new BorderLayout());
     mainPanel.add(tablePanel, BorderLayout.CENTER);
@@ -185,7 +189,7 @@ public class JavadocEditor extends ModuleElementsEditor {
     }
 
     @Override
-    public Class getColumnClass(int columnIndex) {
+    public Class<TableItem> getColumnClass(int columnIndex) {
       return TableItem.class;
     }
 
@@ -208,7 +212,7 @@ public class JavadocEditor extends ModuleElementsEditor {
     }
   }
 
-  private static String getName() {
+  private static @NlsContexts.ConfigurableName String getName() {
     return JavaUiBundle.message("module.javadoc.title");
   }
 }
index aedff67bd8502f0aa6afe25868ad6f28d8703a60..11a6a8f49814d45466ff3d4329b90b5bf310502b 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.pom.java.AcceptedLanguageLevelsSettings;
 import com.intellij.pom.java.LanguageLevel;
 import com.intellij.ui.ColoredListCellRenderer;
 import com.intellij.ui.SimpleTextAttributes;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -20,9 +21,9 @@ import javax.swing.*;
  * @author ven
  */
 public abstract class LanguageLevelCombo extends ComboBox<Object> {
-  private final String myDefaultItem;
+  private final @Nls String myDefaultItem;
 
-  public LanguageLevelCombo(String defaultItem) {
+  public LanguageLevelCombo(@Nls String defaultItem) {
     myDefaultItem = defaultItem;
     insertItemAt(myDefaultItem, 0);
     for (LanguageLevel level : LanguageLevel.values()) {
index 39126569c7bd892ddb25e250e75a50b611506d63..eddc30b72d68e27cecbded350b339c05e463a8f1 100644 (file)
 package com.intellij.openapi.roots.ui.configuration;
 
 import com.intellij.icons.AllIcons;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.roots.ProjectModelExternalSource;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.util.ui.JBUI;
 import com.intellij.util.ui.UIUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -35,7 +38,7 @@ public class ModificationOfImportedModelWarningComponent {
     return myLabel;
   }
 
-  public void showWarning(@NotNull String elementDescription, @NotNull ProjectModelExternalSource externalSource) {
+  public void showWarning(@NotNull @Nls String elementDescription, @NotNull ProjectModelExternalSource externalSource) {
     myLabel.setVisible(true);
     myLabel.setBorder(JBUI.Borders.empty(5, 5));
     myLabel.setIcon(AllIcons.General.BalloonWarning);
@@ -43,8 +46,8 @@ public class ModificationOfImportedModelWarningComponent {
   }
 
   @NotNull
-  public static String getWarningText(@NotNull String elementDescription, @NotNull ProjectModelExternalSource externalSource) {
-    return elementDescription + " is imported from " + externalSource.getDisplayName() + ". Any changes made in its configuration may be lost after reimporting.";
+  public static @NlsContexts.Label String getWarningText(@NotNull @Nls String elementDescription, @NotNull ProjectModelExternalSource externalSource) {
+    return JavaUiBundle.message("modification.imported.model.warning.label.text", elementDescription, externalSource.getDisplayName());
   }
 
   public void hideWarning() {
index 1ff4b0b1f5a3cbbc9f47b0e608602c4de968b0f3..0800e33405f1744f0a889b7a1ed40864eb4c8b62 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.openapi.roots.ui.configuration;
 
 import com.intellij.facet.impl.ProjectFacetsConfigurator;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.Disposable;
 import com.intellij.openapi.actionSystem.DataProvider;
 import com.intellij.openapi.actionSystem.LangDataKeys;
@@ -282,7 +283,8 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable {
 
     ProjectModelExternalSource externalSource = ModuleRootManager.getInstance(myModule).getExternalSource();
     if (externalSource != null && isModified()) {
-      myModificationOfImportedModelWarningComponent.showWarning("Module '" + myModule.getName() + "'", externalSource);
+      myModificationOfImportedModelWarningComponent.showWarning(
+        JavaUiBundle.message("project.roots.module.banner.text", myModule.getName()), externalSource);
     }
     else {
       myModificationOfImportedModelWarningComponent.hideWarning();
index 8326918b4e54114272f04cbd9f678696e84a14a7..6d0df347276fbd544ac0ca2d955d3b6b9ba54fc1 100644 (file)
@@ -17,6 +17,7 @@
 package com.intellij.openapi.roots.ui.configuration;
 
 import com.intellij.ide.JavaUiBundle;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.ui.IdeBorderFactory;
 import com.intellij.util.ui.JBUI;
 import com.intellij.util.ui.UIUtil;
@@ -68,6 +69,7 @@ public class OutputEditor extends ModuleElementsEditor {
   }
 
   @Override
+  @NlsContexts.ConfigurableName
   public String getDisplayName() {
     return getName();
   }
@@ -92,7 +94,7 @@ public class OutputEditor extends ModuleElementsEditor {
     return "projectStructure.modules.paths";
   }
 
-  public static String getName() {
+  public static @NlsContexts.ConfigurableName String getName() {
     return JavaUiBundle.message("project.roots.path.tab.title");
   }
 }
index f83b5d918574ad2c2de5156a8108d2563664458c..cee70018002e4b4607d49f76237438968a77b91f 100644 (file)
@@ -29,6 +29,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStr
 import com.intellij.openapi.ui.DetailsComponent;
 import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.util.EmptyRunnable;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vfs.VfsUtilCore;
@@ -39,12 +40,12 @@ import com.intellij.ui.FieldPanel;
 import com.intellij.ui.InsertPathAction;
 import com.intellij.ui.components.fields.ExtendableTextField;
 import com.intellij.util.ui.JBUI;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
-import javax.swing.border.EmptyBorder;
 import javax.swing.event.DocumentEvent;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -149,7 +150,7 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
     myPanel.add(myWholePanel, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST,
                                                      GridBagConstraints.NONE, JBUI.insetsTop(4), 0, 0));
 
-    myPanel.setBorder(new EmptyBorder(0, 10, 0, 10));
+    myPanel.setBorder(JBUI.Borders.empty(0, 10));
     myProjectCompilerOutput.getTextField().getDocument().addDocumentListener(new DocumentAdapter() {
       @Override
       protected void textChanged(@NotNull DocumentEvent e) {
@@ -212,7 +213,7 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
     assert compilerProjectExtension != null : myProject;
 
     if (myProjectName != null && StringUtil.isEmptyOrSpaces(myProjectName.getText())) {
-      throw new ConfigurationException("Please, specify project name!");
+      throw new ConfigurationException(JavaUiBundle.message("project.configurable.dialog.message"));
     }
 
     ApplicationManager.getApplication().runWriteAction(() -> {
@@ -260,7 +261,7 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
   }
 
   @Override
-  public String getBannerSlogan() {
+  public @Nls String getBannerSlogan() {
     return JavaUiBundle.message("project.roots.project.banner.text", myProject.getName());
   }
 
@@ -299,8 +300,12 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
   }
 
   @NotNull
-  public String getProjectName() {
-    return myProjectName != null ? myProjectName.getText().trim() : myProject.getName();
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getProjectName() {
+    if (myProjectName != null) {
+      @NlsSafe final String text = myProjectName.getText();
+      return text.trim();
+    }
+    return myProject.getName();
   }
 
   @Nullable
index 3943f55c770b69052025ab1714b5fe04b7585372..c8d671fd8066f54b7cbc54a0a304cf0fb32cc0dc 100644 (file)
@@ -31,6 +31,7 @@ import com.intellij.openapi.ui.MasterDetailsComponent;
 import com.intellij.openapi.ui.MasterDetailsStateService;
 import com.intellij.openapi.ui.NamedConfigurable;
 import com.intellij.openapi.util.Conditions;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.util.Ref;
 import com.intellij.ui.JBSplitter;
 import com.intellij.ui.TreeSpeedSearch;
@@ -209,10 +210,8 @@ public class ProjectJdksConfigurable extends MasterDetailsComponent {
   }
 
   @Override
-  protected
-  @Nullable
-  String getEmptySelectionString() {
-    return "Select an SDK to view or edit its details here";
+  protected @NlsContexts.StatusText @Nullable String getEmptySelectionString() {
+    return JavaUiBundle.message("project.jdks.configurable.empty.selection.string");
   }
 
   public void selectJdkVersion(JavaSdkVersion requiredJdkVersion) {
index ac96b072245e4afb6e71d5f30faee363c2a2b809..0cd206371444499a7c1c8368d089f4a764b82530 100644 (file)
@@ -312,7 +312,7 @@ public class ProjectStructureConfigurable implements SearchableConfigurable, Pla
   public void reset() {
     // need this to ensure VFS operations will not block because of storage flushing
     // and other maintenance IO tasks run in background
-    AccessToken token = HeavyProcessLatch.INSTANCE.processStarted("Resetting Project Structure");
+    AccessToken token = HeavyProcessLatch.INSTANCE.processStarted(JavaUiBundle.message("project.structure.configurable.reset.text"));
 
     try {
 
index 92bae07e47ece959d91e7df60110d367b8e30e24..854c30418164ccc8c4da48c31638706b1cbf58d6 100644 (file)
@@ -18,8 +18,8 @@ package com.intellij.openapi.roots.ui.configuration.artifacts;
 import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectStructureElementConfigurable;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.packaging.artifacts.Artifact;
-import org.jetbrains.annotations.Nls;
 
 import javax.swing.*;
 
@@ -58,8 +58,7 @@ public abstract class ArtifactConfigurableBase extends ProjectStructureElementCo
   }
 
   @Override
-  @Nls
-  public String getDisplayName() {
+  public @NlsContexts.ConfigurableName String getDisplayName() {
     return getArtifact().getName();
   }
 
index 437fcc0c0c2af1ca0146494c5867528ad3a8f1de..050f278f43b3d80ab05ab3d986609e546362254f 100644 (file)
@@ -198,7 +198,7 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext {
   }
 
   @Override
-  public List<Library> chooseLibraries(final String title) {
+  public List<Library> chooseLibraries(final @NlsContexts.DialogTitle String title) {
     final ChooseLibrariesFromTablesDialog dialog = ChooseLibrariesFromTablesDialog.createDialog(title, getProject(), false);
     return dialog.showAndGet() ? dialog.getSelectedLibraries() : Collections.emptyList();
   }
index e50ea2efece0888739bba2c740c105b517959959..450ecd428667248465c1e14f5b405223524091f6 100644 (file)
@@ -329,8 +329,8 @@ public class ArtifactEditorImpl implements ArtifactEditorEx {
     toolbarActionGroup.add(new RemovePackagingElementAction(this));
     toolbarActionGroup.add(Separator.getInstance());
     toolbarActionGroup.add(new SortElementsToggleAction(this.getLayoutTreeComponent()));
-    toolbarActionGroup.add(new MovePackagingElementAction(myLayoutTreeComponent, "Move Up", "", IconUtil.getMoveUpIcon(), -1));
-    toolbarActionGroup.add(new MovePackagingElementAction(myLayoutTreeComponent, "Move Down", "", IconUtil.getMoveDownIcon(), 1));
+    toolbarActionGroup.add(new MovePackagingElementAction(myLayoutTreeComponent, UIBundle.message("move.up.action.name"), "", IconUtil.getMoveUpIcon(), -1));
+    toolbarActionGroup.add(new MovePackagingElementAction(myLayoutTreeComponent, UIBundle.message("move.down.action.name"), "", IconUtil.getMoveDownIcon(), 1));
     return toolbarActionGroup;
   }
 
@@ -413,7 +413,7 @@ public class ArtifactEditorImpl implements ArtifactEditorEx {
     doReplaceElement(pathToParent, element, replacement);
   }
 
-  private void doReplaceElement(final @NotNull String pathToParent, final @NotNull PackagingElement<?> element, final @Nullable PackagingElement replacement) {
+  private void doReplaceElement(final @NotNull String pathToParent, final @NotNull PackagingElement<?> element, final @Nullable PackagingElement<?> replacement) {
     myLayoutTreeComponent.editLayout(() -> {
       final CompositePackagingElement<?> parent = findCompositeElementByPath(pathToParent);
       if (parent == null) return;
index eaedaa70ec5b8432b1f964ff6bbfe95c2bc0c18b..ca039eaafbec35d6c383a16408b13949a316356d 100644 (file)
@@ -8,6 +8,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStr
 import com.intellij.openapi.ui.popup.JBPopupFactory;
 import com.intellij.openapi.ui.popup.PopupStep;
 import com.intellij.openapi.ui.popup.util.BaseListPopupStep;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.util.containers.ContainerUtil;
 import com.intellij.util.ui.UIUtil;
 import com.intellij.util.ui.update.Activatable;
@@ -25,7 +26,7 @@ public final class ArtifactErrorPanel {
   private final JButton myFixButton;
   private final JLabel myErrorLabel;
   private List<? extends ConfigurationErrorQuickFix> myCurrentQuickFixes;
-  private String myErrorText;
+  private @NlsContexts.Label String myErrorText;
 
   public ArtifactErrorPanel(final ArtifactEditorImpl artifactEditor) {
     myMainPanel = new JPanel(new BorderLayout());
@@ -75,7 +76,7 @@ public final class ArtifactErrorPanel {
     artifactEditor.queueValidation();
   }
 
-  public void showError(@NotNull String message, @NotNull ProjectStructureProblemType.Severity severity,
+  public void showError(@NotNull @NlsContexts.Label String message, @NotNull ProjectStructureProblemType.Severity severity,
                         @NotNull List<? extends ConfigurationErrorQuickFix> quickFixes) {
     myErrorLabel.setVisible(true);
     myErrorLabel.setIcon(severity == ProjectStructureProblemType.Severity.ERROR ? AllIcons.General.Error :
index 7b25a12da6a38b6a88ba274cb43b6f888740ab48..d38af7f902156ed894a017a4573b151dbc0144d8 100644 (file)
@@ -19,6 +19,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.Configurat
 import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureProblemDescription;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureProblemType;
 import com.intellij.packaging.elements.PackagingElement;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -27,7 +28,7 @@ import java.util.List;
 public class ArtifactProblemDescription extends ProjectStructureProblemDescription {
   private final List<PackagingElement<?>> myPathToPlace;
 
-  public ArtifactProblemDescription(@NotNull String message, @NotNull ProjectStructureProblemType problemType,
+  public ArtifactProblemDescription(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @NotNull ProjectStructureProblemType problemType,
                                     @Nullable List<PackagingElement<?>> pathToPlace, @NotNull PlaceInArtifact place,
                                     final List<ConfigurationErrorQuickFix> quickFixList) {
     super(message, null, place, problemType, quickFixList);
index 8aa962aec68f9e148d6efd2d32c0503f91585a3b..66cbe93650f52ee4eab6421ca7d83de80404ff69 100644 (file)
@@ -25,6 +25,7 @@ import com.intellij.packaging.impl.ui.ArtifactProblemsHolderBase;
 import com.intellij.packaging.ui.ArtifactEditor;
 import com.intellij.packaging.ui.ArtifactProblemQuickFix;
 import com.intellij.util.SmartList;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -45,7 +46,7 @@ public class ArtifactProblemsHolderImpl extends ArtifactProblemsHolderBase {
   }
 
   @Override
-  public void registerError(@NotNull String message,
+  public void registerError(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message,
                             @NotNull String problemTypeId,
                             @Nullable List<PackagingElement<?>> pathToPlace,
                             ArtifactProblemQuickFix @NotNull ... quickFixes) {
@@ -53,13 +54,13 @@ public class ArtifactProblemsHolderImpl extends ArtifactProblemsHolderBase {
   }
 
   @Override
-  public void registerWarning(@NotNull String message,
+  public void registerWarning(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message,
                               @NotNull String problemTypeId, @Nullable List<PackagingElement<?>> pathToPlace,
                               ArtifactProblemQuickFix @NotNull ... quickFixes) {
     registerProblem(message, pathToPlace, ProjectStructureProblemType.warning(problemTypeId), quickFixes);
   }
 
-  private void registerProblem(@NotNull String message, @Nullable List<PackagingElement<?>> pathToPlace,
+  private void registerProblem(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @Nullable List<PackagingElement<?>> pathToPlace,
                                final ProjectStructureProblemType problemType, ArtifactProblemQuickFix @NotNull ... quickFixes) {
     String parentPath;
     PackagingElement<?> element;
index befa558c8d6962676ab5bcdbbff4c81b7fa9e6e8..177f3762715bf035cb2182b45a02cdff44d3e517 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.openapi.roots.ui.configuration.artifacts;
 
 import com.intellij.facet.Facet;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.roots.ProjectModelExternalSource;
 import com.intellij.openapi.roots.libraries.Library;
@@ -33,6 +34,7 @@ import com.intellij.packaging.impl.elements.ArtifactPackagingElement;
 import com.intellij.packaging.impl.elements.FacetBasedPackagingElement;
 import com.intellij.packaging.impl.elements.LibraryPackagingElement;
 import com.intellij.packaging.impl.elements.ModulePackagingElement;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -59,7 +61,8 @@ public class ArtifactProjectStructureElement extends ProjectStructureElement {
       if (artifactEditor != null && (artifactEditor.isModified() || isArtifactModified(artifact))) {
         ProjectModelExternalSource externalSource = artifact.getExternalSource();
         if (externalSource != null) {
-          String message = ModificationOfImportedModelWarningComponent.getWarningText("Artifact '" + artifact.getName() + "'", externalSource);
+          String message = ModificationOfImportedModelWarningComponent.getWarningText(
+            JavaUiBundle.message("banner.slogan.artifact.0", artifact.getName()), externalSource);
           artifactProblemsHolder.registerWarning(message, "modification-of-imported-element", null);
         }
       }
@@ -145,13 +148,13 @@ public class ArtifactProjectStructureElement extends ProjectStructureElement {
   }
 
   @Override
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return getActualArtifactName();
   }
 
   @Override
-  public String getTypeName() {
-    return "Artifact";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return JavaUiBundle.message("configurable.artifact.prefix");
   }
 
   @Override
@@ -159,7 +162,7 @@ public class ArtifactProjectStructureElement extends ProjectStructureElement {
     return "artifact:" + getActualArtifactName();
   }
 
-  private String getActualArtifactName() {
+  private @Nls(capitalization = Nls.Capitalization.Sentence) String getActualArtifactName() {
     return myArtifactsStructureContext.getArtifactModel().getArtifactByOriginal(myOriginalArtifact).getName();
   }
 }
index 1ef86a638327af615e700f2d932e6235f6ca3eac..aff4fb76bb6fc85ce03299ff69afd6290f6317b7 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.openapi.roots.ui.configuration.artifacts;
 
 import com.intellij.openapi.ui.VerticalFlowLayout;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.packaging.artifacts.Artifact;
 import com.intellij.packaging.artifacts.ArtifactProperties;
 import com.intellij.packaging.artifacts.ArtifactPropertiesProvider;
@@ -11,6 +12,7 @@ import com.intellij.packaging.ui.ArtifactEditorContext;
 import com.intellij.packaging.ui.ArtifactPropertiesEditor;
 import com.intellij.ui.TabbedPaneWrapper;
 import com.intellij.ui.components.JBScrollPane;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -21,7 +23,7 @@ public class ArtifactPropertiesEditors {
   private static final List<String> STANDARD_TABS_ORDER = Arrays.asList(
     ArtifactPropertiesEditor.VALIDATION_TAB, ArtifactPropertiesEditor.PRE_PROCESSING_TAB, ArtifactPropertiesEditor.POST_PROCESSING_TAB
   );
-  private final Map<String, JPanel> myMainPanels;
+  private final Map<@Nls(capitalization = Nls.Capitalization.Sentence) String, JPanel> myMainPanels;
   private final ArtifactEditorContext myContext;
   private final Artifact myOriginalArtifact;
   private final List<PropertiesEditorInfo> myEditors;
@@ -53,7 +55,7 @@ public class ArtifactPropertiesEditors {
   }
 
   public void addTabs(TabbedPaneWrapper tabbedPane) {
-    List<String> sortedTabs = new ArrayList<>(myMainPanels.keySet());
+    List<@NlsContexts.TabTitle String> sortedTabs = new ArrayList<>(myMainPanels.keySet());
     sortedTabs.sort((o1, o2) -> {
       int i1 = STANDARD_TABS_ORDER.indexOf(o1);
       if (i1 == -1) i1 = STANDARD_TABS_ORDER.size();
@@ -64,7 +66,7 @@ public class ArtifactPropertiesEditors {
       }
       return o1.compareTo(o2);
     });
-    for (String tab : sortedTabs) {
+    for (@NlsContexts.TabTitle String tab : sortedTabs) {
       tabbedPane.addTab(tab, new JBScrollPane(myMainPanels.get(tab)));
     }
   }
index 75d407f249255d8ffb04be035a153e7f4a5163f7..ecf809ddc237b1542c79e45594d354134ef47733 100644 (file)
@@ -3,6 +3,7 @@ package com.intellij.openapi.roots.ui.configuration.artifacts;
 
 import com.intellij.CommonBundle;
 import com.intellij.ide.JavaUiBundle;
+import com.intellij.java.JavaBundle;
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.DefaultActionGroup;
@@ -26,6 +27,7 @@ import com.intellij.openapi.ui.Messages;
 import com.intellij.openapi.ui.NamedConfigurable;
 import com.intellij.openapi.ui.NonEmptyInputValidator;
 import com.intellij.openapi.util.Comparing;
+import com.intellij.openapi.util.NlsActions;
 import com.intellij.packaging.artifacts.*;
 import com.intellij.packaging.elements.ComplexPackagingElementType;
 import com.intellij.packaging.elements.CompositePackagingElement;
@@ -41,7 +43,10 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 
 public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
   private ArtifactsStructureConfigurableContextImpl myPackagingEditorContext;
@@ -252,8 +257,8 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
     final List<? extends ArtifactTemplate> templates = type.getNewArtifactTemplates(myPackagingEditorContext);
     final ArtifactTemplate emptyTemplate = new ArtifactTemplate() {
       @Override
-      public String getPresentableName() {
-        return "Empty";
+      public @Nls(capitalization = Nls.Capitalization.Title) String getPresentableName() {
+        return JavaBundle.message("empty.title");
       }
 
       @Override
@@ -370,7 +375,7 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
     private final ArtifactType myType;
     private final ArtifactTemplate myArtifactTemplate;
 
-    AddArtifactAction(@NotNull ArtifactType type, @NotNull ArtifactTemplate artifactTemplate, final @NotNull String actionText,
+    AddArtifactAction(@NotNull ArtifactType type, @NotNull ArtifactTemplate artifactTemplate, final @NotNull @NlsActions.ActionText String actionText,
                              final Icon icon) {
       super(actionText, null, icon);
       myType = type;
index cd88911bf39125dc41f421793414544f8c7467c7..444d169eb22a54c409471551b805712a68553617 100644 (file)
@@ -4,12 +4,13 @@ package com.intellij.openapi.roots.ui.configuration.artifacts;
 import com.intellij.icons.AllIcons;
 import com.intellij.openapi.options.ConfigurationException;
 import com.intellij.openapi.ui.ex.MultiLineLabel;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.packaging.impl.artifacts.InvalidArtifact;
 
 import javax.swing.*;
 
 public class InvalidArtifactConfigurable extends ArtifactConfigurableBase {
-  private final String myErrorMessage;
+  private final @NlsContexts.Label String myErrorMessage;
 
   public InvalidArtifactConfigurable(InvalidArtifact originalArtifact,
                                      ArtifactsStructureConfigurableContextImpl artifactsStructureContext,
@@ -46,7 +47,7 @@ public class InvalidArtifactConfigurable extends ArtifactConfigurableBase {
     private MultiLineLabel myDescriptionLabel;
     private JLabel myIconLabel;
 
-    private InvalidArtifactComponent(String errorMessage) {
+    private InvalidArtifactComponent(@NlsContexts.Label String errorMessage) {
       myIconLabel.setIcon(AllIcons.General.BalloonError);
       myDescriptionLabel.setText(errorMessage);
     }
index 10899d84a6cce27b7be1105f6d1b08165fd8dee2..3080455577cbf5c6330ac658bc1a6a3c193da53a 100644 (file)
@@ -265,14 +265,8 @@ public class LayoutTreeComponent implements DnDTarget, Disposable {
     }
 
     if (!rootSources.isEmpty()) {
-      final String message;
-      if (rootSources.size() == 1) {
-        final String name = rootSources.iterator().next().getPresentableName();
-        message = "The selected node belongs to '" + name + "' element. Do you want to remove the whole '" + name + "' element from the artifact?";
-      }
-      else {
-        message = "The selected node belongs to " + nodes.size() + " elements. Do you want to remove all these elements from the artifact?";
-      }
+      final String name = rootSources.iterator().next().getPresentableName();
+      final String message = JavaUiBundle.message("layout.tree.check.can.remove.dialog.message", name, rootSources.size());
       final int answer = Messages.showYesNoDialog(myArtifactsEditor.getMainComponent(), message, JavaUiBundle.message(
         "dialog.title.remove.elements"), null);
       if (answer != Messages.YES) return false;
index d86b89e89294d325981f7f841e5e752b1081b038..ae3073c8ada74978d6142265bd321744d965a0ba 100644 (file)
@@ -41,15 +41,9 @@ public class HideContentAction extends DumbAwareAction {
     if (node != null) {
       final Collection<PackagingNodeSource> sources = node.getNodeSources();
       if (!sources.isEmpty()) {
-        String description;
-        if (sources.size() == 1) {
-          description = "Hide Content of '" + sources.iterator().next().getPresentableName() + "'";
-        }
-        else {
-          description = "Hide Content";
-        }
+        final String name = sources.iterator().next().getPresentableName();
         e.getPresentation().setVisible(true);
-        e.getPresentation().setText(description);
+        e.getPresentation().setText(JavaUiBundle.message("action.hide.content.text", name, sources.size()));
         return;
       }
     }
index d6a3e4176b25177f3bc7986f5f83e1bbcb28e406..a25cbe56d5167c877a95dd1e38da6262c134e747 100644 (file)
@@ -18,7 +18,9 @@ package com.intellij.openapi.roots.ui.configuration.artifacts.actions;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.project.DumbAwareAction;
 import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactEditorEx;
+import com.intellij.openapi.util.NlsActions;
 import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
 import java.util.function.Supplier;
@@ -26,7 +28,10 @@ import java.util.function.Supplier;
 public abstract class LayoutTreeActionBase extends DumbAwareAction {
   protected final ArtifactEditorEx myArtifactEditor;
 
-  protected LayoutTreeActionBase(String text, String description, Icon icon, ArtifactEditorEx artifactEditor) {
+  protected LayoutTreeActionBase(@Nullable @NlsActions.ActionText String text,
+                                 @Nullable @NlsActions.ActionDescription String description,
+                                 @Nullable Icon icon,
+                                 @NotNull ArtifactEditorEx artifactEditor) {
     super(text, description, icon);
     myArtifactEditor = artifactEditor;
   }
index aa0540efc290a6b17833ec251991f6853d8e438d..c98fcaa69b5f5743352480adcb01fa7db7039856 100644 (file)
@@ -7,9 +7,11 @@ import com.intellij.openapi.project.DumbAwareAction;
 import com.intellij.openapi.roots.ui.configuration.artifacts.LayoutTreeComponent;
 import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.CompositePackagingElementNode;
 import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.PackagingElementNode;
+import com.intellij.openapi.util.NlsActions;
 import com.intellij.packaging.elements.CompositePackagingElement;
 import com.intellij.packaging.elements.PackagingElement;
 import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
 import java.util.ArrayList;
@@ -20,7 +22,11 @@ public class MovePackagingElementAction extends DumbAwareAction {
   private final LayoutTreeComponent myLayoutTreeComponent;
   private final int myDirection;
 
-  public MovePackagingElementAction(LayoutTreeComponent layoutTreeComponent, String text, String description, Icon icon, int direction) {
+  public MovePackagingElementAction(LayoutTreeComponent layoutTreeComponent,
+                                    @Nullable @NlsActions.ActionText String text,
+                                    @Nullable @NlsActions.ActionDescription String description,
+                                    @Nullable Icon icon,
+                                    int direction) {
     super(text, description, icon);
     myLayoutTreeComponent = layoutTreeComponent;
     myDirection = direction;
index ca956cb753daef0884e93b2803cd33b220756d73..a84f6e94e4ba6fa7b84c63f25d9deec36ef2d69e 100644 (file)
@@ -25,8 +25,10 @@ import org.jetbrains.annotations.NotNull;
 
 public class RemovePackagingElementAction extends LayoutTreeActionBase {
 
-  public RemovePackagingElementAction(ArtifactEditorEx artifactEditor) {
-    super(JavaUiBundle.message("action.name.remove.packaging.element"), JavaUiBundle.message("action.description.remove.packaging.elements"), PlatformIcons.DELETE_ICON,
+  public RemovePackagingElementAction(@NotNull ArtifactEditorEx artifactEditor) {
+    super(JavaUiBundle.message("action.name.remove.packaging.element"),
+          JavaUiBundle.message("action.description.remove.packaging.elements"),
+          PlatformIcons.DELETE_ICON,
           artifactEditor);
   }
 
index ab66248b2ccfc62c006056dabe6651110a558878..dda7d830e0d57f55c1a6fd579cf79a927e26640c 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.roots.ui.configuration.artifacts.actions;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactEditorEx;
@@ -68,7 +69,8 @@ public class SurroundElementWithAction extends LayoutTreeActionBase {
       surroundWith(types[0], parent, selected, treeComponent);
     }
     else {
-      JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep<CompositePackagingElementType>("Surround With...", types) {
+      JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep<CompositePackagingElementType>(
+        JavaUiBundle.message("popup.title.surround.with"), types) {
         @Override
         public Icon getIconFor(CompositePackagingElementType aValue) {
           return aValue.getCreateElementIcon();
index 49e7b2694813edccbbbbcaef5a6f6fc7e060c9ad..3d3865c8768ad30da8b82c72adcffa7baadca8e6 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.roots.ui.configuration.artifacts.nodes;
 
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.packaging.elements.ComplexPackagingElement;
 import com.intellij.packaging.elements.CompositePackagingElement;
 import org.jetbrains.annotations.NotNull;
@@ -57,7 +58,7 @@ public class PackagingNodeSource {
     return myParentSources;
   }
 
-  public String getPresentableName() {
+  public @NlsSafe String getPresentableName() {
     return mySourceElement.createPresentation(mySourceParentNode.getContext()).getPresentableName();
   }
 }
index 98b94d576cd25b9b37a0ad95ae55c446b741d38d..54badf7b79c2dbef714a310ced1661fcb3311b09 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems;
 
 import com.intellij.icons.AllIcons;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.projectView.PresentationData;
 import com.intellij.packaging.artifacts.Artifact;
 import com.intellij.packaging.elements.PackagingElement;
@@ -72,7 +73,7 @@ public class ArtifactsSourceItemsProvider extends PackagingSourceItemsProvider {
       public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes,
                          SimpleTextAttributes commentAttributes) {
         presentationData.setIcon(AllIcons.Nodes.Artifact);
-        presentationData.addText("Artifacts", mainAttributes);
+        presentationData.addText(JavaUiBundle.message("display.name.artifacts"), mainAttributes);
       }
 
       @Override
index 6b65f5a31474ef21c24ef0e611288ed890ba28f0..634202081d7be7179bcf4bcbd712def148d55b1f 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.presentation.VirtualFilePresentation;
 import com.intellij.ide.projectView.PresentationData;
 import com.intellij.openapi.roots.OrderRootType;
@@ -111,7 +112,7 @@ public class LibrarySourceItem extends PackagingSourceItem {
       else {
         if (((LibraryEx)myLibrary).isDisposed()) {
           //todo[nik] disposed library should not be shown in the tree
-          presentationData.addText("Invalid Library", SimpleTextAttributes.ERROR_ATTRIBUTES);
+          presentationData.addText(JavaUiBundle.message("library.source.item.label.invalid.library"), SimpleTextAttributes.ERROR_ATTRIBUTES);
           return;
         }
         final VirtualFile[] files = myLibrary.getFiles(OrderRootType.CLASSES);
@@ -121,7 +122,7 @@ public class LibrarySourceItem extends PackagingSourceItem {
           presentationData.addText(file.getName(), mainAttributes);
         }
         else {
-          presentationData.addText("Empty Library", SimpleTextAttributes.ERROR_ATTRIBUTES);
+          presentationData.addText(JavaUiBundle.message("library.source.item.label.empty.library"), SimpleTextAttributes.ERROR_ATTRIBUTES);
         }
       }
     }
index 0cee9dfb4c0754397434825189fb2941eb99c63e..bfe44a5b271c18660821c820078a1eb6c58c7d71 100644 (file)
@@ -16,6 +16,8 @@
 package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems;
 
 import com.intellij.ide.projectView.PresentationData;
+import com.intellij.openapi.util.NlsContexts;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.ui.ArtifactEditorContext;
 import com.intellij.packaging.ui.PackagingSourceItem;
@@ -29,10 +31,10 @@ import java.util.Collections;
 import java.util.List;
 
 public class ModuleGroupItem extends PackagingSourceItem {
-  private final String myGroupName;
+  private final @NlsSafe String myGroupName;
   private final List<String> myPath;
 
-  public ModuleGroupItem(@NotNull List<String> path) {
+  public ModuleGroupItem(@NotNull List<@NlsSafe String> path) {
     super(false);
     myGroupName = path.get(path.size() - 1);
     myPath = path;
@@ -63,9 +65,9 @@ public class ModuleGroupItem extends PackagingSourceItem {
   }
 
   private static class ModuleGroupSourceItemPresentation extends SourceItemPresentation {
-    private final String myGroupName;
+    private final @NlsContexts.Label String myGroupName;
 
-    ModuleGroupSourceItemPresentation(String groupName) {
+    ModuleGroupSourceItemPresentation(@NlsContexts.Label String groupName) {
       myGroupName = groupName;
     }
 
index 8af8189a40b0dd8779bc59601f747be8a243274b..d939811fa4f740d1d14503332b6b83f9ccb3fbf3 100644 (file)
 package com.intellij.openapi.roots.ui.configuration.classpath;
 
 import com.intellij.openapi.ui.popup.PopupStep;
+import com.intellij.openapi.util.NlsContexts;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
 
 abstract class AddItemPopupAction<ItemType> extends ChooseAndAddAction<ItemType> {
-  private final String myTitle;
+  private final @Nls(capitalization = Nls.Capitalization.Title) String myTitle;
   private final Icon myIcon;
   private final int myIndex;
 
-  AddItemPopupAction(ClasspathPanel classpathPanel, int index, String title, Icon icon) {
+  AddItemPopupAction(ClasspathPanel classpathPanel,
+                     int index,
+                     @Nls(capitalization = Nls.Capitalization.Title) String title,
+                     Icon icon) {
     super(classpathPanel);
     myTitle = title;
     myIcon = icon;
@@ -41,7 +46,7 @@ abstract class AddItemPopupAction<ItemType> extends ChooseAndAddAction<ItemType>
     return null;
   }
 
-  public String getTitle() {
+  public @NlsContexts.DialogTitle String getTitle() {
     return myTitle;
   }
 
index f0181b4fc432a44d0794896ea978a5b1ca722c6b..b038ac9365d5c3c855d79c4fb3a14dbe98b02eb0 100644 (file)
@@ -30,6 +30,7 @@ import com.intellij.openapi.ui.Messages;
 import com.intellij.openapi.ui.popup.PopupStep;
 import com.intellij.util.PlatformIcons;
 import com.intellij.util.ui.classpath.ChooseLibrariesFromTablesDialog;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -39,8 +40,10 @@ import java.util.function.Predicate;
 class AddLibraryDependencyAction extends AddItemPopupAction<Library> {
   private final StructureConfigurableContext myContext;
 
-  AddLibraryDependencyAction(ClasspathPanel classpathPanel, final int index, final String title,
-                                    final StructureConfigurableContext context) {
+  AddLibraryDependencyAction(ClasspathPanel classpathPanel,
+                             final int index,
+                             final @Nls(capitalization = Nls.Capitalization.Title) String title,
+                             final StructureConfigurableContext context) {
     super(classpathPanel, index, title, PlatformIcons.LIBRARY_ICON);
     myContext = context;
   }
@@ -81,7 +84,7 @@ class AddLibraryDependencyAction extends AddItemPopupAction<Library> {
     return false;
   }
 
-  private java.util.function.Predicate<Library> getNotAddedSuitableLibrariesCondition() {
+  private Predicate<Library> getNotAddedSuitableLibrariesCondition() {
     ProjectFacetsConfigurator facetsConfigurator = myContext.getModulesConfigurator().getFacetsConfigurator();
     return LibraryEditingUtil.getNotAddedSuitableLibrariesCondition(myClasspathPanel.getRootModel(), facetsConfigurator);
   }
index bc6dfabe7edb0941c816f04040dcf349dab32801..cbf806901df8809af2a75f3e87312c2f997c3b30 100644 (file)
@@ -23,6 +23,7 @@ import com.intellij.packageDependencies.actions.AnalyzeDependenciesOnSpecifiedTa
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.search.GlobalSearchScope;
 import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.*;
@@ -76,7 +77,7 @@ class AnalyzeModuleDependencyAction extends AnAction {
 
         List<OrderEntry> usedEntries = usedScopes.stream().map(additionalScopes::get).filter(Objects::nonNull).distinct().collect(Collectors.toList());
         if (usedEntries.isEmpty()) {
-          String message = "No code dependencies were found." + generateSkipImportsWarning() + " Would you like to remove the dependency?";
+          final String message = JavaUiBundle.message("analyze.module.dependency.action.dialog.message.no.dependency.found", generateSkipImportsWarning());
           if (Messages.showOkCancelDialog(myProject, message, getTemplateText(), CommonBundle.message("button.remove"),
                                           Messages.getCancelButton(),
                                           Messages.getWarningIcon()) == Messages.OK) {
@@ -85,18 +86,27 @@ class AnalyzeModuleDependencyAction extends AnAction {
           return false;
         }
 
-        String usedExportedEntriesText = "'" + usedEntries.get(0).getPresentableName() + "'";
-        if (usedEntries.size() == 2) {
-          usedExportedEntriesText += " and '" + usedEntries.get(1).getPresentableName() + "'";
+        final String firstEntry = usedEntries.get(0).getPresentableName();
+        final List<OrderEntry> tailEntries;
+        final String secondEntry;
+        if (usedEntries.size() > 1) {
+          tailEntries = usedEntries.subList(1, usedEntries.size() - 1);
+          secondEntry = usedEntries.get(1).getPresentableName();
         }
-        else if (usedEntries.size() > 2) {
-          usedExportedEntriesText += " and " + (usedEntries.size() - 1) + " more dependencies";
+        else {
+          tailEntries = Collections.emptyList();
+          secondEntry = null;
         }
 
-        String replacementText = usedEntries.size() == 1 ? "a direct dependency on '" + usedEntries.get(0).getPresentableName() + "'" : "direct dependencies";
-        String message = "No direct code dependencies were found." + generateSkipImportsWarning() + "\nHowever " + usedExportedEntriesText + " exported by '"
-                         + StringUtil.decapitalize(selectedEntry.getPresentableName()) + "' " + (usedEntries.size() > 1 ? "are" : "is") + " used in code.\n" +
-                         "Do you want to replace dependency on '" + selectedEntry.getPresentableName() + "' by " + replacementText + "?";
+        final String usedExportedEntriesText = JavaUiBundle.message("analyze.module.dependency.exported.entries", firstEntry, secondEntry, tailEntries.size());
+        final String replacementText = JavaUiBundle.message("analyze.module.dependency.replacement.text", firstEntry, usedEntries.size());
+        final String message = JavaUiBundle.message("analyze.module.dependency.replace.dialog.message",
+                                                    generateSkipImportsWarning(),
+                                                    usedExportedEntriesText,
+                                                    StringUtil.decapitalize(selectedEntry.getPresentableName()),
+                                                    usedEntries.size(),
+                                                    selectedEntry.getPresentableName(),
+                                                    replacementText);
         String[] options = {"Replace", "Show Dependencies", Messages.getCancelButton()};
         switch (Messages.showDialog(myProject, message, getTemplateText(), options, 0, Messages.getWarningIcon())) {
           case 0:
@@ -116,7 +126,7 @@ class AnalyzeModuleDependencyAction extends AnAction {
     }.analyze();
   }
 
-  private String generateSkipImportsWarning() {
+  private @Nls(capitalization = Nls.Capitalization.Sentence) String generateSkipImportsWarning() {
     if (DependencyVisitorFactory.VisitorOptions.fromSettings(myPanel.getProject()).skipImports()) {
       return " " + CodeInsightBundle.message("dependencies.in.imports.message");
     }
index a8c8f0de563162e059c0e901763b025fb7272793..0d9fc3b22920f21585212569e688765633ce2646 100644 (file)
@@ -107,7 +107,7 @@ public class ClasspathPanelImpl extends JPanel implements ClasspathPanel {
     myEntryTable.setDefaultRenderer(ClasspathTableItem.class, new TableItemRenderer(getStructureConfigurableContext()));
     myEntryTable.setDefaultRenderer(Boolean.class, new ExportFlagRenderer(myEntryTable.getDefaultRenderer(Boolean.class)));
 
-    JComboBox scopeEditor = new ComboBox<>(new EnumComboBoxModel<>(DependencyScope.class));
+    JComboBox<DependencyScope> scopeEditor = new ComboBox<>(new EnumComboBoxModel<>(DependencyScope.class));
     myEntryTable.setDefaultEditor(DependencyScope.class, new DefaultCellEditor(scopeEditor));
     myEntryTable.setDefaultRenderer(DependencyScope.class, new ComboBoxTableRenderer<DependencyScope>(DependencyScope.values()) {
         @Override
@@ -346,11 +346,6 @@ public class ClasspathPanelImpl extends JPanel implements ClasspathPanel {
       }
     };
 
-    //addButton.setShortcut(CustomShortcutSet.fromString("alt A", "INSERT"));
-    //removeButton.setShortcut(CustomShortcutSet.fromString("alt DELETE"));
-    //upButton.setShortcut(CustomShortcutSet.fromString("alt UP"));
-    //downButton.setShortcut(CustomShortcutSet.fromString("alt DOWN"));
-
     final ToolbarDecorator decorator = ToolbarDecorator.createDecorator(myEntryTable);
     AnActionButtonUpdater moveUpDownUpdater = e -> {
       for (RowSorter.SortKey key : myEntryTable.getRowSorter().getSortKeys()) {
@@ -395,7 +390,9 @@ public class ClasspathPanelImpl extends JPanel implements ClasspathPanel {
               return "&" + value.getIndex() + "  " + value.getTitle();
             }
           });
-        popup.show(button.getPreferredPopupPoint());
+        final RelativePoint point = button.getPreferredPopupPoint();
+        if (point == null) return;
+        popup.show(point);
       }
     })
       .setRemoveAction(new AnActionButtonRunnable() {
@@ -456,7 +453,7 @@ public class ClasspathPanelImpl extends JPanel implements ClasspathPanel {
     ModuleStructureConfigurable.getInstance(myState.getProject()).getTree().repaint();
   }
 
-  private void removeSelectedItems(final List removedRows) {
+  private void removeSelectedItems(final List<Object[]> removedRows) {
     if (removedRows.isEmpty()) {
       return;
     }
index ae9993f40464dbbc7238b3956a0af8337bcedf72..7a198e18be25147eba61db8299a758ddcc202b0a 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.openapi.roots.ui.configuration.classpath;
 import com.intellij.openapi.roots.*;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
 import com.intellij.openapi.util.Comparing;
+import com.intellij.openapi.util.NlsContexts;
 import org.jetbrains.annotations.Nullable;
 
 class ClasspathTableItem<T extends OrderEntry> {
@@ -89,7 +90,7 @@ class ClasspathTableItem<T extends OrderEntry> {
   }
 
   @Nullable
-  public String getTooltipText() {
+  public @NlsContexts.Tooltip String getTooltipText() {
     return null;
   }
 
index 5cc936562800a1c6f471ceee605c0f988396c254..2f60e980265b9d738b0a9a44d7437fca6dc85e7f 100644 (file)
@@ -23,9 +23,11 @@ import com.intellij.openapi.roots.OrderEntry;
 import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationState;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
 import com.intellij.openapi.util.Comparing;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.util.ui.ColumnInfo;
 import com.intellij.util.ui.ItemRemovable;
 import com.intellij.util.ui.ListTableModel;
+import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
@@ -35,11 +37,9 @@ import java.util.Comparator;
 import java.util.List;
 
 class ClasspathTableModel extends ListTableModel<ClasspathTableItem<?>> implements ItemRemovable {
-  private static final ColumnInfo<ClasspathTableItem<?>, Boolean> EXPORT_COLUMN_INFO = new ColumnInfo<ClasspathTableItem<?>, Boolean>(
-    getExportColumnName()) {
-    @Nullable
+  private static final ColumnInfo<ClasspathTableItem<?>, Boolean> EXPORT_COLUMN_INFO = new ColumnInfo<ClasspathTableItem<?>, Boolean>(getExportColumnName()) {
     @Override
-    public Boolean valueOf(ClasspathTableItem<?> item) {
+    public @NotNull Boolean valueOf(ClasspathTableItem<?> item) {
       return item.isExported();
     }
 
@@ -54,7 +54,7 @@ class ClasspathTableModel extends ListTableModel<ClasspathTableItem<?>> implemen
     }
 
     @Override
-    public Class getColumnClass() {
+    public Class<Boolean> getColumnClass() {
       return Boolean.class;
     }
   };
@@ -62,8 +62,7 @@ class ClasspathTableModel extends ListTableModel<ClasspathTableItem<?>> implemen
     (o1, o2) -> o1.getDisplayName().compareToIgnoreCase(o2.getDisplayName());
   private static final Comparator<ClasspathTableItem<?>> CLASSPATH_ITEM_SCOPE_COMPARATOR =
     (o1, o2) -> Comparing.compare(o1.getScope(), o2.getScope(), DEPENDENCY_SCOPE_COMPARATOR);
-  private static final ColumnInfo<ClasspathTableItem<?>, DependencyScope> SCOPE_COLUMN_INFO = new ColumnInfo<ClasspathTableItem<?>, DependencyScope>(
-    getScopeColumnName()) {
+  private static final ColumnInfo<ClasspathTableItem<?>, DependencyScope> SCOPE_COLUMN_INFO = new ColumnInfo<ClasspathTableItem<?>, DependencyScope>(getScopeColumnName()) {
     @Nullable
     @Override
     public DependencyScope valueOf(ClasspathTableItem<?> item) {
@@ -81,13 +80,12 @@ class ClasspathTableModel extends ListTableModel<ClasspathTableItem<?>> implemen
     }
 
     @Override
-    public Class getColumnClass() {
+    public Class<DependencyScope> getColumnClass() {
       return DependencyScope.class;
     }
 
-    @Nullable
     @Override
-    public Comparator<ClasspathTableItem<?>> getComparator() {
+    public @NotNull Comparator<ClasspathTableItem<?>> getComparator() {
       return CLASSPATH_ITEM_SCOPE_COMPARATOR;
     }
   };
@@ -177,16 +175,16 @@ class ClasspathTableModel extends ListTableModel<ClasspathTableItem<?>> implemen
     }
 
     @Override
-    public Class getColumnClass() {
+    public Class<?> getColumnClass() {
       return ClasspathTableItem.class;
     }
   }
 
-  private static String getScopeColumnName() {
+  private static @NlsContexts.ColumnName String getScopeColumnName() {
     return JavaUiBundle.message("modules.order.export.scope.column");
   }
 
-  static String getExportColumnName() {
+  static @NlsContexts.ColumnName String getExportColumnName() {
     return JavaUiBundle.message("modules.order.export.export.column");
   }
 }
index 78c2454d4690cdca69fef0d0f659fa638faaab89..c71e3fd691d2682e26b9be9c548c98f72a6ce921 100644 (file)
@@ -22,8 +22,11 @@ import com.intellij.openapi.roots.impl.libraries.LibraryEx;
 import com.intellij.openapi.roots.libraries.Library;
 import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
-import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.xml.util.XmlStringUtil;
+import com.intellij.openapi.util.NlsContexts;
+import com.intellij.openapi.util.NlsSafe;
+import com.intellij.openapi.util.text.HtmlBuilder;
+import com.intellij.openapi.util.text.HtmlChunk;
+import com.intellij.util.containers.ContainerUtil;
 
 import java.util.List;
 
@@ -41,7 +44,7 @@ class LibraryItem extends ClasspathTableItem<LibraryOrderEntry> {
   }
 
   @Override
-  public String getTooltipText() {
+  public @NlsContexts.Tooltip String getTooltipText() {
     if (myEntry == null) return null;
 
     final Library library = myEntry.getLibrary();
@@ -55,9 +58,11 @@ class LibraryItem extends ClasspathTableItem<LibraryOrderEntry> {
       }
     }
 
-    final List<String> descriptions = LibraryPresentationManager.getInstance().getDescriptions(library, myContext);
+    final List<@NlsSafe String> descriptions = LibraryPresentationManager.getInstance().getDescriptions(library, myContext);
     if (descriptions.isEmpty()) return null;
 
-    return XmlStringUtil.wrapInHtml(StringUtil.join(descriptions, "<br>"));
+    final HtmlBuilder builder = new HtmlBuilder().appendWithSeparators(HtmlChunk.br(),
+                                                                       ContainerUtil.map(descriptions, HtmlChunk::text));
+    return builder.wrapWithHtmlBody().toString();
   }
 }
index 184e8c4525b71de34da62fc29bb1bbe337b27ab2..3b92f7a1a905ebf2f14df986d904f00fc96549fa 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.openapi.roots.libraries.LibraryTable;
 import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesModifiableModel;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.SystemInfo;
 import com.intellij.ui.SimpleTextAttributes;
 import com.intellij.util.ui.classpath.ChooseLibrariesFromTablesDialog;
@@ -21,10 +22,7 @@ import org.jetbrains.annotations.Nullable;
 import javax.swing.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 import java.util.function.Predicate;
 
 public class ProjectStructureChooseLibrariesDialog extends ChooseLibrariesFromTablesDialog {
@@ -36,8 +34,8 @@ public class ProjectStructureChooseLibrariesDialog extends ChooseLibrariesFromTa
 
   public ProjectStructureChooseLibrariesDialog(ClasspathPanel classpathPanel,
                                                StructureConfigurableContext context,
-                                               java.util.function.Predicate<Library> acceptedLibraries) {
-    super(classpathPanel.getComponent(), "Choose Libraries", classpathPanel.getProject(), true);
+                                               Predicate<Library> acceptedLibraries) {
+    super(classpathPanel.getComponent(), JavaUiBundle.message("project.structure.dialog.title.choose.libraries"), classpathPanel.getProject(), true);
     myClasspathPanel = classpathPanel;
     myContext = context;
     myAcceptedLibraries = acceptedLibraries;
@@ -105,7 +103,7 @@ public class ProjectStructureChooseLibrariesDialog extends ChooseLibrariesFromTa
         return model.getLibraryEditor(library).getName();
       }
     }
-    return library.getName();
+    return Objects.toString(library.getName());
   }
 
   @Override
@@ -134,7 +132,7 @@ public class ProjectStructureChooseLibrariesDialog extends ChooseLibrariesFromTa
 
   private static class LibraryEditorDescriptor extends LibrariesTreeNodeBase<Library> {
     protected LibraryEditorDescriptor(final Project project, final NodeDescriptor parentDescriptor, final Library element,
-                                      String libraryName, StructureConfigurableContext context) {
+                                      @NlsSafe String libraryName, StructureConfigurableContext context) {
       super(project, parentDescriptor, element);
       final PresentationData templatePresentation = getTemplatePresentation();
       Icon icon = LibraryPresentationManager.getInstance().getNamedLibraryIcon(element, context);
index dc621c117007dde7bd03bae1f8810ea305af9089..72c268fb9387850ea9638d1433931547249194d4 100644 (file)
@@ -21,7 +21,9 @@ import com.intellij.openapi.roots.libraries.Library;
 import com.intellij.openapi.roots.libraries.LibraryKind;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -44,10 +46,10 @@ public abstract class LibraryPresentationManager {
   public abstract List<Icon> getCustomIcons(@NotNull Library library, @Nullable StructureConfigurableContext context);
 
   @NotNull
-  public abstract List<String> getDescriptions(@NotNull Library library, StructureConfigurableContext context);
+  public abstract List<@NlsSafe String> getDescriptions(@NotNull Library library, StructureConfigurableContext context);
 
   @NotNull
-  public abstract List<String> getDescriptions(VirtualFile @NotNull [] classRoots, Set<? extends LibraryKind> excludedKinds);
+  public abstract List<@Nls String> getDescriptions(VirtualFile @NotNull [] classRoots, Set<? extends LibraryKind> excludedKinds);
 
   public abstract List<Library> getLibraries(@NotNull Set<? extends LibraryKind> kinds, @NotNull Project project, @Nullable StructureConfigurableContext context);
 
index 52e1340f23828a65c8f04c1835f70d989e71495d..e3c61fee59b885f6560fd39c3a56d6130db6cd42 100644 (file)
@@ -13,6 +13,7 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.util.PlatformIcons;
 import com.intellij.util.SmartList;
 import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -142,8 +143,8 @@ final class LibraryPresentationManagerImpl extends LibraryPresentationManager im
 
   @NotNull
   @Override
-  public List<String> getDescriptions(VirtualFile @NotNull [] classRoots, final Set<? extends LibraryKind> excludedKinds) {
-    final SmartList<String> result = new SmartList<>();
+  public List<@Nls String> getDescriptions(VirtualFile @NotNull [] classRoots, final Set<? extends LibraryKind> excludedKinds) {
+    final SmartList<@Nls String> result = new SmartList<>();
     LibraryDetectionManager.getInstance().processProperties(Arrays.asList(classRoots), new LibraryDetectionManager.LibraryPropertiesProcessor() {
       @Override
       public <P extends LibraryProperties> boolean processProperties(@NotNull LibraryKind kind, @NotNull P properties) {
index 3f5ae43edb170591295ce4d66bbd72d0d64d1589..3b371e45f431a1b6224e291f9a0259232f1a32e9 100644 (file)
@@ -19,6 +19,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesModifiab
 import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectLibrariesConfigurable;
 import com.intellij.openapi.ui.MasterDetailsComponent;
+import com.intellij.openapi.util.NlsActions;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.util.PlatformIcons;
 import org.jetbrains.annotations.NotNull;
@@ -36,7 +37,11 @@ public final class CreateNewLibraryAction extends DumbAwareAction {
   private final BaseLibrariesConfigurable myLibrariesConfigurable;
   private final Project myProject;
 
-  private CreateNewLibraryAction(@NotNull String text, @Nullable Icon icon, @Nullable LibraryType type, @NotNull BaseLibrariesConfigurable librariesConfigurable, final @NotNull Project project) {
+  private CreateNewLibraryAction(@NotNull @NlsActions.ActionText String text,
+                                 @Nullable Icon icon,
+                                 @Nullable LibraryType type,
+                                 @NotNull BaseLibrariesConfigurable librariesConfigurable,
+                                 final @NotNull Project project) {
     super(text, null, icon);
     myType = type;
     myLibrariesConfigurable = librariesConfigurable;
@@ -76,7 +81,9 @@ public final class CreateNewLibraryAction extends DumbAwareAction {
     return configuration;
   }
 
-  public static AnAction[] createActionOrGroup(@NotNull String text, @NotNull BaseLibrariesConfigurable librariesConfigurable, final @NotNull Project project) {
+  public static AnAction[] createActionOrGroup(@NotNull @NlsActions.ActionText String text,
+                                               @NotNull BaseLibrariesConfigurable librariesConfigurable,
+                                               final @NotNull Project project) {
     final LibraryType<?>[] extensions = LibraryType.EP_NAME.getExtensions();
     List<LibraryType<?>> suitableTypes = new ArrayList<>();
     if (librariesConfigurable instanceof ProjectLibrariesConfigurable || !project.isDefault()) {
index ccb31e072b804175ff8c3dee64b88403ac59de40..17b1cca37e0297ec39d94393adf2b8198de82568 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.openapi.progress.ProgressIndicator;
 import com.intellij.openapi.progress.Task;
 import com.intellij.openapi.ui.MessageDialogBuilder;
 import com.intellij.openapi.ui.Messages;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.SystemInfo;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vfs.VirtualFile;
@@ -47,7 +48,7 @@ public final class JavadocQuarantineStatusCleaner {
   public static void cleanIfNeeded(VirtualFile @NotNull ... docFolders) {
     if (docFolders.length > 0 && SystemInfo.isMac) {
       ApplicationManager.getApplication().executeOnPooledThread(() -> {
-        List<String> quarantined = Stream.of(docFolders)
+        List<@NlsSafe String> quarantined = Stream.of(docFolders)
           .filter(f -> f.isInLocalFileSystem() && f.isDirectory() && XAttrUtil.getXAttr(f.getPath(), QUARANTINE_ATTRIBUTE) != null)
           .map(VirtualFile::getPath)
           .collect(Collectors.toList());
@@ -64,11 +65,11 @@ public final class JavadocQuarantineStatusCleaner {
     }
   }
 
-  private static void cleanQuarantineStatusInBackground(List<String> paths) {
+  private static void cleanQuarantineStatusInBackground(List<@NlsSafe String> paths) {
     new Task.Backgroundable(null, JavaUiBundle.message("quarantine.clean.progress"), true) {
       @Override
       public void run(@NotNull ProgressIndicator indicator) {
-        for (String path : paths) {
+        for (@NlsSafe String path : paths) {
           indicator.checkCanceled();
           indicator.setText2(path);
           try (Stream<Path> s = Files.walk(Paths.get(path))) {
index 2a5a2e4d79569cf52cd11d02cd7f6ea2955aa422..93ab6d3de7291794f72665a0f209d88c837ffa8a 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent;
 import com.intellij.openapi.roots.libraries.ui.LibraryPropertiesEditor;
 import com.intellij.util.ui.JBUI;
 import com.intellij.util.ui.UIUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -37,7 +38,7 @@ public abstract class LibraryPropertiesEditorBase<P extends LibraryProperties, T
   protected final T myLibraryType;
 
   protected LibraryPropertiesEditorBase(final LibraryEditorComponent<P> editorComponent,
-                                        T libraryType, @Nullable String editButtonText) {
+                                        T libraryType, @Nullable @Nls String editButtonText) {
     myEditorComponent = editorComponent;
     myLibraryType = libraryType;
     updateDescription();
index be56b7fb0ab9398c48a2e44f2d5d2fc8f9379b73..b23a9e952df10608f7ae42f0208d6cd626f5e933 100644 (file)
@@ -29,6 +29,8 @@ import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentation
 import com.intellij.openapi.ui.ex.MultiLineLabel;
 import com.intellij.openapi.ui.popup.JBPopupFactory;
 import com.intellij.openapi.util.Computable;
+import com.intellij.openapi.util.NlsActions;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.vfs.*;
 import com.intellij.openapi.wm.IdeFocusManager;
 import com.intellij.ui.AnActionButton;
@@ -44,6 +46,7 @@ import com.intellij.util.containers.FilteringIterator;
 import com.intellij.util.ui.JBUI;
 import com.intellij.util.ui.tree.TreeModelAdapter;
 import com.intellij.util.ui.tree.TreeUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -79,7 +82,7 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
   private Module myContextModule;
   private LibraryRootsComponent.AddExcludedRootActionButton myAddExcludedRootActionButton;
   private StructureTreeModel<AbstractTreeStructure> myTreeModel;
-  private LibraryRootsComponentDescriptor.RootRemovalHandler myRootRemovalHandler;
+  private final LibraryRootsComponentDescriptor.RootRemovalHandler myRootRemovalHandler;
 
   public LibraryRootsComponent(@Nullable Project project, @NotNull LibraryEditor libraryEditor) {
     this(project, new Computable.PredefinedValueComputable<>(libraryEditor));
@@ -125,18 +128,19 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
   }
 
   public void updatePropertiesLabel() {
-    StringBuilder text = new StringBuilder();
+    StringBuilder sb = new StringBuilder();
     final LibraryType<?> type = getLibraryEditor().getType();
     final Set<LibraryKind> excluded =
       type != null ? Collections.singleton(type.getKind()) : Collections.emptySet();
-    for (String description : LibraryPresentationManager.getInstance().getDescriptions(getLibraryEditor().getFiles(OrderRootType.CLASSES),
-                                                                                       excluded)) {
-      if (text.length() > 0) {
-        text.append("\n");
+    for (@Nls String description : LibraryPresentationManager.getInstance().getDescriptions(getLibraryEditor().getFiles(OrderRootType.CLASSES),
+                                                                                            excluded)) {
+      if (sb.length() > 0) {
+        sb.append("\n");
       }
-      text.append(description);
+      sb.append(description);
     }
-    myPropertiesLabel.setText(text.toString());
+    @NlsSafe final String text = sb.toString();
+    myPropertiesLabel.setText(text);
   }
 
   private void init(AbstractTreeStructure treeStructure) {
@@ -232,6 +236,7 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
     toolbarDecorator.setAddAction(new AnActionButtonRunnable() {
       @Override
       public void run(AnActionButton button) {
+        if (button.getPreferredPopupPoint() == null) return;
         AttachFilesAction attachFilesAction = new AttachFilesAction(myDescriptor.getAttachFilesActionName());
         if (popupItems.isEmpty()) {
           attachFilesAction.perform();
@@ -399,7 +404,7 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
   }
 
   private class AttachFilesAction extends AttachItemActionBase {
-    AttachFilesAction(String title) {
+    AttachFilesAction(@NlsActions.ActionText String title) {
       super(title);
     }
 
@@ -418,7 +423,7 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
   }
 
   public abstract class AttachItemActionBase extends DumbAwareAction {
-    protected AttachItemActionBase(String text) {
+    protected AttachItemActionBase(@NlsActions.ActionText String text) {
       super(text);
     }
 
@@ -447,7 +452,7 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
   private class AttachItemAction extends AttachItemActionBase {
     private final AttachRootButtonDescriptor myDescriptor;
 
-    protected AttachItemAction(AttachRootButtonDescriptor descriptor, String title, final Icon icon) {
+    protected AttachItemAction(AttachRootButtonDescriptor descriptor, @NlsActions.ActionText String title, final Icon icon) {
       super(title);
       getTemplatePresentation().setIcon(icon);
       myDescriptor = descriptor;
@@ -510,7 +515,14 @@ public class LibraryRootsComponent implements Disposable, LibraryEditorComponent
     ProjectModelExternalSource externalSource = libraryEditor.getExternalSource();
     if (externalSource != null && hasChanges()) {
       String name = libraryEditor instanceof ExistingLibraryEditor ? ((ExistingLibraryEditor)libraryEditor).getLibrary().getName() : libraryEditor.getName();
-      myModificationOfImportedModelWarningComponent.showWarning(name != null ? "Library '" + name + "'" : "Library", externalSource);
+      final String description;
+      if (name != null) {
+        description = JavaUiBundle.message("library.0", name);
+      }
+      else {
+        description = JavaUiBundle.message("configurable.library.prefix");
+      }
+      myModificationOfImportedModelWarningComponent.showWarning(description, externalSource);
     }
     else {
       myModificationOfImportedModelWarningComponent.hideWarning();
index 63b8f3d87b658b533881668c03de198d069d32b1..c0c8ca4ec5d7c6f958839d03735e72f96ad9b53f 100644 (file)
@@ -5,6 +5,7 @@ import com.intellij.ide.util.treeView.NodeDescriptor;
 import com.intellij.ui.ColoredTreeCellRenderer;
 import com.intellij.ui.SimpleTextAttributes;
 import com.intellij.util.ui.StartupUiUtil;
+import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
 import javax.swing.tree.DefaultMutableTreeNode;
@@ -12,11 +13,11 @@ import java.awt.*;
 
 public class LibraryTreeRenderer extends ColoredTreeCellRenderer {
     @Override
-    public void customizeCellRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+    public void customizeCellRenderer(@NotNull JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
       DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
       Object userObject = node.getUserObject();
       if (userObject instanceof NodeDescriptor) {
-        final NodeDescriptor descriptor = (NodeDescriptor)userObject;
+        final NodeDescriptor<?> descriptor = (NodeDescriptor<?>)userObject;
         setIcon(descriptor.getIcon());
         append(descriptor.toString(), new SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN, descriptor.getColor()));
       }
index 4fa0b585d577670f9a0647903524e2ce70bbd1e9..8b6aa9b83252c07f71ca7b451d12f629672bcf5c 100644 (file)
@@ -24,6 +24,7 @@ import com.intellij.openapi.ui.NamedConfigurable;
 import com.intellij.openapi.ui.NonEmptyInputValidator;
 import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.NlsActions;
 import com.intellij.openapi.util.Pair;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.util.containers.MultiMap;
@@ -200,7 +201,7 @@ public abstract class BaseLibrariesConfigurable extends BaseStructureConfigurabl
     };
   }
 
-  protected abstract String getAddText();
+  protected abstract @NlsActions.ActionText String getAddText();
 
   public abstract StructureLibraryTableModifiableModelProvider getModelProvider();
 
index eccd06580c74e1196258ea6ae4afb66a4e31f786..20b620532ddbc0f876c23838d946157a9ae68143 100644 (file)
@@ -5,6 +5,7 @@ import com.intellij.diff.DiffManager
 import com.intellij.diff.DiffRequestFactory
 import com.intellij.diff.DiffRequestPanel
 import com.intellij.diff.requests.ContentDiffRequest
+import com.intellij.ide.JavaUiBundle
 import com.intellij.ide.diff.DirDiffSettings
 import com.intellij.openapi.project.Project
 import com.intellij.openapi.ui.DialogWrapper
@@ -41,7 +42,8 @@ class LibraryJarsDiffDialog(libraryFile: VirtualFile,
     init()
   }
 
-  override fun createNorthPanel(): JBLabel = JBLabel(XmlStringUtil.wrapInHtml("${mavenCoordinates.mavenId} JARs differ from '$libraryName' library JARs."))
+  override fun createNorthPanel(): JBLabel = JBLabel(XmlStringUtil.wrapInHtml(
+    JavaUiBundle.message("library.jars.diff.dialog.0.jars.differ.from.1.library.jars", mavenCoordinates.mavenId, libraryName)))
 
   override fun createCenterPanel(): JComponent = panel.component
 
@@ -51,7 +53,7 @@ class LibraryJarsDiffDialog(libraryFile: VirtualFile,
     return arrayOf(okAction, ChangeCoordinatesAction(), cancelAction)
   }
 
-  private inner class ChangeCoordinatesAction : DialogWrapperAction("Change Coordinates...") {
+  private inner class ChangeCoordinatesAction : DialogWrapperAction(JavaUiBundle.message("library.jars.change.coordinates.action.title")) {
     override fun doAction(e: ActionEvent?) {
       close(CHANGE_COORDINATES_CODE)
     }
index 23159147a38820ec762a8eeef72f462adf9191da..d7e7fddc24334c8ddfa8779b0c2ab9369ea5972b 100644 (file)
  */
 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
-import com.intellij.openapi.util.NlsContexts.Label;
+import org.jetbrains.annotations.Nls;
 
 public abstract class ConfigurationErrorQuickFix {
-  private final String myActionName;
+  private final @Nls(capitalization = Nls.Capitalization.Title) String myActionName;
 
-  protected ConfigurationErrorQuickFix(@Label String actionName) {
+  protected ConfigurationErrorQuickFix(@Nls(capitalization = Nls.Capitalization.Title) String actionName) {
     myActionName = actionName;
   }
 
-  public String getActionName() {
+  public @Nls(capitalization = Nls.Capitalization.Title) String getActionName() {
     return myActionName;
   }
 
index d27fdb8ebac970b99d8f08ddce148e5a3928268b..1db7c3d7d5f6a236086f6dc21cb51001210aa688 100644 (file)
  */
 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
+import com.intellij.CommonBundle;
 import com.intellij.facet.Facet;
 import com.intellij.facet.pointers.FacetPointersManager;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.Collections;
@@ -42,18 +45,18 @@ public class FacetProjectStructureElement extends ProjectStructureElement {
 
   @NotNull
   @Override
-  public String getPresentableText() {
-    return "Facet '" + myFacet.getName() + "' in module '" + myFacet.getModule().getName() + "'";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableText() {
+    return JavaUiBundle.message("facet.project.structure.display.text", myFacet.getName(), myFacet.getModule().getName());
   }
 
   @Override
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return myFacet.getName();
   }
 
   @Override
-  public String getTypeName() {
-    return "Facet";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return CommonBundle.message("facet.title");
   }
 
   @Override
index 58ca6ccb07f8c97a473370f4623280e9c8726f6c..eda71244cc0069479549f89cbff204f65e7c88ff 100644 (file)
@@ -24,14 +24,12 @@ import com.intellij.openapi.util.text.HtmlChunk;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.util.PathUtil;
 import com.intellij.xml.util.XmlStringUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 
 public class LibraryProjectStructureElement extends ProjectStructureElement {
   private final Library myLibrary;
@@ -80,9 +78,14 @@ public class LibraryProjectStructureElement extends ProjectStructureElement {
   private static String createInvalidRootsDescription(List<String> invalidClasses, String rootName, String libraryName) {
     HtmlBuilder buffer = new HtmlBuilder();
     final String name = StringUtil.escapeXmlEntities(libraryName);
-    buffer.append("Library ");
-    buffer.appendLink("http://library/"+name, name);
-    buffer.append(" has broken " + rootName + " " + StringUtil.pluralize("path", invalidClasses.size()) + ":");
+    final HtmlChunk.Element link = HtmlChunk.link("http://library/" + name, name);
+    buffer.append(
+      JavaUiBundle.message("library.project.structure.invalid.roots.description",
+                           link,
+                           rootName,
+                           invalidClasses.size()
+      )
+    );
     for (String url : invalidClasses) {
       buffer.br().nbsp(2);
       buffer.append(PathUtil.toPresentableUrl(url));
@@ -137,20 +140,27 @@ public class LibraryProjectStructureElement extends ProjectStructureElement {
   @Override
   public ProjectStructureProblemDescription createUnusedElementWarning() {
     final List<ConfigurationErrorQuickFix> fixes = Arrays.asList(new AddLibraryToDependenciesFix(), new RemoveLibraryFix(), new RemoveAllUnusedLibrariesFix());
-    String libraryName = HtmlChunk.link("http://library/" + myLibrary.getName(), myLibrary.getName()).toString();
-    return new ProjectStructureProblemDescription(XmlStringUtil.wrapInHtml("Library " + libraryName + " is not used"), null, createPlace(),
-                                                  ProjectStructureProblemType.unused("unused-library"), ProjectStructureProblemDescription.ProblemLevel.PROJECT,
-                                                  fixes, false);
+    final String name = Objects.toString(myLibrary.getName());
+    final String libraryName = HtmlChunk.link("http://library/" + name, name).toString();
+
+    @Nls final String result = JavaUiBundle.message("library.0.is.not.used", libraryName);
+    return new ProjectStructureProblemDescription(XmlStringUtil.wrapInHtml(result),
+                                                  null,
+                                                  createPlace(),
+                                                  ProjectStructureProblemType.unused("unused-library"),
+                                                  ProjectStructureProblemDescription.ProblemLevel.PROJECT,
+                                                  fixes,
+                                                  false);
   }
 
   @Override
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return myLibrary.getName();
   }
 
   @Override
-  public String getTypeName() {
-    return "Library";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return JavaUiBundle.message("configurable.library.prefix");
   }
 
   @Override
@@ -164,7 +174,7 @@ public class LibraryProjectStructureElement extends ProjectStructureElement {
     private final List<String> myInvalidUrls;
 
     RemoveInvalidRootsQuickFix(Library library, OrderRootType type, List<String> invalidUrls) {
-      super("Remove invalid " + StringUtil.pluralize("root", invalidUrls.size()));
+      super(JavaUiBundle.message("label.remove.invalid.roots", invalidUrls.size()));
       myLibrary = library;
       myType = type;
       myInvalidUrls = invalidUrls;
@@ -192,7 +202,7 @@ public class LibraryProjectStructureElement extends ProjectStructureElement {
 
   private final class AddLibraryToDependenciesFix extends ConfigurationErrorQuickFix {
     private AddLibraryToDependenciesFix() {
-      super("Add to Dependencies...");
+      super(JavaUiBundle.message("label.add.to.dependencies"));
     }
 
     @Override
@@ -203,7 +213,7 @@ public class LibraryProjectStructureElement extends ProjectStructureElement {
 
   private final class RemoveLibraryFix extends ConfigurationErrorQuickFix {
     private RemoveLibraryFix() {
-      super("Remove Library");
+      super(JavaUiBundle.message("label.remove.library"));
     }
 
     @Override
@@ -214,7 +224,7 @@ public class LibraryProjectStructureElement extends ProjectStructureElement {
 
   private final class RemoveAllUnusedLibrariesFix extends ConfigurationErrorQuickFix {
     private RemoveAllUnusedLibrariesFix() {
-      super("Remove All Unused Libraries");
+      super(JavaUiBundle.message("label.remove.all.unused.libraries"));
     }
 
     @Override
index c2d624efce7ff3d31e360591c5b4bf5d801daa55..8e3ff4d35497f88f4d663ed53db1756eb33da947 100644 (file)
@@ -1,5 +1,6 @@
 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
+import com.intellij.CommonBundle;
 import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.module.ModifiableModuleModel;
 import com.intellij.openapi.module.Module;
@@ -11,6 +12,7 @@ import com.intellij.openapi.roots.ui.configuration.ModuleEditor;
 import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
 import com.intellij.util.ArrayUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.ArrayList;
@@ -66,18 +68,6 @@ public class ModuleProjectStructureElement extends ProjectStructureElement {
                                          null);
         }
       }
-      //todo[nik] highlight libraries with invalid paths in ClasspathEditor
-      //else if (entry instanceof LibraryOrderEntry) {
-      //  final LibraryEx library = (LibraryEx)((LibraryOrderEntry)entry).getLibrary();
-      //  if (library != null) {
-      //    if (!library.allPathsValid(OrderRootType.CLASSES)) {
-      //      problemsHolder.registerError(ProjectBundle.message("project.roots.tooltip.library.misconfigured", entry.getName()));
-      //    }
-      //    else if (!library.allPathsValid(OrderRootType.SOURCES)) {
-      //      problemsHolder.registerWarning(ProjectBundle.message("project.roots.tooltip.library.misconfigured", entry.getName()));
-      //    }
-      //  }
-      //}
     }
   }
 
@@ -137,13 +127,13 @@ public class ModuleProjectStructureElement extends ProjectStructureElement {
   }
 
   @Override
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return myModule.getName();
   }
 
   @Override
-  public String getTypeName() {
-    return "Module";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return CommonBundle.message("label.module");
   }
 
   @Override
index 4451b5eff175856c1b6d023cda930290429dd540..4459f720805990b127865dcd51435fb218443a01 100644 (file)
@@ -1,6 +1,7 @@
 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -14,18 +15,18 @@ public abstract class ProjectStructureElement {
   }
 
   @NotNull
-  public String getPresentableText() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableText() {
     return getTypeName() + " '" + getPresentableName() + "'";
   }
 
-  public abstract String getPresentableName();
+  public abstract @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName();
 
   @Nullable
   public String getDescription() {
     return null;
   }
 
-  public abstract String getTypeName();
+  public abstract @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName();
 
   public abstract String getId();
 
index 3c34dff323421cf3fc37eb690363aa5a84553174..c06ccfffe3b7359447f05db6f557a41e2ab09de8 100644 (file)
@@ -15,7 +15,9 @@
  */
 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.text.StringUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -24,7 +26,7 @@ import java.util.List;
 public class ProjectStructureProblemDescription {
   public enum ProblemLevel {PROJECT, GLOBAL}
   @NotNull
-  private final String myMessage;
+  private final @Nls(capitalization = Nls.Capitalization.Sentence) String myMessage;
   private final String myDescription;
   private final PlaceInProjectStructure myPlace;
   private final List<? extends ConfigurationErrorQuickFix> myFixes;
@@ -32,7 +34,7 @@ public class ProjectStructureProblemDescription {
   private final ProblemLevel myProblemLevel;
   private final boolean myCanShowPlace;
 
-  public ProjectStructureProblemDescription(@NotNull String message,
+  public ProjectStructureProblemDescription(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message,
                                             @Nullable String description,
                                             @NotNull PlaceInProjectStructure place,
                                             @NotNull ProjectStructureProblemType problemType,
@@ -40,7 +42,7 @@ public class ProjectStructureProblemDescription {
     this(message, description, place, problemType, ProblemLevel.PROJECT, fixes, true);
   }
 
-  public ProjectStructureProblemDescription(@NotNull String message,
+  public ProjectStructureProblemDescription(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message,
                                             @Nullable String description,
                                             @NotNull PlaceInProjectStructure place,
                                             @NotNull ProjectStructureProblemType problemType,
@@ -60,11 +62,11 @@ public class ProjectStructureProblemDescription {
   }
 
   @NotNull
-  public String getMessage(final boolean includePlace) {
-    if (includePlace && myCanShowPlace) {
-      return myPlace.getContainingElement().getPresentableText() + ": " + StringUtil.decapitalize(myMessage);
-    }
-    return myMessage;
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getMessage(final boolean includePlace) {
+    if (!includePlace || !myCanShowPlace) return myMessage;
+
+    @NlsSafe final String result = myPlace.getContainingElement().getPresentableText() + ": " + StringUtil.decapitalize(myMessage);
+    return result;
   }
 
   public boolean canShowPlace() {
index 903b05f41ebc4524a77399dfd791dba5988f0b6b..ebfd8086e0e5b9cf011ab4865bcf0a0a6492a16c 100644 (file)
@@ -2,6 +2,7 @@ package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
 import com.intellij.util.SmartList;
 import com.intellij.xml.util.XmlStringUtil;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -12,7 +13,7 @@ public class ProjectStructureProblemsHolderImpl implements ProjectStructureProbl
   private List<ProjectStructureProblemDescription> myProblemDescriptions;
 
   @Override
-  public void registerProblem(@NotNull String message, @Nullable String description,
+  public void registerProblem(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String message, @Nullable String description,
                               @NotNull ProjectStructureProblemType problemType,
                               @NotNull PlaceInProjectStructure place,
                               @Nullable ConfigurationErrorQuickFix fix) {
index 0f15c6eaeb5292714ccc472f274432f2ea075466..9066defbbe423e4cdb0e9890b216c6f74389c386 100644 (file)
@@ -1,8 +1,10 @@
 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
 
+import com.intellij.openapi.project.ProjectBundle;
 import com.intellij.openapi.projectRoots.Sdk;
 import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
+import org.jetbrains.annotations.Nls;
 
 import java.util.Collections;
 import java.util.List;
@@ -47,13 +49,13 @@ public class SdkProjectStructureElement extends ProjectStructureElement {
   }
 
   @Override
-  public String getPresentableName() {
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
     return mySdk.getName();
   }
 
   @Override
-  public String getTypeName() {
-    return "SDK";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return ProjectBundle.message("sdk");
   }
 
   @Override
index af833b4619ee573e6250ca41c98b720f85fb6e31..4783a46ad83b14b457b972565d87dfa1027f97cb 100644 (file)
@@ -10,6 +10,7 @@ import com.intellij.openapi.module.ModuleType;
 import com.intellij.openapi.module.ModuleTypeManager;
 import com.intellij.openapi.util.ClearableLazyValue;
 import com.intellij.openapi.util.JDOMUtil;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.platform.ProjectTemplate;
 import com.intellij.platform.ProjectTemplatesFactory;
 import com.intellij.util.ArrayUtilRt;
@@ -115,12 +116,12 @@ public final class RemoteTemplatesFactory extends ProjectTemplatesFactory {
   private static class RemoteProjectTemplate extends ArchivedProjectTemplate {
     private final ModuleType myModuleType;
     private final String myPath;
-    private final String myDescription;
+    private final @NlsContexts.DetailedDescription String myDescription;
 
     RemoteProjectTemplate(String name,
                           Element element,
                           ModuleType moduleType,
-                          String path, String description) {
+                          String path, @NlsContexts.DetailedDescription String description) {
       super(name, element.getChildTextTrim("category"));
       myModuleType = moduleType;
       myPath = path;
index 343022e861afee9e3ae56062582d52aea9a7e65b..d6232f7c16923c0a4e9f9c678ff68e84d1e1ce16 100644 (file)
@@ -1,18 +1,20 @@
 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.projectImport;
 
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.util.PropertiesComponent;
 import com.intellij.ide.util.projectWizard.WizardContext;
 import com.intellij.openapi.components.StorageScheme;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.NlsContexts;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
 
 public class ProjectFormatPanel {
   private static final String STORAGE_FORMAT_PROPERTY = "default.storage.format";
-  public static final String DIR_BASED = Project.DIRECTORY_STORE_FOLDER + " (directory based)";
-  private static final String FILE_BASED = ".ipr (file based)";
+  public final @NlsContexts.Label String DIR_BASED = JavaUiBundle.message("label.directory.based", Project.DIRECTORY_STORE_FOLDER);
+  private final @NlsContexts.Label String FILE_BASED = JavaUiBundle.message("label.ipr.file.based");
 
   private JComboBox<String> myStorageFormatCombo;
   private JPanel myWholePanel;
@@ -28,7 +30,7 @@ public class ProjectFormatPanel {
   }
 
   @NotNull
-  public JComboBox getStorageFormatComboBox() {
+  public JComboBox<String> getStorageFormatComboBox() {
     return myStorageFormatCombo;
   }
 
index f7f89a7af9e90695037ba35f5c4887b297f3b103..47b90577085007d020b5a240a9954330b2f7ecc9 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.openapi.options.ConfigurationException;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
 import com.intellij.packaging.artifacts.ModifiableArtifactModel;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -27,7 +28,7 @@ public abstract class ProjectImportBuilder<T> extends ProjectBuilder {
   private boolean myUpdate;
   private String myFileToImport;
 
-  public abstract @NotNull String getName();
+  public abstract @NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String getName();
 
   public abstract Icon getIcon();
 
index 9a05fae9bcd8d91122005882235dff4a82cb05e8..0f3b1956f5b2c95e0b0b6177c15b0f2a5559475e 100644 (file)
@@ -8,6 +8,7 @@ import com.intellij.openapi.extensions.ExtensionPointName;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.vfs.VirtualFile;
 import org.intellij.lang.annotations.Language;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -41,7 +42,7 @@ public abstract class ProjectImportProvider {
   }
 
   @NotNull
-  public String getName(){
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getName(){
     return getBuilder().getName();
   }
 
index 3e643c56076031eb04facef8a16f0c774d12314c..71acee9530a47a056c733d28637681b84b4816df 100644 (file)
@@ -119,7 +119,8 @@ public abstract class SelectImportedProjectsStep<T> extends ProjectImportWizardS
   public boolean validate() throws ConfigurationException {
     getContext().setList(fileChooser.getMarkedElements());
     if (fileChooser.getMarkedElements().size() == 0) {
-      throw new ConfigurationException("Nothing found to import", "Unable to proceed");
+      throw new ConfigurationException(JavaUiBundle.message("select.imported.projects.dialog.message.nothing.found"),
+                                       JavaUiBundle.message("select.imported.projects.dialog.title.unable.to.proceed"));
     }
     return true;
   }
@@ -136,5 +137,4 @@ public abstract class SelectImportedProjectsStep<T> extends ProjectImportWizardS
   public ProjectImportBuilder<T> getContext() {
     return getBuilder();
   }
-}
-
+}
\ No newline at end of file
index 0089a3b9b54844e74a6f4c951b2cbd287ceaa259..b486ae5da85402f5db25e4e30e9edbea4dad38a1 100644 (file)
@@ -17,6 +17,7 @@ package com.intellij.util.ui.classpath;
 
 import com.intellij.ide.CommonActionsManager;
 import com.intellij.ide.DefaultTreeExpander;
+import com.intellij.ide.JavaUiBundle;
 import com.intellij.ide.TreeExpander;
 import com.intellij.ide.projectView.PresentationData;
 import com.intellij.ide.util.treeView.AbstractTreeBuilder;
@@ -43,6 +44,7 @@ import com.intellij.openapi.roots.ui.CellAppearanceEx;
 import com.intellij.openapi.roots.ui.OrderEntryAppearanceService;
 import com.intellij.openapi.ui.DialogWrapper;
 import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.ui.DoubleClickListener;
 import com.intellij.ui.ScrollPaneFactory;
@@ -57,6 +59,7 @@ import com.intellij.util.PlatformIcons;
 import com.intellij.util.Processor;
 import com.intellij.util.ui.JBUI;
 import gnu.trove.THashMap;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -68,8 +71,8 @@ import javax.swing.tree.DefaultTreeModel;
 import java.awt.*;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
-import java.util.*;
 import java.util.List;
+import java.util.*;
 
 /**
  * @author Gregory.Shrago
@@ -81,12 +84,12 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper {
   private List<Library> myResult;
   private final Map<Object, Object> myParentsMap = new THashMap<>();
 
-  protected ChooseLibrariesDialogBase(final JComponent parentComponent, final String title) {
+  protected ChooseLibrariesDialogBase(final JComponent parentComponent, final @NlsContexts.DialogTitle String title) {
     super(parentComponent, false);
     setTitle(title);
   }
 
-  protected ChooseLibrariesDialogBase(Project project, String title) {
+  protected ChooseLibrariesDialogBase(Project project, @NlsContexts.DialogTitle String title) {
     super(project, false);
     setTitle(title);
   }
@@ -97,8 +100,8 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper {
     updateOKAction();
   }
 
-  private static String notEmpty(String nodeText) {
-    return StringUtil.isNotEmpty(nodeText) ? nodeText : "<unnamed>";
+  private static @Nls String notEmpty(@Nls String nodeText) {
+    return StringUtil.isNotEmpty(nodeText) ? nodeText : JavaUiBundle.message("unnamed.title");
   }
 
   @Override
@@ -348,7 +351,8 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper {
 
   public boolean isEmpty() {
     List<Object> children = new ArrayList<>();
-    collectChildren(myBuilder.getTreeStructure().getRootElement(), children);
+    final AbstractTreeStructure structure = myBuilder.getTreeStructure();
+    if (structure != null) collectChildren(structure.getRootElement(), children);
     return children.isEmpty();
   }
 
index 2379b96ab9860f3e9b513f51ff9da674015d6e07..1ee76eb302a5dfc1e261e01920f321f78fba800b 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.openapi.roots.impl.libraries.LibraryTableImplUtil;
 import com.intellij.openapi.roots.libraries.Library;
 import com.intellij.openapi.roots.libraries.LibraryTable;
 import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
+import com.intellij.openapi.util.NlsContexts;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -33,14 +34,14 @@ public class ChooseLibrariesFromTablesDialog extends ChooseLibrariesDialogBase {
   private @Nullable final Project myProject;
   private final boolean myShowCustomLibraryTables;
 
-  protected ChooseLibrariesFromTablesDialog(@NotNull String title, @NotNull Project project, final boolean showCustomLibraryTables) {
+  protected ChooseLibrariesFromTablesDialog(@NotNull @NlsContexts.DialogTitle String title, @NotNull Project project, final boolean showCustomLibraryTables) {
     super(project, title);
     myShowCustomLibraryTables = showCustomLibraryTables;
     myProject = project;
   }
 
   protected ChooseLibrariesFromTablesDialog(@NotNull JComponent parentComponent,
-                                            @NotNull String title,
+                                            @NotNull @NlsContexts.DialogTitle String title,
                                             @Nullable Project project,
                                             final boolean showCustomLibraryTables) {
     super(parentComponent, title);
@@ -48,7 +49,7 @@ public class ChooseLibrariesFromTablesDialog extends ChooseLibrariesDialogBase {
     myProject = project;
   }
 
-  public static ChooseLibrariesFromTablesDialog createDialog(@NotNull String title,
+  public static ChooseLibrariesFromTablesDialog createDialog(@NotNull @NlsContexts.DialogTitle String title,
                                                              @NotNull Project project,
                                                              final boolean showCustomLibraryTables) {
     final ChooseLibrariesFromTablesDialog dialog = new ChooseLibrariesFromTablesDialog(title, project, showCustomLibraryTables);
index 748869573b2752e99a34a04a82495ade09cd8e49..1052849edbf3e7c38281a9a5c311fc10b7015551 100644 (file)
@@ -97,7 +97,7 @@ public final class RepositoryUtils {
       ApplicationManager.getApplication().invokeLater(
         roots == null || roots.isEmpty() ?
         () -> {
-          String message = "No files were downloaded for " + properties.getMavenId();
+          String message = JavaUiBundle.message("notification.content.no.files.were.downloaded", properties.getMavenId());
           Notifications.Bus.notify(new Notification("Repository", JavaUiBundle.message(
             "notification.title.repository.library.synchronization"),
                                                     message, NotificationType.ERROR), project);
index 3d46e65063f70af5a457b35fd95571fa04ee7bc8..02286e93b2aa3c73f3357e89892e8973e44cf416 100644 (file)
@@ -98,7 +98,7 @@ public class ImportActionTest extends ProjectWizardTestCase<AddModuleWizard> {
     File file = createTempFile("Foo.java", "class Foo {}");
     Module module = importProjectFrom(file.getParent(), step -> {
       if (step != null) {
-        assertEquals("Existing Sources", myWizard.getSequence().getSelectedType());
+        assertEquals("Existing sources", myWizard.getSequence().getSelectedType());
       }
     }, new ImportFromSourcesProvider());
 
index 82fdd3c2634ad9fae50de7aaa5f5efdc840e6414..03d802bd4a1af68a10d4ab54183970fc2e376d57 100644 (file)
@@ -1477,4 +1477,5 @@ switch.stmt.template.description=switch (expr) {...}
 wrap.return.value.created.class.not.accessible.conflict=Created class won't be accessible in the call place
 wrap.return.value.existing.class.does.not.have.getter.conflict=Existing class does not have getter for selected field
 wrap.return.value.existing.class.does.not.have.appropriate.constructor.conflict=Existing class does not have appropriate constructor
-wrap.return.value.anonymous.class.presentation=Anonymous {0}
\ No newline at end of file
+wrap.return.value.anonymous.class.presentation=Anonymous {0}
+empty.title=Empty
\ No newline at end of file
index d7dcf2db8b9ce9b295a868e1ca76c4016d1ad0dc..421b254240cc1375c09362ef7e6c42ee462965b9 100644 (file)
@@ -120,7 +120,7 @@ public class RepositoryLibraryDescription {
     return new RepositoryLibraryProperties(getGroupId(), getArtifactId(), ReleaseVersionId, true, ContainerUtil.emptyList());
   }
 
-  public String getDisplayName(String version) {
+  public @NlsSafe String getDisplayName(String version) {
     if (LatestVersionId.equals(version)) {
       version = LatestVersionDisplayName;
     }
index 8a5d6dbec09a76c1adf092e66db5a065502ee0af..bdffd276cddb8e89be9e50c6fbb9196c03995c53 100644 (file)
  */
 package org.jetbrains.jps.model;
 
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 public interface JpsNamedElement extends JpsElement {
   @NotNull
-  String getName();
+  @Nls(capitalization = Nls.Capitalization.Title) String getName();
 
   void setName(@NotNull String name);
 }
index 5b9507ce35ccd79018f6cd43f2f87200ab5d3359..d2a292d97e4fa5c0149a8dfb808fc2dad4cfad1e 100644 (file)
  */
 package org.jetbrains.jps.model.ex;
 
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.jps.model.JpsEventDispatcher;
 import org.jetbrains.jps.model.JpsNamedElement;
 
 public abstract class JpsNamedCompositeElementBase<Self extends JpsNamedCompositeElementBase<Self>> extends JpsCompositeElementBase<Self>
   implements JpsNamedElement {
-  private String myName;
+  private @Nls(capitalization = Nls.Capitalization.Title) String myName;
 
-  protected JpsNamedCompositeElementBase(@NotNull String name) {
+  protected JpsNamedCompositeElementBase(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String name) {
     super();
     myName = name;
   }
@@ -35,7 +36,7 @@ public abstract class JpsNamedCompositeElementBase<Self extends JpsNamedComposit
 
   @NotNull
   @Override
-  public String getName() {
+  public @Nls(capitalization = Nls.Capitalization.Title) String getName() {
     return myName;
   }
 
@@ -46,7 +47,7 @@ public abstract class JpsNamedCompositeElementBase<Self extends JpsNamedComposit
   }
 
   @Override
-  public void setName(@NotNull String name) {
+  public void setName(@NotNull @Nls(capitalization = Nls.Capitalization.Title) String name) {
     if (!myName.equals(name)) {
       String oldName = myName;
       myName = name;
index 7f3a1f6ee827ff60d6136869ef493b54df18592a..d5df58cea773acc419036a22e26e932535cc7258 100644 (file)
@@ -6,6 +6,7 @@ import com.intellij.util.xmlb.annotations.Property;
 import com.intellij.util.xmlb.annotations.Tag;
 import com.intellij.util.xmlb.annotations.XCollection;
 import org.jdom.Element;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.jps.model.serialization.SerializationConstants;
 
@@ -15,7 +16,7 @@ import java.util.List;
 @Tag("artifact")
 public class ArtifactState {
   @NonNls public static final String NAME_ATTRIBUTE = "name";
-  private String myName;
+  private @Nls(capitalization = Nls.Capitalization.Title) String myName;
   private String myOutputPath;
   private String myArtifactType = "plain";
   private boolean myBuildOnMake;
@@ -24,7 +25,7 @@ public class ArtifactState {
   private String myExternalSystemId;
 
   @Attribute(NAME_ATTRIBUTE)
-  public String getName() {
+  public @Nls(capitalization = Nls.Capitalization.Title) String getName() {
     return myName;
   }
 
@@ -38,7 +39,7 @@ public class ArtifactState {
     return myBuildOnMake;
   }
 
-  @Attribute(value = SerializationConstants.EXTERNAL_SYSTEM_ID_ATTRIBUTE)
+  @Attribute(SerializationConstants.EXTERNAL_SYSTEM_ID_ATTRIBUTE)
   public String getExternalSystemId() {
     return myExternalSystemId;
   }
@@ -67,7 +68,7 @@ public class ArtifactState {
     myArtifactType = artifactType;
   }
 
-  public void setName(String name) {
+  public void setName(@Nls(capitalization = Nls.Capitalization.Title) String name) {
     myName = name;
   }
 
index 210dd9b7e0344b1bc48db407ec8fa85325a3f992..d85a1231f526bad25ac536fcc75cf06bb6cbcba6 100644 (file)
@@ -138,6 +138,7 @@ public final class JpsArtifactSerializer {
   @Nullable
   private static JpsPackagingElement createPackagingElement(Element element) {
     String typeId = element.getAttributeValue(ID_ATTRIBUTE);
+    if (typeId == null) return null;
     JpsPackagingElementSerializer<?> serializer = findElementSerializer(typeId);
     if (serializer != null) {
       return serializer.load(element);
index 027415a70e6c6ba087023f9488189c37891a37be..e4e956a0414552449ae279bdb9f40da525dba90d 100644 (file)
@@ -4,10 +4,7 @@ package com.intellij.openapi.project;
 import com.intellij.openapi.components.ComponentManager;
 import com.intellij.openapi.extensions.AreaInstance;
 import com.intellij.openapi.vfs.VirtualFile;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import org.jetbrains.annotations.SystemDependent;
-import org.jetbrains.annotations.SystemIndependent;
+import org.jetbrains.annotations.*;
 
 /**
  * An object representing an IntelliJ project.
@@ -29,7 +26,7 @@ public interface Project extends ComponentManager, AreaInstance {
    * @return project name
    */
   @NotNull
-  String getName();
+  @Nls String getName();
 
   /**
    * Returns a project base directory - a parent directory of a {@code .ipr} file or {@code .idea} directory.<br/>
index 52f2f47f39a8b8b8b07e3aa380d58518ce0abfb5..4d1d14075f52f35b6d7791e9c62f21e3c3e1b0c8 100644 (file)
@@ -57,7 +57,7 @@ public final class PathUtil {
   }
 
   @NotNull
-  public static String getFileName(@NotNull String path) {
+  public static @NlsSafe String getFileName(@NotNull String path) {
     return PathUtilRt.getFileName(path);
   }
 
index 66baa1942bc6230b7bac95a26cb06e589abab80b..bd8ce3c123d5b1e9070ea8ba1f64d8dbf9e129ca 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.ide.util.treeView;
 
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.NlsSafe;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -16,7 +17,7 @@ public abstract class NodeDescriptor<E> {
   protected final Project myProject;
   private final NodeDescriptor<?> myParentDescriptor;
 
-  protected String myName;
+  protected @NlsSafe String myName;
   @Nullable protected Icon myClosedIcon;
 
   /**
@@ -61,7 +62,7 @@ public abstract class NodeDescriptor<E> {
   public abstract E getElement();
 
   @Override
-  public String toString() {
+  public @NlsSafe String toString() {
     // NB!: this method may return null if node is not valid
     // it contradicts the specification, but the fix breaks existing behaviour
     // see com.intellij.ide.util.FileStructurePopup#getSpeedSearchText
index 8e8dde1cc82336bab98a13ea811cb20bc8fbfcdc..eaba645653301a672e1efdf9bc5bb1b13285973b 100644 (file)
@@ -23,6 +23,7 @@ import com.intellij.openapi.roots.ProjectModelExternalSource;
 import com.intellij.openapi.util.Disposer;
 import com.intellij.openapi.util.UserDataHolder;
 import com.intellij.openapi.util.UserDataHolderBase;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -37,11 +38,15 @@ public class Facet<C extends FacetConfiguration> extends UserDataHolderBase impl
   @NotNull private final Module myModule;
   @NotNull private final C myConfiguration;
   private final Facet myUnderlyingFacet;
-  private String myName;
+  private @Nls String myName;
   private boolean isDisposed;
   private ProjectModelExternalSource myExternalSource;
 
-  public Facet(@NotNull final FacetType facetType, @NotNull final Module module, @NotNull final String name, @NotNull final C configuration, Facet underlyingFacet) {
+  public Facet(@NotNull final FacetType facetType,
+               @NotNull final Module module,
+               @NotNull final @Nls String name,
+               @NotNull final C configuration,
+               Facet underlyingFacet) {
     myName = name;
     myFacetType = facetType;
     myModule = module;
@@ -105,14 +110,14 @@ public class Facet<C extends FacetConfiguration> extends UserDataHolderBase impl
   }
 
   @NotNull
-  public final String getName() {
+  public final @Nls String getName() {
     return myName;
   }
 
   /**
    * Use {@link ModifiableFacetModel#rename} to rename facets
    */
-  final void setName(@NotNull final String name) {
+  final void setName(@NotNull final @Nls String name) {
     myName = name;
   }
 
index dae6f817cd7a88ae414eebf9b1262c2ade2b7977..b6d82f18f242643ea9cc098f4451e7ccf4adf7d3 100644 (file)
@@ -8,6 +8,7 @@ import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleType;
 import com.intellij.openapi.roots.ui.configuration.FacetsProvider;
 import com.intellij.util.ArrayUtilRt;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -21,9 +22,10 @@ import javax.swing.*;
 public abstract class FrameworkSupportProvider {
   public static final ExtensionPointName<FrameworkSupportProvider> EXTENSION_POINT = ExtensionPointName.create("com.intellij.frameworkSupport");
   private final String myId;
-  private final String myTitle;
+  private final @Nls(capitalization = Nls.Capitalization.Title) String myTitle;
 
-  protected FrameworkSupportProvider(@NotNull @NonNls final String id, @NotNull final String title) {
+  protected FrameworkSupportProvider(@NotNull @NonNls final String id,
+                                     @NotNull final @Nls(capitalization = Nls.Capitalization.Title) String title) {
     myId = id;
     myTitle = title;
   }
@@ -48,6 +50,7 @@ public abstract class FrameworkSupportProvider {
     return ArrayUtilRt.EMPTY_STRING_ARRAY;
   }
 
+  @Nls(capitalization = Nls.Capitalization.Title)
   public String getTitle() {
     return myTitle;
   }
index b751c87e50db35b579cdba0c3293c611d21ec081..db7f23daad13aefe4fa6963df8a935c2927c4a61 100644 (file)
@@ -19,6 +19,7 @@ package com.intellij.ide.util.frameworkSupport;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.roots.ModifiableRootModel;
 import com.intellij.openapi.roots.libraries.Library;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -28,7 +29,7 @@ import java.util.List;
 
 public abstract class FrameworkSupportProviderBase extends FrameworkSupportProvider {
 
-  protected FrameworkSupportProviderBase(final @NonNls @NotNull String id, final @NotNull String title) {
+  protected FrameworkSupportProviderBase(final @NonNls @NotNull String id, final @NotNull @Nls(capitalization = Nls.Capitalization.Title) String title) {
     super(id, title);
   }
 
index bd1c921eaf29cc39c04f6157450012c640576c11..1410b89eb9ff64110dceac1d57b18df9626eebd4 100644 (file)
@@ -6,6 +6,7 @@ import com.intellij.openapi.actionSystem.DataKey;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleGrouper;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.util.ArrayUtilRt;
 import com.intellij.util.containers.ContainerUtil;
@@ -117,7 +118,7 @@ public class ModuleGroup {
   }
 
   @Override
-  public String toString() {
+  public @NlsSafe String toString() {
     return myGroupPath.get(myGroupPath.size() - 1);
   }
 }
index 5e04a34ce067beb5b382843bfcccda2b91386a97..d2dc973749db91d8ebf028f35bb60b807b71b35f 100644 (file)
@@ -17,6 +17,7 @@ package com.intellij.openapi.roots.libraries;
 
 import com.intellij.openapi.extensions.ExtensionPointName;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -67,7 +68,7 @@ public abstract class LibraryPresentationProvider<P extends LibraryProperties> {
    * @return description of a library to be shown in 'Library Editor' in 'Project Structure' dialog
    */
   @Nullable
-  public String getDescription(@NotNull P properties) {
+  public @Nls String getDescription(@NotNull P properties) {
     return null;
   }
 
index df4a61a2876330a4412c1904ed77a200fab24637..ebb1ecdb0cd2ddc43bf5a69c2a972d77dacd1146 100644 (file)
@@ -29,7 +29,7 @@ import javax.swing.*;
  */
 public abstract class AttachRootButtonDescriptor {
   private final OrderRootType myOrderRootType;
-  protected final String myButtonText;
+  protected final @NlsContexts.Button String myButtonText;
   private final Icon myToolbarIcon;
 
   /**
@@ -56,7 +56,7 @@ public abstract class AttachRootButtonDescriptor {
   public abstract VirtualFile[] selectFiles(@NotNull JComponent parent, @Nullable VirtualFile initialSelection,
                                             @Nullable Module contextModule, @NotNull LibraryEditor libraryEditor);
 
-  public String getButtonText() {
+  public @NlsContexts.Button String getButtonText() {
     return myButtonText;
   }
 
index 458d272f1239857f60f67cabb7d53ff4de11833e..0212c47dd72aebbe9b8e74549ec282745efe4896 100644 (file)
@@ -103,4 +103,6 @@ title.console=Console
 
 title.save.app=Saving Application
 title.save.project=Saving Project
-title.save.default.project=Saving Default Project
\ No newline at end of file
+title.save.default.project=Saving Default Project
+facet.title=Facet
+file.title=File
\ No newline at end of file
index 8ce1ae1c06429cde23b097349c06aa0a3bb414b8..22729b7c4e12f06ac3c96fc68f1050e089742055 100644 (file)
@@ -1,12 +1,13 @@
 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.openapi.roots.ui;
 
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.ui.SimpleColoredComponent;
 import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 
 public interface CellAppearanceEx {
-  @NotNull String getText();
+  @NotNull @NlsSafe String getText();
 
   /** @deprecated don't implement this method - it's never called */
   @Deprecated
index 6f8f3e49293e62ce8eb321c03521ef9fd3ab01d4..bbac30354e29e626702760eef419318b14edeadd 100644 (file)
@@ -35,4 +35,6 @@ progress.text.loading.modules=Loading modules...
 project.library.display.name=Project {0, choice, 1#Library|2#Libraries}
 project.root.module.source=<Module source>
 dialog.title.replace.library=Replace Library
-button.text.replace=Replace
\ No newline at end of file
+button.text.replace=Replace
+disposed.library.title=Disposed Library
+empty.library.title=Empty Library
\ No newline at end of file
index 8e1f6787a96d65af4f3f5634b428e75fe78e4a32..3e9af4481d569d97dfb8bc24a1f9a335df16e8c6 100644 (file)
@@ -17,6 +17,7 @@
 package com.intellij.openapi.roots;
 
 import org.jdom.Element;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 /**
@@ -46,7 +47,7 @@ public enum DependencyScope {
   RUNTIME("Runtime", false, true, false, true),
   PROVIDED("Provided", true, false, true, true);
   @NotNull
-  private final String myDisplayName;
+  private final @Nls(capitalization = Nls.Capitalization.Title) String myDisplayName;
   private final boolean myForProductionCompile;
   private final boolean myForProductionRuntime;
   private final boolean myForTestCompile;
@@ -54,7 +55,7 @@ public enum DependencyScope {
 
   public static final String SCOPE_ATTR = "scope";
 
-  DependencyScope(@NotNull String displayName,
+  DependencyScope(@NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String displayName,
                   boolean forProductionCompile,
                   boolean forProductionRuntime,
                   boolean forTestCompile,
@@ -110,7 +111,7 @@ public enum DependencyScope {
   }
 
   @Override
-  public String toString() {
+  public @Nls(capitalization = Nls.Capitalization.Title) String toString() {
     return myDisplayName;
   }
 }
index 613618e3a882cd36a721977d7ba6d3a218e56aeb..8a6f8d8b27c74e309cd75bb4e398ea548403e675 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.openapi.roots;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.vfs.VirtualFile;
 import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -65,7 +66,7 @@ public interface OrderEntry extends Synthetic, Comparable<OrderEntry> {
    * @return name of this OrderEntry to be shown to user.
    */
   @NotNull
-  String getPresentableName();
+  @Nls(capitalization = Nls.Capitalization.Title) String getPresentableName();
 
   /**
    * Checks whether this order entry is invalid for some reason. Note that entry being valid
index 4d59c0169d171068725a33dfc0ddb7c962d17d60..33c414df5015beea05b9a4aeb5b5c46d008cf69a 100644 (file)
@@ -10,9 +10,11 @@ import com.intellij.openapi.roots.impl.libraries.LibraryEx;
 import com.intellij.openapi.util.Ref;
 import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.projectModel.ProjectModelBundle;
 import com.intellij.util.PathUtil;
 import com.intellij.util.containers.ContainerUtil;
 import com.intellij.util.text.StringTokenizer;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -146,18 +148,18 @@ public final class LibraryUtil {
   }
 
   @NotNull
-  public static String getPresentableName(@NotNull Library library) {
+  public static @Nls(capitalization = Nls.Capitalization.Title) String getPresentableName(@NotNull Library library) {
     final String name = library.getName();
     if (name != null) {
       return name;
     }
     if (library instanceof LibraryEx && ((LibraryEx)library).isDisposed()) {
-      return "Disposed Library";
+      return ProjectModelBundle.message("disposed.library.title");
     }
     String[] urls = library.getUrls(OrderRootType.CLASSES);
     if (urls.length > 0) {
       return PathUtil.getFileName(VfsUtilCore.urlToPath(urls[0]));
     }
-    return "Empty Library";
+    return ProjectModelBundle.message("empty.library.title");
   }
 }
index 668fd0d929469a152ca042cddb7b9e14a59ff4e0..fd961fa84ada911b0d4a31749ea4eb91f5019250 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.openapi.roots.impl.storage;
 
 import com.intellij.openapi.module.Module;
+import com.intellij.openapi.util.NlsSafe;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.jps.model.serialization.JpsProjectLoader;
@@ -10,7 +11,7 @@ public final class ClassPathStorageUtil {
   @NonNls public static final String DEFAULT_STORAGE = "default";
 
   @NotNull
-  public static String getStorageType(@NotNull Module module) {
+  public static @NlsSafe String getStorageType(@NotNull Module module) {
     String id = module.getOptionValue(JpsProjectLoader.CLASSPATH_ATTRIBUTE);
     return id == null ? DEFAULT_STORAGE : id;
   }
index 88541dae022f82687244bc4c64eb54ebe8ff9036..4487cd354ca9669256a434abce02f70533338536 100644 (file)
@@ -228,6 +228,7 @@ public abstract class BundleBase {
       }
       i++;
     }
-    return builder.toString();
+    @NlsSafe final String result = builder.toString();
+    return result;
   }
 }
\ No newline at end of file
index 8875202d6f07ddaf30dae0428ac51e0e454d819c..624aac8dcc682bb8246898410956db270f930c7a 100644 (file)
@@ -4,6 +4,7 @@ package com.intellij.openapi.util.text;
 import com.intellij.ReviseWhenPortedToJDK;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.progress.ProcessCanceledException;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.openapi.util.Pair;
 import com.intellij.openapi.util.TextRange;
 import com.intellij.util.*;
@@ -1986,7 +1987,7 @@ public class StringUtil extends StringUtilRt {
    * @return {@code text} with some characters replaced with standard XML entities, e.g. '<' replaced with '{@code &lt;}'
    */
   @Contract(pure = true)
-  public static @NotNull String escapeXmlEntities(@NotNull String text) {
+  public static @NotNull @NlsSafe String escapeXmlEntities(@NotNull String text) {
     return replace(text, REPLACES_DISP, REPLACES_REFS);
   }
 
@@ -3109,7 +3110,7 @@ public class StringUtil extends StringUtilRt {
   }
 
   @Contract(value = "null -> null; !null->!null", pure = true)
-  public static String internEmptyString(String s) {
+  public static @NlsSafe String internEmptyString(String s) {
     return s == null ? null : s.isEmpty() ? "" : s;
   }
 
index 644e2cffeea5d592e666e0e893ed95760cb38af6..fe62097891a40638c81773fc097c91a05fad8124 100644 (file)
--- a/