diff --git a/idea/idea-gradle/res/messages/KotlinIdeaGradleBundle.properties b/idea/idea-gradle/res/messages/KotlinIdeaGradleBundle.properties index e69de29bb2d..1949809ad16 100644 --- a/idea/idea-gradle/res/messages/KotlinIdeaGradleBundle.properties +++ b/idea/idea-gradle/res/messages/KotlinIdeaGradleBundle.properties @@ -0,0 +1,43 @@ +action.label.text.load.script.configuration=Load script configuration +action.text.install=Install +action.text.show.kotlin.gradle.dsl.logs.in=Show Kotlin Gradle DSL Logs in {0} +description.text.a.single.platform.kotlin.library.or.application.targeting.javascript=A single-platform Kotlin library or application targeting JavaScript +description.text.a.single.platform.kotlin.library.or.application.targeting.js.for.browser=A single-platform Kotlin library or application targeting JavaScript for browser +description.text.a.single.platform.kotlin.library.or.application.targeting.js.for.node.js=A single-platform Kotlin library or application targeting JavaScript for Node.js +description.text.a.single.platform.kotlin.library.or.application.targeting.the.jvm=A single-platform Kotlin library or application targeting the JVM +description.text.adds.support.for.building.kotlin.projects=Adds support for building Kotlin projects +description.text.multi.targeted.jvm.js.ios.etc.project.with.shared.code.in.common.modules=Multi-targeted (JVM, JS, iOS, etc.) project with shared code in common modules. The targets can be configured in the project''s build script. +description.text.multiplatform.gradle.project.allowing.reuse.of.the.same.kotlin.code.between.android.and.ios.mobile.platforms=Multiplatform Gradle project allowing reuse of the same Kotlin code between Android and iOS mobile platforms +description.text.multiplatform.gradle.project.allowing.reuse.of.the.same.kotlin.code.between.js.client.and.jvm.server=Multiplatform Gradle project allowing reuse of the same Kotlin code between JS Client and JVM Server +description.text.multiplatform.gradle.project.allowing.reuse.of.the.same.kotlin.code.between.two.mobile.platforms.jvm.android.and.native=Multiplatform Gradle project allowing reuse of the same Kotlin code between two mobile platforms (JVM/Android and Native) +description.text.multiplatform.jvm.js.native=Multiplatform Gradle project allowing reuse of the same Kotlin code between all three main platforms (JVM, JS, and Native) +error.text.cannot.find.build.gradle.file.for.module=Cannot find build.gradle file for module {0} +error.text.coroutines.support.requires.version.1.1.or.later.of.the.kotlin.runtime.library=Coroutines support requires version 1.1 or later of the Kotlin runtime library. Please update the version in your build script. +error.text.different.kotlin.gradle.version=Kotlin version that is used for building with Gradle ({0}) differs from the one bundled into the IDE plugin ({1}) +error.text.different.kotlin.library.version=Plugin version ({0}) is not the same as library version ({1}) +error.text.failed.to.load.script.definitions.by=Failed to load script definitions by {0} +error.text.highlighting.is.impossible.during.gradle.import=Highlighting is impossible during Gradle Import +error.text.invalid.gradle.libraries.directory=Invalid Gradle libraries directory {0} +error.text.missing.jars.in.gradle.directory=Missing jars in gradle directory +error.text.project.isn.t.linked.with.gradle=Project ''{0}'' isn''t linked with Gradle +error.text.support.requires.version={0} support requires version {1} or later of the Kotlin runtime library. Please update the version in your build script. +error.text.this.language.feature.requires.version=This language feature requires version {0} or later of the Kotlin runtime library. Please update the version in your build script. +error.text.unable.to.get.gradle.home.directory=Unable to get Gradle home directory +title.plugin.suggestion=Plugins Suggestion +notification.text.native.debug.provides.debugger.for.kotlin.native=Native Debug provides debugger for Kotlin/Native +presentable.text.java.with.gradle=Java with Gradle +presentable.text.javascript.with.gradle=JavaScript with Gradle +presentable.text.js.client.and.jvm.server.gradle=JS Client and JVM Server | Gradle +presentable.text.mobile.android.ios.gradle=Mobile Android/iOS | Gradle +presentable.text.mobile.shared.library.gradle=Mobile Shared Library | Gradle +presentable.text.multiplatform.library.gradle=Multiplatform Library | Gradle +text.couldn.t.configure.kotlin.gradle.plugin.automatically=Couldn''t configure kotlin-gradle plugin automatically. +text.default.kotlin.gradle.script=Default Kotlin Gradle Script +text.gradle.dsl.logs.cannot.be.found.automatically.see.how.to.find.logs=Gradle DSL Logs cannot be found automatically.
See how to find logs here." +text.see.manual.installation.instructions=See manual installation instructions here. +text.the.associated.gradle.project.isn.t.imported=The associated Gradle Project isn''t imported. +text.was.modified={0} was modified +title.configure.kotlin.gradle.plugin=Configure Kotlin-Gradle Plugin +title.kotlin.build.script=Kotlin Build Script +title.update.language.version=Update Language Version +tool.tip.text.the.external.gradle.project.needs.to.be.imported.to.get.this.script.analyzed=The external Gradle project needs to be imported to get this script analyzed.
You can import the related Gradle project or click "{0}" to get code insight without importing. \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt index 3c0e3d54bf0..b103d5e48be 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt @@ -18,6 +18,7 @@ import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.wm.WindowManager import com.intellij.psi.PsiFile import com.intellij.ui.BrowserHyperlinkListener +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import java.io.File class ShowKotlinGradleDslLogs : IntentionAction, AnAction(), DumbAware { @@ -47,7 +48,10 @@ class ShowKotlinGradleDslLogs : IntentionAction, AnAction(), DumbAware { ?: WindowManager.getInstance().findVisibleFrame().rootPane JBPopupFactory.getInstance() .createHtmlTextBalloonBuilder( - "Gradle DSL Logs cannot be found automatically.
See how to find logs here.", + KotlinIdeaGradleBundle.message( + "text.gradle.dsl.logs.cannot.be.found.automatically.see.how.to.find.logs", + gradleTroubleshootingLink + ), MessageType.ERROR, BrowserHyperlinkListener.INSTANCE ) @@ -79,6 +83,6 @@ class ShowKotlinGradleDslLogs : IntentionAction, AnAction(), DumbAware { companion object { private const val gradleTroubleshootingLink = "https://docs.gradle.org/current/userguide/kotlin_dsl.html#troubleshooting" - val NAME = "Show Kotlin Gradle DSL Logs in ${RevealFileAction.getFileManagerName()}" + val NAME = KotlinIdeaGradleBundle.message("action.text.show.kotlin.gradle.dsl.logs.in", RevealFileAction.getFileManagerName()) } } \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt.192 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt.192 index 7b82cd43452..ffc86daf4ca 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt.192 +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/actions/ShowKotlinGradleDslLogs.kt.192 @@ -18,6 +18,7 @@ import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.wm.WindowManager import com.intellij.psi.PsiFile import com.intellij.ui.BrowserHyperlinkListener +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import java.io.File class ShowKotlinGradleDslLogs : IntentionAction, AnAction(), DumbAware { @@ -46,7 +47,10 @@ class ShowKotlinGradleDslLogs : IntentionAction, AnAction(), DumbAware { ?: WindowManager.getInstance().findVisibleFrame().rootPane JBPopupFactory.getInstance() .createHtmlTextBalloonBuilder( - "Gradle DSL Logs cannot be found automatically.
See how to find logs here.", + KotlinIdeaGradleBundle.message( + "text.gradle.dsl.logs.cannot.be.found.automatically.see.how.to.find.logs", + gradleTroubleshootingLink + ), MessageType.ERROR, BrowserHyperlinkListener.INSTANCE ) @@ -78,6 +82,6 @@ class ShowKotlinGradleDslLogs : IntentionAction, AnAction(), DumbAware { companion object { private const val gradleTroubleshootingLink = "https://docs.gradle.org/current/userguide/kotlin_dsl.html#troubleshooting" - val NAME = "Show Kotlin Gradle DSL Logs in ${ShowFilePathAction.getFileManagerName()}" + val NAME = KotlinIdeaGradleBundle.message("action.text.show.kotlin.gradle.dsl.logs.in", RevealFileAction.getFileManagerName()) } } \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt index 148098332a9..53a14939477 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt @@ -29,6 +29,7 @@ import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.openapi.vfs.VfsUtil.createDirectoryIfMissing import com.intellij.psi.PsiFile import org.jetbrains.kotlin.idea.KotlinIcons +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter import org.jetbrains.kotlin.idea.statistics.FUSEventGroups @@ -194,7 +195,8 @@ open class GradleKotlinJavaFrameworkSupportProvider( } } - override fun getDescription() = "A single-platform Kotlin library or application targeting the JVM" + override fun getDescription() = + KotlinIdeaGradleBundle.message("description.text.a.single.platform.kotlin.library.or.application.targeting.the.jvm") } abstract class GradleKotlinJSFrameworkSupportProvider( @@ -228,7 +230,8 @@ abstract class GradleKotlinJSFrameworkSupportProvider( override fun getPluginExpression() = "id 'org.jetbrains.kotlin.js'" override fun getDependencies(sdk: Sdk?) = listOf(MAVEN_JS_STDLIB_ID) override fun getTestDependencies() = listOf(MAVEN_JS_TEST_ID) - override fun getDescription() = "A single-platform Kotlin library or application targeting JavaScript" + override fun getDescription() = + KotlinIdeaGradleBundle.message("description.text.a.single.platform.kotlin.library.or.application.targeting.javascript") } open class GradleKotlinJSBrowserFrameworkSupportProvider( @@ -238,7 +241,8 @@ open class GradleKotlinJSBrowserFrameworkSupportProvider( override val jsSubTargetName: String get() = "browser" - override fun getDescription() = "A single-platform Kotlin library or application targeting JavaScript for browser" + override fun getDescription() = + KotlinIdeaGradleBundle.message("description.text.a.single.platform.kotlin.library.or.application.targeting.js.for.browser") override fun addSupport( buildScriptData: BuildScriptDataBuilder, @@ -301,7 +305,8 @@ open class GradleKotlinJSNodeFrameworkSupportProvider( override val jsSubTargetName: String get() = "nodejs" - override fun getDescription() = "A single-platform Kotlin library or application targeting JavaScript for Node.js" + override fun getDescription() = + KotlinIdeaGradleBundle.message("description.text.a.single.platform.kotlin.library.or.application.targeting.js.for.node.js") } open class GradleKotlinMPPFrameworkSupportProvider : GradleKotlinFrameworkSupportProvider( @@ -314,8 +319,7 @@ open class GradleKotlinMPPFrameworkSupportProvider : GradleKotlinFrameworkSuppor override fun getTestDependencies(): List = listOf() override fun getDescription() = - "Multi-targeted (JVM, JS, iOS, etc.) project with shared code in common modules. " + - "The targets can be configured in the project's build script." + KotlinIdeaGradleBundle.message("description.text.multi.targeted.jvm.js.ios.etc.project.with.shared.code.in.common.modules") } open class GradleKotlinMPPSourceSetsFrameworkSupportProvider : GradleKotlinMPPFrameworkSupportProvider() { diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileMultiplatformModuleBuilder.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileMultiplatformModuleBuilder.kt index 867b202f2b3..3899d1432db 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileMultiplatformModuleBuilder.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileMultiplatformModuleBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.configuration import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.configuration.xcode.XcodeProjectConfigurator import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder import java.io.BufferedWriter @@ -29,10 +30,10 @@ class KotlinGradleMobileMultiplatformModuleBuilder : override fun getBuilderId() = "kotlin.gradle.multiplatform.mobile" - override fun getPresentableName() = "Mobile Android/iOS | Gradle" + override fun getPresentableName() = KotlinIdeaGradleBundle.message("presentable.text.mobile.android.ios.gradle") override fun getDescription() = - "Multiplatform Gradle project allowing reuse of the same Kotlin code between Android and iOS mobile platforms" + KotlinIdeaGradleBundle.message("description.text.multiplatform.gradle.project.allowing.reuse.of.the.same.kotlin.code.between.android.and.ios.mobile.platforms") override fun BuildScriptDataBuilder.setupAdditionalDependencies() { addBuildscriptDependencyNotation("classpath 'com.android.tools.build:gradle:3.2.1'") diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileSharedMultiplatformModuleBuilder.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileSharedMultiplatformModuleBuilder.kt index 033786a25cd..ac34516a2e3 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileSharedMultiplatformModuleBuilder.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleMobileSharedMultiplatformModuleBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.configuration import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import java.io.BufferedWriter class KotlinGradleMobileSharedMultiplatformModuleBuilder : KotlinGradleAbstractMultiplatformModuleBuilder() { @@ -25,10 +26,10 @@ class KotlinGradleMobileSharedMultiplatformModuleBuilder : KotlinGradleAbstractM override fun getBuilderId() = "kotlin.gradle.multiplatform.mobileshared" - override fun getPresentableName() = "Mobile Shared Library | Gradle" + override fun getPresentableName() = KotlinIdeaGradleBundle.message("presentable.text.mobile.shared.library.gradle") override fun getDescription() = - "Multiplatform Gradle project allowing reuse of the same Kotlin code between two mobile platforms (JVM/Android and Native)" + KotlinIdeaGradleBundle.message("description.text.multiplatform.gradle.project.allowing.reuse.of.the.same.kotlin.code.between.two.mobile.platforms.jvm.android.and.native") override fun createProjectSkeleton(rootDir: VirtualFile) { val src = rootDir.createChildDirectory(this, "src") diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.kt index 2c57182c003..96e583a04bb 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.configuration import com.intellij.openapi.module.Module import com.intellij.openapi.projectRoots.Sdk import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.core.isAndroidModule import org.jetbrains.kotlin.idea.versions.getDefaultJvmTarget import org.jetbrains.kotlin.platform.TargetPlatform @@ -36,7 +37,7 @@ class KotlinGradleModuleConfigurator : KotlinWithGradleConfigurator() { override fun getTargetPlatform() = JvmPlatforms.CompatJvmPlatform override val presentableText: String - get() = "Java with Gradle" + get() = KotlinIdeaGradleBundle.message("presentable.text.java.with.gradle") override val kotlinPluginName: String get() = KOTLIN diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradlePluginDescription.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradlePluginDescription.kt index 56c18820c1f..83012fb5fc6 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradlePluginDescription.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradlePluginDescription.kt @@ -16,9 +16,10 @@ package org.jetbrains.kotlin.idea.configuration +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.plugins.gradle.codeInsight.GradlePluginDescriptionsExtension class KotlinGradlePluginDescription : GradlePluginDescriptionsExtension { override fun getPluginDescriptions(): Map = - mapOf("kotlin" to "Adds support for building Kotlin projects") + mapOf("kotlin" to KotlinIdeaGradleBundle.message("description.text.adds.support.for.building.kotlin.projects")) } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSharedMultiplatformModuleBuilder.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSharedMultiplatformModuleBuilder.kt index 4bf4566b6da..fb840c1e4cc 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSharedMultiplatformModuleBuilder.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSharedMultiplatformModuleBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.configuration import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.konan.target.presetName import java.io.BufferedWriter @@ -29,10 +30,10 @@ class KotlinGradleSharedMultiplatformModuleBuilder : KotlinGradleAbstractMultipl override fun getBuilderId() = "kotlin.gradle.multiplatform.shared" - override fun getPresentableName() = "Multiplatform Library | Gradle" + override fun getPresentableName() = KotlinIdeaGradleBundle.message("presentable.text.multiplatform.library.gradle") override fun getDescription() = - "Multiplatform Gradle project allowing reuse of the same Kotlin code between all three main platforms (JVM, JS, and Native)" + KotlinIdeaGradleBundle.message("description.text.multiplatform.jvm.js.native") override fun createProjectSkeleton(rootDir: VirtualFile) { val src = rootDir.createChildDirectory(this, "src") diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleWebMultiplatformModuleBuilder.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleWebMultiplatformModuleBuilder.kt index c234eec8bdf..338673f855e 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleWebMultiplatformModuleBuilder.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleWebMultiplatformModuleBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.configuration import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder import java.io.BufferedWriter @@ -24,10 +25,10 @@ class KotlinGradleWebMultiplatformModuleBuilder : KotlinGradleAbstractMultiplatf override fun getBuilderId() = "kotlin.gradle.multiplatform.web" - override fun getPresentableName() = "JS Client and JVM Server | Gradle" + override fun getPresentableName() = KotlinIdeaGradleBundle.message("presentable.text.js.client.and.jvm.server.gradle") override fun getDescription() = - "Multiplatform Gradle project allowing reuse of the same Kotlin code between JS Client and JVM Server" + KotlinIdeaGradleBundle.message("description.text.multiplatform.gradle.project.allowing.reuse.of.the.same.kotlin.code.between.js.client.and.jvm.server") override fun BuildScriptDataBuilder.setupAdditionalDependencies() { addBuildscriptRepositoriesDefinition("jcenter()") diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinJsGradleModuleConfigurator.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinJsGradleModuleConfigurator.kt index eed0056db04..9a36459eb5d 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinJsGradleModuleConfigurator.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinJsGradleModuleConfigurator.kt @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.configuration import com.intellij.openapi.projectRoots.Sdk import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.util.module import org.jetbrains.kotlin.idea.versions.MAVEN_JS_STDLIB_ID import org.jetbrains.kotlin.platform.TargetPlatform @@ -25,7 +26,7 @@ import org.jetbrains.kotlin.platform.js.JsPlatforms class KotlinJsGradleModuleConfigurator : KotlinWithGradleConfigurator() { override val name: String = "gradle-js" - override val presentableText: String = "JavaScript with Gradle" + override val presentableText: String = KotlinIdeaGradleBundle.message("presentable.text.javascript.with.gradle") override val targetPlatform: TargetPlatform = JsPlatforms.defaultJsPlatform override val kotlinPluginName: String = KOTLIN_JS override fun getKotlinPluginExpression(forKotlinDsl: Boolean): String = diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.kt index c49e5f2ea5f..0e2dcac579a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.kt @@ -29,6 +29,7 @@ import org.gradle.util.GradleVersion import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.config.CoroutineSupport import org.jetbrains.kotlin.config.LanguageFeature +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion import org.jetbrains.kotlin.idea.facet.toApiVersion import org.jetbrains.kotlin.idea.framework.ui.ConfigureDialogWithModulesAndVersion @@ -140,7 +141,10 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { if (file != null && canConfigureFile(file)) { configureModule(module, file, false, kotlinVersion, collector, filesToOpen) } else { - showErrorMessage(project, "Cannot find build.gradle file for module " + module.name) + showErrorMessage( + project, + KotlinIdeaGradleBundle.message("error.text.cannot.find.build.gradle.file.for.module", module.name) + ) } } return filesToOpen @@ -207,7 +211,7 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { val virtualFile = file.virtualFile if (virtualFile != null && isModified) { - collector.addMessage(virtualFile.path + " was modified") + collector.addMessage(KotlinIdeaGradleBundle.message("text.was.modified", virtualFile.path)) } return isModified } @@ -226,9 +230,8 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { if (runtimeUpdateRequired) { Messages.showErrorDialog( module.project, - "This language feature requires version $requiredStdlibVersion or later of the Kotlin runtime library. " + - "Please update the version in your build script.", - "Update Language Version" + KotlinIdeaGradleBundle.message("error.text.this.language.feature.requires.version", requiredStdlibVersion), + KotlinIdeaGradleBundle.message("title.update.language.version") ) return } @@ -247,8 +250,7 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { if (runtimeUpdateRequired) { Messages.showErrorDialog( module.project, - "Coroutines support requires version 1.1 or later of the Kotlin runtime library. " + - "Please update the version in your build script.", + KotlinIdeaGradleBundle.message("error.text.coroutines.support.requires.version.1.1.or.later.of.the.kotlin.runtime.library"), ChangeCoroutineSupportFix.getFixText(state) ) return @@ -271,8 +273,7 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { if (state != LanguageFeature.State.DISABLED && getRuntimeLibraryVersion(module).toApiVersion() < sinceVersion) { Messages.showErrorDialog( module.project, - "${feature.presentableName} support requires version $sinceVersion or later of the Kotlin runtime library. " + - "Please update the version in your build script.", + KotlinIdeaGradleBundle.message("error.text.support.requires.version", feature.presentableName, sinceVersion), ChangeCoroutineSupportFix.getFixText(state) ) return @@ -331,7 +332,7 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { buildScript.virtualFile?.let { createConfigureKotlinNotificationCollector(buildScript.project) - .addMessage(it.path + " was modified") + .addMessage(KotlinIdeaGradleBundle.message("text.was.modified", it.path)) .showNotification() } } @@ -431,7 +432,7 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { } private fun findBuildGradleFile(path: String, vararg fileNames: String): File? = - fileNames.asSequence().map { File(path + "/" + it) }.firstOrNull { it.exists() } + fileNames.asSequence().map { File("$path/$it") }.firstOrNull { it.exists() } private fun File.getPsiFile(project: Project) = VfsUtil.findFileByIoFile(this, true)?.let { PsiManager.getInstance(project).findFile(it) @@ -440,10 +441,10 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator { private fun showErrorMessage(project: Project, message: String?) { Messages.showErrorDialog( project, - "Couldn't configure kotlin-gradle plugin automatically.
" + - (if (message != null) message + "
" else "") + - "
See manual installation instructions here.", - "Configure Kotlin-Gradle Plugin" + "" + KotlinIdeaGradleBundle.message("text.couldn.t.configure.kotlin.gradle.plugin.automatically") + "
" + + (if (message != null) "$message
" else "") + + "
${KotlinIdeaGradleBundle.message("text.see.manual.installation.instructions")}", + KotlinIdeaGradleBundle.message("title.configure.kotlin.gradle.plugin") ) } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt index 48c25f4e357..67ec19535e9 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt @@ -14,6 +14,7 @@ import com.intellij.openapi.extensions.PluginId import com.intellij.openapi.project.ProjectManager import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PluginsAdvertiser import com.intellij.util.PlatformUtils +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle const val NATIVE_DEBUG_ID = "com.intellij.nativeDebug" @@ -27,10 +28,10 @@ fun suggestNativeDebug(projectPath: String) { val project = ProjectManager.getInstance().openProjects.firstOrNull { it.basePath == projectPath } ?: return PluginsAdvertiser.NOTIFICATION_GROUP.createNotification( - "Plugins Suggestion", - "Native Debug provides debugger for Kotlin/Native", + KotlinIdeaGradleBundle.message("title.plugin.suggestion"), + KotlinIdeaGradleBundle.message("notification.text.native.debug.provides.debugger.for.kotlin.native"), NotificationType.INFORMATION, null - ).addAction(object : NotificationAction("Install") { + ).addAction(object : NotificationAction(KotlinIdeaGradleBundle.message("action.text.install")) { override fun actionPerformed(e: AnActionEvent, notification: Notification) { PluginsAdvertiser.installAndEnablePlugins(setOf(NATIVE_DEBUG_ID)) { notification.expire() } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt.192 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt.192 index 832b8d189f9..cff62c6e167 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt.192 +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/kotlinResolverUtil.kt.192 @@ -14,6 +14,7 @@ import com.intellij.openapi.extensions.PluginId import com.intellij.openapi.project.ProjectManager import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PluginsAdvertiser import com.intellij.util.PlatformUtils +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle const val NATIVE_DEBUG_ID = "com.intellij.nativeDebug" @@ -26,10 +27,10 @@ fun suggestNativeDebug(projectPath: String) { val project = ProjectManager.getInstance().openProjects.firstOrNull { it.basePath == projectPath } ?: return PluginsAdvertiser.NOTIFICATION_GROUP.createNotification( - "Plugins Suggestion", - "Native Debug provides debugger for Kotlin/Native", + KotlinIdeaGradleBundle.message("title.plugin.suggestion"), + KotlinIdeaGradleBundle.message("notification.text.native.debug.provides.debugger.for.kotlin.native"), NotificationType.INFORMATION, null - ).addAction(object : NotificationAction("Install") { + ).addAction(object : NotificationAction(KotlinIdeaGradleBundle.message("action.text.install")) { override fun actionPerformed(e: AnActionEvent, notification: Notification) { PluginsAdvertiser.installAndEnablePlugins(setOf(NATIVE_DEBUG_ID)) { notification.expire() } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentKotlinGradleVersionInspection.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentKotlinGradleVersionInspection.kt index 2a665ef40a3..be503706d03 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentKotlinGradleVersionInspection.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentKotlinGradleVersionInspection.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.idea.inspections.gradle import org.jetbrains.annotations.TestOnly +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.inspections.PluginVersionDependentInspection import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType @@ -36,9 +37,8 @@ class DifferentKotlinGradleVersionInspection : BaseInspection(), PluginVersionDe override fun getGroupDisplayName() = PROBABLE_BUGS - override fun buildErrorString(vararg args: Any): String { - return "Kotlin version that is used for building with Gradle (${args[0]}) differs from the one bundled into the IDE plugin (${args[1]})" - } + override fun buildErrorString(vararg args: Any): String = + KotlinIdeaGradleBundle.message("error.text.different.kotlin.gradle.version", args[0], args[1]) private abstract class VersionFinder : KotlinGradleInspectionVisitor() { protected abstract fun onFound(kotlinPluginVersion: String, kotlinPluginStatement: GrCallExpression) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt index f5d45317e88..e660c7fc451 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.inspections.gradle import com.intellij.openapi.externalSystem.model.ProjectKeys import com.intellij.openapi.roots.ProjectRootManager import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.configuration.KOTLIN_GROUP_ID import org.jetbrains.kotlin.idea.inspections.gradle.GradleHeuristicHelper.PRODUCTION_DEPENDENCY_STATEMENTS import org.jetbrains.kotlin.idea.platform.tooling @@ -34,7 +35,7 @@ class DifferentStdlibGradleVersionInspection : BaseInspection() { override fun buildVisitor(): BaseInspectionVisitor = MyVisitor(KOTLIN_GROUP_ID, JvmIdePlatformKind.tooling.mavenLibraryIds) override fun buildErrorString(vararg args: Any) = - "Plugin version (${args[0]}) is not the same as library version (${args[1]})" + KotlinIdeaGradleBundle.message("error.text.different.kotlin.library.version", args[0], args[1]) private abstract class VersionFinder(private val groupId: String, private val libraryIds: List) : KotlinGradleInspectionVisitor() { diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptDefinitionsProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptDefinitionsProvider.kt index 59affff0f2b..ab2433b95fc 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptDefinitionsProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptDefinitionsProvider.kt @@ -10,6 +10,7 @@ import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.project.Project import com.intellij.util.EnvironmentUtil +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates @@ -184,10 +185,11 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD } val gradleSettings = ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID) - if (gradleSettings.getLinkedProjectsSettings().isEmpty()) error("Project '${project.name}' isn't linked with Gradle") + if (gradleSettings.getLinkedProjectsSettings().isEmpty()) + error(KotlinIdeaGradleBundle.message("error.text.project.isn.t.linked.with.gradle", project.name)) val projectSettings = gradleSettings.getLinkedProjectsSettings().filterIsInstance().firstOrNull() - ?: error("Project '${project.name}' isn't linked with Gradle") + ?: error(KotlinIdeaGradleBundle.message("error.text.project.isn.t.linked.with.gradle", project.name)) val gradleExeSettings = ExternalSystemApiUtil.getExecutionSettings( project, @@ -195,15 +197,17 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD GradleConstants.SYSTEM_ID ) - val gradleHome = gradleExeSettings.gradleHome ?: error("Unable to get Gradle home directory") + val gradleHome = gradleExeSettings.gradleHome + ?: error(KotlinIdeaGradleBundle.message("error.text.unable.to.get.gradle.home.directory")) val gradleLibDir = File(gradleHome, "lib").let { - it.takeIf { it.exists() && it.isDirectory } ?: error("Invalid Gradle libraries directory $it") + it.takeIf { it.exists() && it.isDirectory } + ?: error(KotlinIdeaGradleBundle.message("error.text.invalid.gradle.libraries.directory", it)) } val templateClasspath = gradleLibDir.listFiles { it -> /* an inference problem without explicit 'it', TODO: remove when fixed */ dependencySelector.matches(it.name) - }.takeIf { it.isNotEmpty() }?.asList() ?: error("Missing jars in gradle directory") + }.takeIf { it.isNotEmpty() }?.asList() ?: error(KotlinIdeaGradleBundle.message("error.text.missing.jars.in.gradle.directory")) return loadDefinitionsFromTemplates( listOf(templateClass), @@ -251,7 +255,7 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD private const val KOTLIN_DSL_SCRIPT_EXTENSION = "gradle.kts" } - override val name: String = "Default Kotlin Gradle Script" + override val name: String = KotlinIdeaGradleBundle.message("text.default.kotlin.gradle.script") override val fileExtension: String = KOTLIN_DSL_SCRIPT_EXTENSION @@ -274,9 +278,12 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD private class ErrorScriptDependenciesResolver(private val message: String? = null) : DependenciesResolver { override fun resolve(scriptContents: ScriptContents, environment: Environment): ResolveResult { val failureMessage = if (GradleScriptDefinitionsUpdater.gradleState.isSyncInProgress) { - "Highlighting is impossible during Gradle Import" + KotlinIdeaGradleBundle.message("error.text.highlighting.is.impossible.during.gradle.import") } else { - message ?: "Failed to load script definitions by ${GradleScriptDefinitionsContributor::class.java.name}" + message ?: KotlinIdeaGradleBundle.message( + "error.text.failed.to.load.script.definitions.by", + GradleScriptDefinitionsContributor::class.java.name + ) } return ResolveResult.Failure(ScriptReport(failureMessage, ScriptReport.Severity.FATAL)) } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptOutOfSourceNotificationProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptOutOfSourceNotificationProvider.kt index ab0f66ac4c4..7f08a8ee97a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptOutOfSourceNotificationProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/GradleScriptOutOfSourceNotificationProvider.kt @@ -13,6 +13,7 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.ui.EditorNotificationPanel import com.intellij.ui.EditorNotifications import org.jetbrains.kotlin.idea.KotlinFileType +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager class GradleScriptOutOfSourceNotificationProvider(private val project: Project) : EditorNotifications.Provider() { @@ -25,16 +26,18 @@ class GradleScriptOutOfSourceNotificationProvider(private val project: Project) if (isInAffectedGradleProjectFiles(project, file.path)) return null return EditorNotificationPanel().apply { - text("The associated Gradle Project isn't imported.") - createActionLabel("Load script configuration") { + text(KotlinIdeaGradleBundle.message("text.the.associated.gradle.project.isn.t.imported")) + val loadScriptConfigurationText = KotlinIdeaGradleBundle.message("action.label.text.load.script.configuration") + createActionLabel(loadScriptConfigurationText) { ScriptConfigurationManager.getInstance(project).forceReloadConfiguration(file, loaderForOutOfProjectScripts) } val link = createActionLabel("") {} link.setIcon(AllIcons.General.ContextHelp) link.setUseIconAsLink(true) - link.toolTipText = "The external Gradle project needs to be imported to get this script analyzed.
" + - "You can import the related Gradle project or click \"Load script configuration\" " + - "to get code insight without importing." + link.toolTipText = KotlinIdeaGradleBundle.message( + "tool.tip.text.the.external.gradle.project.needs.to.be.imported.to.get.this.script.analyzed", + loadScriptConfigurationText + ) } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt index abeaa59cd8a..bda07c0982e 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt @@ -22,6 +22,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.pom.Navigatable +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.configuration.cache.CachedConfigurationInputs import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationSnapshot @@ -116,7 +117,7 @@ class KotlinDslScriptModelDataService : AbstractProjectDataService NotificationCategory.WARNING