diff --git a/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties index 218d0a87c09..72b76ef5c8d 100644 --- a/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties +++ b/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties @@ -216,9 +216,6 @@ suppress.warnings.family=Suppress Warnings suppress.warning.for=Suppress ''{0}'' for {1} {2} reflection.not.found=Reflection not found in the classpath -add.reflection.to.classpath=Add kotlin-reflect.jar to the classpath -add.test.to.classpath=Add kotlin-test.jar to the classpath -add.script.runtime.to.classpath=Add kotlin-script-runtime.jar to the classpath # Kotlin Compiler Settings Tab diff --git a/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinGradleNativeBundle.kt b/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinGradleNativeBundle.kt index 8135a9502a6..49924a7db1c 100644 --- a/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinGradleNativeBundle.kt +++ b/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinGradleNativeBundle.kt @@ -9,7 +9,6 @@ import com.intellij.CommonBundle import org.jetbrains.annotations.NonNls import org.jetbrains.annotations.PropertyKey import org.jetbrains.kotlin.idea.core.util.KotlinBundleBase -import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerEvaluationBundle import java.util.* object KotlinGradleNativeBundle : KotlinBundleBase() { @@ -20,6 +19,6 @@ object KotlinGradleNativeBundle : KotlinBundleBase() { @JvmStatic fun message(@NonNls @PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any?): String { - return CommonBundle.message(KotlinDebuggerEvaluationBundle.bundle, key, *params) + return CommonBundle.message(bundle, key, *params) } } \ No newline at end of file diff --git a/idea/idea-jvm/resources/org/jetbrains/kotlin/idea/KotlinJvmBundle.properties b/idea/idea-jvm/resources/org/jetbrains/kotlin/idea/KotlinJvmBundle.properties new file mode 100644 index 00000000000..0ef1baf3759 --- /dev/null +++ b/idea/idea-jvm/resources/org/jetbrains/kotlin/idea/KotlinJvmBundle.properties @@ -0,0 +1,69 @@ +classpath.add.reflection=Add ''kotlin-reflect.jar'' to the classpath +classpath.add.script.runtime=Add ''kotlin-script-runtime.jar'' to the classpath +classpath.add.kotlin.test=Add ''kotlin-test.jar'' to the classpath + +scratch.clear.button=Clear results +scratch.inlay.output.mode=Inlay output mode\n\nThe output is shown in the code editor right next to the expression. Well suited for a short single-line output. +scratch.inlay.output.mode.description=Inlay output mode +scratch.side.panel.output.mode=Side panel output mode\n\nThe output is shown in the separate panel. Useful if the output is long or multi-line. +scratch.side.panel.output.mode.description=Side panel output mode + +scratch.module.combobox=Use classpath of module +scratch.run.button=Run Scratch File +scratch.run.from.here.button=Run Scratch From Here +scratch.stop.button=Stop scratch execution + +scratch.is.repl.checkbox=Use REPL +scratch.is.repl.checkbox.description=Runs in the Kotlin REPL. Executes only the new expressions added to the end of the scratch + +scratch.is.interactive.checkbox=Interactive mode +scratch.is.interactive.checkbox.description=Runs after you stop typing for {0} seconds + +scratch.make.before.run.checkbox=Make module before Run +scratch.make.before.run.checkbox.description=Make module {0} before running scratch. Only compiled code is reachable from this scope + +incompatible.api.report=Report as Incompatible API +choose.module.modules={0}, {1} and {2,number,#} other modules +choose.module.modules.with.kotlin=Modules with Kotlin Files + +choose.path.title=Choose Destination Folder +choose.path.description=Choose folder + +configure.kotlin.title=Configure Kotlin with {0} +configure.kotlin.find.maven.versions=Find Kotlin Maven plugin versions +configure.kotlin.loading=loading… +configure.kotlin.cant.load.versions=Couldn't load versions list from search.maven.org + +copy.into.title=Copy Into… +copy.into.description=Choose folder where files will be copied + +file.exists.single=File ''{0}'' already exists in {1}. Do you want to overwrite it? +file.exists=Files already exist: \n{0}\nDo you want to overwrite them? +file.overwrite.title=Overwrite file +file.overwrite.overwrite=Overwrite +file.overwrite.cancel=Cancel +file.destination.folder=Destination folder +file.error.new.folder=Error during folder creation: {0} +file.error.copy=Error during copying {0} + +frameworks.remove.conflict.title=Framework Conflict +frameworks.remove.conflict.question=Current module is already configured with ''{0}'' framework.\nDo you want to remove it? + +library.label.jvm=Kotlin runtime +library.label.javascript=Kotlin JS library + +library.no.kotlin.library.title=No Kotlin Runtime Specified +library.no.kotlin.library.question=Do you want to continue with no Kotlin Runtime library? + +run.configuration.error.no.module=Module not specified +run.configuration.error.no.main.class=No main class specified +run.configuration.error.class.not.found=Class ''{0}'' not found in module ''{1}'' +run.configuration.error.class.no.main.method=Class ''{0}'' has no ''main()'' method +run.configuration.error.main.not.found=Function ''main()'' not found in class ''{0}'' +run.configuration.error.main.not.found.top.level=Top-level function ''main()'' not found in package ''{0}'' + +script.choose.file=Choose script file + +editor.editor.only=Editor only +editor.preview.only=Preview only +editor.editor.and.preview=Editor and preview \ No newline at end of file diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/KotlinJvmBundle.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/KotlinJvmBundle.kt new file mode 100644 index 00000000000..acbbc370ced --- /dev/null +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/KotlinJvmBundle.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea + +import com.intellij.CommonBundle +import org.jetbrains.annotations.NonNls +import org.jetbrains.annotations.PropertyKey +import org.jetbrains.kotlin.idea.core.util.KotlinBundleBase +import java.util.* + +object KotlinJvmBundle : KotlinBundleBase() { + @NonNls + private const val BUNDLE = "org.jetbrains.kotlin.idea.KotlinJvmBundle" + + override fun createBundle(): ResourceBundle = ResourceBundle.getBundle(BUNDLE) + + @JvmStatic + fun message(@NonNls @PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any?): String { + return CommonBundle.message(bundle, key, *params) + } +} \ No newline at end of file diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java index 1cf215e48ee..ac4d22514f9 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java @@ -25,6 +25,7 @@ import com.intellij.openapi.roots.libraries.LibraryKind; import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager; import com.intellij.openapi.ui.Messages; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import java.util.ArrayList; import java.util.Arrays; @@ -54,10 +55,11 @@ public class FrameworksCompatibilityUtils { } } - removeWithConfirm(rootModel, existingEntries, - String.format("Current module is already configured with '%s' framework.\nDo you want to remove it?", - presentableName), - "Framework Conflict"); + removeWithConfirm( + rootModel, existingEntries, + KotlinJvmBundle.message("frameworks.remove.conflict.question", presentableName), + KotlinJvmBundle.message("frameworks.remove.conflict.title") + ); } private static void removeWithConfirm(ModifiableRootModel rootModel, List orderEntries, String message, String title) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java index 45ca3d13d02..7d3ecef1a8d 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java @@ -44,6 +44,7 @@ import kotlin.collections.ArraysKt; import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle; import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter; import org.jetbrains.kotlin.platform.TargetPlatform; @@ -140,8 +141,8 @@ public class KotlinModuleSettingStep extends ModuleWizardStep { @NotNull protected String getLibraryLabelText() { - if (JvmPlatformKt.isJvm(targetPlatform)) return "Kotlin runtime"; - if (JsPlatformKt.isJs(targetPlatform)) return "Kotlin JS library"; + if (JvmPlatformKt.isJvm(targetPlatform)) return KotlinJvmBundle.message("library.label.jvm"); + if (JsPlatformKt.isJs(targetPlatform)) return KotlinJvmBundle.message("library.label.javascript"); throw new IllegalStateException("Only JS and JVM target are supported"); } @@ -167,8 +168,8 @@ public class KotlinModuleSettingStep extends ModuleWizardStep { Boolean selected = isLibrarySelected(); if (selected != null && !selected) { if (Messages.showDialog( - "Do you want to continue with no Kotlin Runtime library?", - "No Kotlin Runtime Specified", + KotlinJvmBundle.message("library.no.kotlin.library.question"), + KotlinJvmBundle.message("library.no.kotlin.library.title"), new String[] {CommonBundle.getYesButtonText(), CommonBundle.getNoButtonText()}, 1, Messages.getWarningIcon()) != Messages.YES) { return false; diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java index df28d70f1ce..e6b529a1f7f 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java @@ -26,6 +26,7 @@ import com.intellij.ui.HyperlinkLabel; import com.intellij.util.Function; import com.intellij.xml.util.XmlUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import org.jetbrains.kotlin.idea.configuration.ConfigureKotlinInProjectUtilsKt; import org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator; @@ -78,13 +79,15 @@ public class ChooseModulePanel { allModulesRadioButton.addActionListener(listener); if (modulesWithKtFiles.size() > 2) { - allModulesWithKtNames.setHtmlText("" + XmlUtil.escape(modulesWithKtFiles.get(0).getName()) + ", " + - XmlUtil.escape(modulesWithKtFiles.get(1).getName()) + - " and " + (modulesWithKtFiles.size() - 2) + " other modules"); + String firstName = modulesWithKtFiles.get(0).getName(); + String secondName = modulesWithKtFiles.get(1).getName(); + String message = KotlinJvmBundle.message("choose.module.modules", firstName, secondName, modulesWithKtFiles.size() - 2); + allModulesWithKtNames.setHtmlText("" + message); allModulesWithKtNames.addHyperlinkListener(new HyperlinkListener() { @Override public void hyperlinkUpdate(HyperlinkEvent event) { - JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep("Modules with Kotlin Files", modulesWithKtFiles) { + String title = KotlinJvmBundle.message("choose.module.modules.with.kotlin"); + JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep(title, modulesWithKtFiles) { @NotNull @Override public String getTextFor(Module value) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java index 04f764d39eb..512555373fb 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java @@ -26,6 +26,7 @@ import com.intellij.openapi.ui.TextFieldWithBrowseButton; import org.jdesktop.swingx.VerticalLayout; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import javax.swing.*; @@ -61,7 +62,11 @@ class ChoosePathDialog extends DialogWrapper { field.getField().setColumns(25); myPathField = new TextFieldWithBrowseButton(field.getField()); - myPathField.addBrowseFolderListener("Choose Destination Folder", "Choose folder", myProject, descriptor); + myPathField.addBrowseFolderListener( + KotlinJvmBundle.message("choose.path.title"), + KotlinJvmBundle.message("choose.path.description"), + myProject, descriptor + ); myPathField.setText(defaultPath); panel.add(myPathField); diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java index 95e9c3b2767..cb88249c7cb 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java @@ -35,6 +35,7 @@ import com.intellij.util.ui.AsyncProcessIcon; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import org.jetbrains.kotlin.idea.KotlinPluginUtil; import org.jetbrains.kotlin.idea.configuration.ConfigureKotlinInProjectUtilsKt; import org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator; @@ -76,12 +77,14 @@ public class ConfigureDialogWithModulesAndVersion extends DialogWrapper { ) { super(project); - setTitle("Configure Kotlin with " + configurator.getPresentableText()); + setTitle(KotlinJvmBundle.message("configure.kotlin.title", configurator.getPresentableText())); this.minimumVersion = minimumVersion; init(); - ProgressManager.getInstance().run(new Task.Backgroundable(project, "Find Kotlin Maven plugin versions", false) { + ProgressManager.getInstance().run(new Task.Backgroundable( + project, KotlinJvmBundle.message("configure.kotlin.find.maven.versions"), false + ) { @Override public void run(@NotNull ProgressIndicator indicator) { loadKotlinVersions(); @@ -95,7 +98,7 @@ public class ConfigureDialogWithModulesAndVersion extends DialogWrapper { } }); - kotlinVersionComboBox.addItem("loading..."); + kotlinVersionComboBox.addItem(KotlinJvmBundle.message("configure.kotlin.loading")); kotlinVersionComboBox.setEnabled(false); processIcon.resume(); @@ -150,7 +153,7 @@ public class ConfigureDialogWithModulesAndVersion extends DialogWrapper { public void run() { infoPanel.remove(processIcon); infoPanel.add(new JLabel(UIUtil.getBalloonWarningIcon()), BorderLayout.CENTER); - infoPanel.setToolTipText("Couldn't load versions list from search.maven.org"); + infoPanel.setToolTipText(KotlinJvmBundle.message("configure.kotlin.cant.load.versions")); infoPanel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); infoPanel.updateUI(); } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java index dcc9cbec3e9..9c1856f816f 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java @@ -24,6 +24,7 @@ import com.intellij.util.EventDispatcher; import kotlin.Unit; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import org.jetbrains.kotlin.idea.core.util.UiUtilsKt; import javax.swing.*; @@ -45,8 +46,9 @@ public class CopyIntoPanel { public CopyIntoPanel(@Nullable Project project, @NotNull String defaultPath, @Nullable String labelText) { copyIntoField.addBrowseFolderListener( - "Copy Into...", "Choose folder where files will be copied", project, - FileChooserDescriptorFactory.createSingleFolderDescriptor()); + KotlinJvmBundle.message("copy.into.title"), + KotlinJvmBundle.message("copy.into.description"), + project, FileChooserDescriptorFactory.createSingleFolderDescriptor()); UiUtilsKt.onTextChange( copyIntoField.getTextField(), (DocumentEvent e) -> { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java index a5020953d75..4500243a56b 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java @@ -28,6 +28,7 @@ import com.intellij.util.PathUtil; import kotlin.collections.CollectionsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import javax.swing.*; import java.io.File; @@ -83,20 +84,22 @@ public class FileUIUtils { if (existentFiles.size() == 1) { File conflictingFile = existentFiles.iterator().next().getValue(); - message = String.format("File \"%s\" already exists in %s.\nDo you want to overwrite it?", conflictingFile.getName(), - conflictingFile.getParentFile().getAbsolutePath()); + message = KotlinJvmBundle.message( + "file.exists.single", + conflictingFile.getName(), conflictingFile.getParentFile().getAbsolutePath()) + ; } else { Collection conflictFiles = CollectionsKt.map(existentFiles, Map.Entry::getValue); - message = String.format("Files already exist:\n%s\nDo you want to overwrite them?", StringUtil.join(conflictFiles, "\n")); + message = KotlinJvmBundle.message("file.exists", StringUtil.join(conflictFiles, "\n")); } int replaceIfExist = Messages.showYesNoDialog( null, message, - messagesTitle + ". Replace File", - "Overwrite", - "Cancel", + messagesTitle + KotlinJvmBundle.message("file.overwrite.title"), + KotlinJvmBundle.message("file.overwrite.overwrite"), + KotlinJvmBundle.message("file.overwrite.cancel"), Messages.getWarningIcon()); if (replaceIfExist != JOptionPane.YES_OPTION) { @@ -107,8 +110,8 @@ public class FileUIUtils { for (Map.Entry sourceToTarget : targetFiles.entrySet()) { try { String destinationPath = sourceToTarget.getValue().getParentFile().getAbsolutePath(); - if (!ProjectWizardUtil.createDirectoryIfNotExists("Destination folder", destinationPath, false)) { - Messages.showErrorDialog(String.format("Error during folder creating '%s'", destinationPath), messagesTitle + ". Error"); + if (!ProjectWizardUtil.createDirectoryIfNotExists(KotlinJvmBundle.message("file.destination.folder"), destinationPath, false)) { + Messages.showErrorDialog(KotlinJvmBundle.message("file.error.new.folder", destinationPath), messagesTitle); return null; } @@ -116,7 +119,7 @@ public class FileUIUtils { LocalFileSystem.getInstance().refreshAndFindFileByIoFile(sourceToTarget.getValue()); } catch (IOException e) { - Messages.showErrorDialog("Error with copy file " + sourceToTarget.getKey().getName(), messagesTitle + ". Error"); + Messages.showErrorDialog(KotlinJvmBundle.message("file.error.copy", sourceToTarget.getKey().getName()), messagesTitle); return null; } } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt index 2d7257db175..98feb911669 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt @@ -14,7 +14,7 @@ import com.intellij.openapi.roots.ProjectRootManager import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Errors -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator import org.jetbrains.kotlin.idea.facet.getCleanRuntimeLibraryVersion import org.jetbrains.kotlin.idea.quickfix.KotlinQuickFixAction @@ -33,7 +33,7 @@ class AddReflectionQuickFix(element: KtElement) : AddKotlinLibQuickFix( LibraryJarDescriptor.REFLECT_SRC_JAR ) ) { - override fun getText() = KotlinBundle.message("add.reflection.to.classpath") + override fun getText() = KotlinJvmBundle.message("classpath.add.reflection") override fun getFamilyName() = text override fun getLibraryDescriptor(module: Module) = MavenExternalLibraryDescriptor( @@ -47,7 +47,7 @@ class AddReflectionQuickFix(element: KtElement) : AddKotlinLibQuickFix( } class AddScriptRuntimeQuickFix(element: KtElement) : AddKotlinLibQuickFix(element, listOf(LibraryJarDescriptor.SCRIPT_RUNTIME_JAR)) { - override fun getText() = KotlinBundle.message("add.script.runtime.to.classpath") + override fun getText() = KotlinJvmBundle.message("classpath.add.script.runtime") override fun getFamilyName() = text override fun getLibraryDescriptor(module: Module) = MavenExternalLibraryDescriptor( @@ -68,7 +68,7 @@ class AddTestLibQuickFix(element: KtElement) : AddKotlinLibQuickFix( LibraryJarDescriptor.TEST_SRC_JAR ) ) { - override fun getText() = KotlinBundle.message("add.test.to.classpath") + override fun getText() = KotlinJvmBundle.message("classpath.add.kotlin.test") override fun getFamilyName() = text override fun getLibraryDescriptor(module: Module) = MavenExternalLibraryDescriptor( diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/api/AddToIncompatibleApiDialog.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/api/AddToIncompatibleApiDialog.java index e3cf8fbb9e0..7e02fe4eb80 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/api/AddToIncompatibleApiDialog.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/api/AddToIncompatibleApiDialog.java @@ -11,6 +11,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import javax.swing.*; import java.awt.*; @@ -27,7 +28,7 @@ public class AddToIncompatibleApiDialog extends DialogWrapper { this.project = project; setModal(true); - setTitle("Report as Incompatible API"); + setTitle(KotlinJvmBundle.message("incompatible.api.report")); referenceTextField.setText(qualifiedReference); init(); diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java index a0eed1c90a2..c99ff9fa10c 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java @@ -53,6 +53,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration; import org.jetbrains.kotlin.asJava.elements.KtLightMethod; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import org.jetbrains.kotlin.idea.MainFunctionDetector; import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils; import org.jetbrains.kotlin.idea.core.FileIndexUtilsKt; @@ -208,17 +209,20 @@ public class KotlinRunConfiguration extends JetRunConfiguration { Module module = getConfigurationModule().getModule(); if (module == null) { - throw new RuntimeConfigurationError("Module not specified"); + throw new RuntimeConfigurationError(KotlinJvmBundle.message("run.configuration.error.no.module")); } if (StringUtil.isEmpty(MAIN_CLASS_NAME)) { - throw new RuntimeConfigurationError("No main class specified"); + throw new RuntimeConfigurationError(KotlinJvmBundle.message("run.configuration.error.no.main.class")); } PsiClass psiClass = JavaExecutionUtil.findMainClass(module, MAIN_CLASS_NAME); if (psiClass == null) { - throw new RuntimeConfigurationWarning("Class '" + MAIN_CLASS_NAME + "' not found in module " + getConfigurationModule().getModuleName()); + String moduleName = getConfigurationModule().getModuleName(); + throw new RuntimeConfigurationWarning( + KotlinJvmBundle.message("run.configuration.error.class.not.found", MAIN_CLASS_NAME, moduleName) + ); } if (findMainFun(psiClass) == null) { - throw new RuntimeConfigurationWarning("The class " + MAIN_CLASS_NAME + " has no main method"); + throw new RuntimeConfigurationWarning(KotlinJvmBundle.message("run.configuration.error.class.no.main.method", MAIN_CLASS_NAME)); } } @@ -398,9 +402,9 @@ public class KotlinRunConfiguration extends JetRunConfiguration { //noinspection ConstantConditions FqName classFqName = new FqName(psiClass.getQualifiedName()); if (psiClass instanceof KtLightClassForSourceDeclaration) { - return String.format("Function 'main' not found in class '%s'", classFqName); + return KotlinJvmBundle.message("run.configuration.error.main.not.found", classFqName); } - return String.format("Top-level function 'main' not found in package '%s'", classFqName.parent()); + return KotlinJvmBundle.message("run.configuration.error.main.not.found.top.level", classFqName.parent()); } private static void setupModulePath(JavaParameters params, JavaRunConfigurationModule module) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationEditor.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationEditor.java index c80465751b1..9b578321641 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationEditor.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationEditor.java @@ -21,6 +21,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.PanelWithAnchor; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import org.jetbrains.kotlin.parsing.KotlinParserDefinition; import javax.swing.*; @@ -49,7 +50,10 @@ public class KotlinStandaloneScriptRunConfigurationEditor extends SettingsEditor }) .withTreeRootVisible(true); - chooseScriptFileTextField.addBrowseFolderListener("Choose script file", null, project, descriptor, TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT); + chooseScriptFileTextField.addBrowseFolderListener( + KotlinJvmBundle.message("script.choose.file"), + null, project, descriptor, TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT + ); } @Override diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/ClearScratchAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/ClearScratchAction.kt index ecf0b69172c..1f6b5a66e1b 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/ClearScratchAction.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/ClearScratchAction.kt @@ -20,11 +20,11 @@ import com.intellij.icons.AllIcons import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.scratch.ui.findScratchFileEditorWithPreview class ClearScratchAction : ScratchAction( - KotlinBundle.message("scratch.clear.button"), + KotlinJvmBundle.message("scratch.clear.button"), AllIcons.Actions.GC ) { override fun actionPerformed(e: AnActionEvent) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt index e19ca15b836..a2a98a03bc9 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt @@ -25,13 +25,13 @@ import com.intellij.task.ProjectTaskContext import com.intellij.task.ProjectTaskManager import com.intellij.task.ProjectTaskNotification import com.intellij.task.ProjectTaskResult -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.scratch.* import org.jetbrains.kotlin.idea.scratch.printDebugMessage import org.jetbrains.kotlin.idea.scratch.LOG as log class RunScratchAction : ScratchAction( - KotlinBundle.message("scratch.run.button"), + KotlinJvmBundle.message("scratch.run.button"), AllIcons.Actions.Execute ) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt.192 b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt.192 index a922289d80f..1f9b354d729 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt.192 +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt.192 @@ -22,13 +22,13 @@ import com.intellij.openapi.keymap.KeymapManager import com.intellij.openapi.keymap.KeymapUtil import com.intellij.openapi.project.DumbService import com.intellij.task.ProjectTaskManager -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.scratch.* import org.jetbrains.kotlin.idea.scratch.printDebugMessage import org.jetbrains.kotlin.idea.scratch.LOG as log class RunScratchAction : ScratchAction( - KotlinBundle.message("scratch.run.button"), + KotlinJvmBundle.message("scratch.run.button"), AllIcons.Actions.Execute ) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchFromHereAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchFromHereAction.kt index 9abaf5340ae..028e92b47b9 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchFromHereAction.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchFromHereAction.kt @@ -7,12 +7,12 @@ package org.jetbrains.kotlin.idea.scratch.actions import com.intellij.icons.AllIcons import com.intellij.openapi.actionSystem.AnActionEvent -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.scratch.ScratchFile import org.jetbrains.kotlin.idea.scratch.getScratchFileFromSelectedEditor class RunScratchFromHereAction : ScratchAction( - KotlinBundle.message("scratch.run.from.here.button"), + KotlinJvmBundle.message("scratch.run.from.here.button"), AllIcons.Diff.ArrowRight ) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/StopScratchAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/StopScratchAction.kt index 2176cf08715..a45d8c94303 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/StopScratchAction.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/StopScratchAction.kt @@ -7,11 +7,11 @@ package org.jetbrains.kotlin.idea.scratch.actions import com.intellij.icons.AllIcons import com.intellij.openapi.actionSystem.AnActionEvent -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.scratch.getScratchFileFromSelectedEditor class StopScratchAction : ScratchAction( - KotlinBundle.message("scratch.stop.button"), + KotlinJvmBundle.message("scratch.stop.button"), AllIcons.Actions.Suspend ) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/KtScratchFileEditorProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/KtScratchFileEditorProvider.kt index 8bf4a965088..4d9b4808c87 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/KtScratchFileEditorProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/KtScratchFileEditorProvider.kt @@ -29,7 +29,7 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.pom.Navigatable import com.intellij.psi.PsiManager import org.jetbrains.annotations.TestOnly -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.core.util.getLineNumber import org.jetbrains.kotlin.idea.scratch.* import org.jetbrains.kotlin.idea.scratch.output.* @@ -171,13 +171,13 @@ class KtScratchFileEditorWithPreview private constructor( * That's why we set long and descriptive [Presentation.getText], but short [Presentation.getDescription]. */ override fun getShowEditorAction(): ToggleAction = super.getShowEditorAction().apply { - templatePresentation.text = KotlinBundle.message("scratch.inlay.output.mode") - templatePresentation.description = KotlinBundle.message("scratch.inlay.output.mode.description") + templatePresentation.text = KotlinJvmBundle.message("scratch.inlay.output.mode") + templatePresentation.description = KotlinJvmBundle.message("scratch.inlay.output.mode.description") } override fun getShowEditorAndPreviewAction(): ToggleAction = super.getShowEditorAndPreviewAction().apply { - templatePresentation.text = KotlinBundle.message("scratch.side.panel.output.mode") - templatePresentation.description = KotlinBundle.message("scratch.side.panel.output.mode.description") + templatePresentation.text = KotlinJvmBundle.message("scratch.side.panel.output.mode") + templatePresentation.description = KotlinJvmBundle.message("scratch.side.panel.output.mode.description") } override fun setLayout(newLayout: Layout) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ModulesComboBoxAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ModulesComboBoxAction.kt index c31af815b84..d0fbf52932d 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ModulesComboBoxAction.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ModulesComboBoxAction.kt @@ -16,14 +16,16 @@ import com.intellij.openapi.project.DumbAwareAction import com.intellij.openapi.vcs.changes.committed.LabeledComboBoxAction import com.intellij.util.ui.UIUtil import org.jetbrains.annotations.TestOnly -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.caches.project.productionSourceInfo import org.jetbrains.kotlin.idea.caches.project.testSourceInfo import org.jetbrains.kotlin.idea.scratch.ScratchFile import org.jetbrains.kotlin.idea.scratch.isKotlinWorksheet import javax.swing.JComponent -class ModulesComboBoxAction(private val scratchFile: ScratchFile) : LabeledComboBoxAction(KotlinBundle.message("scratch.module.combobox")) { +class ModulesComboBoxAction(private val scratchFile: ScratchFile) : + LabeledComboBoxAction(KotlinJvmBundle.message("scratch.module.combobox")) +{ override fun createPopupActionGroup(button: JComponent): DefaultActionGroup { val actionGroup = DefaultActionGroup() actionGroup.add(ModuleIsNotSelectedAction(ConfigurationModuleSelector.NO_MODULE_TEXT)) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt index 85efe773e4f..349862e3485 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.idea.scratch.ui import com.intellij.openapi.actionSystem.* import com.intellij.openapi.application.ApplicationManager -import org.jetbrains.kotlin.idea.KotlinBundle +import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.scratch.ScratchFile import org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner import org.jetbrains.kotlin.idea.scratch.actions.ClearScratchAction @@ -77,12 +77,12 @@ class ScratchTopPanel(val scratchFile: ScratchFile) { } } - private inner class IsMakeBeforeRunAction : SmallBorderCheckboxAction(KotlinBundle.message("scratch.make.before.run.checkbox")) { + private inner class IsMakeBeforeRunAction : SmallBorderCheckboxAction(KotlinJvmBundle.message("scratch.make.before.run.checkbox")) { override fun update(e: AnActionEvent) { super.update(e) e.presentation.isVisible = scratchFile.module != null e.presentation.description = scratchFile.module?.let { selectedModule -> - KotlinBundle.message("scratch.make.before.run.checkbox.description", selectedModule.name) + KotlinJvmBundle.message("scratch.make.before.run.checkbox.description", selectedModule.name) } } @@ -96,8 +96,8 @@ class ScratchTopPanel(val scratchFile: ScratchFile) { } private inner class IsInteractiveCheckboxAction : SmallBorderCheckboxAction( - text = KotlinBundle.message("scratch.is.interactive.checkbox"), - description = KotlinBundle.message("scratch.is.interactive.checkbox.description", ScratchFileAutoRunner.AUTO_RUN_DELAY_IN_SECONDS) + text = KotlinJvmBundle.message("scratch.is.interactive.checkbox"), + description = KotlinJvmBundle.message("scratch.is.interactive.checkbox.description", ScratchFileAutoRunner.AUTO_RUN_DELAY_IN_SECONDS) ) { override fun isSelected(e: AnActionEvent): Boolean { return scratchFile.options.isInteractiveMode @@ -109,8 +109,8 @@ class ScratchTopPanel(val scratchFile: ScratchFile) { } private inner class IsReplCheckboxAction : SmallBorderCheckboxAction( - text = KotlinBundle.message("scratch.is.repl.checkbox"), - description = KotlinBundle.message("scratch.is.repl.checkbox.description") + text = KotlinJvmBundle.message("scratch.is.repl.checkbox"), + description = KotlinJvmBundle.message("scratch.is.repl.checkbox.description") ) { override fun isSelected(e: AnActionEvent): Boolean { return scratchFile.options.isRepl diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java index 0b606cd84cb..43aae0cf629 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java @@ -25,6 +25,7 @@ import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import javax.swing.*; import java.awt.*; @@ -388,9 +389,9 @@ public class TextEditorWithPreview extends UserDataHolderBase implements FileEdi } public enum Layout { - SHOW_EDITOR("Editor only", AllIcons.General.LayoutEditorOnly), - SHOW_PREVIEW("Preview only", AllIcons.General.LayoutPreviewOnly), - SHOW_EDITOR_AND_PREVIEW("Editor and Preview", AllIcons.General.LayoutEditorPreview); + SHOW_EDITOR(KotlinJvmBundle.message("editor.editor.only"), AllIcons.General.LayoutEditorOnly), + SHOW_PREVIEW(KotlinJvmBundle.message("editor.preview.only"), AllIcons.General.LayoutPreviewOnly), + SHOW_EDITOR_AND_PREVIEW(KotlinJvmBundle.message("editor.editor.and.preview"), AllIcons.General.LayoutEditorPreview); private final String myName; private final Icon myIcon; diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java.201 b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java.201 index fb663db09f4..d990603fafa 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java.201 +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/TextEditorWithPreview.java.201 @@ -24,6 +24,7 @@ import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.idea.KotlinJvmBundle; import javax.swing.*; import java.awt.*; @@ -387,9 +388,9 @@ public class TextEditorWithPreview extends UserDataHolderBase implements FileEdi } public enum Layout { - SHOW_EDITOR("Editor only", AllIcons.General.LayoutEditorOnly), - SHOW_PREVIEW("Preview only", AllIcons.General.LayoutPreviewOnly), - SHOW_EDITOR_AND_PREVIEW("Editor and Preview", AllIcons.General.LayoutEditorPreview); + SHOW_EDITOR(KotlinJvmBundle.message("editor.editor.only"), AllIcons.General.LayoutEditorOnly), + SHOW_PREVIEW(KotlinJvmBundle.message("editor.preview.only"), AllIcons.General.LayoutPreviewOnly), + SHOW_EDITOR_AND_PREVIEW(KotlinJvmBundle.message("editor.editor.and.preview"), AllIcons.General.LayoutEditorPreview); private final String myName; private final Icon myIcon;