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 0439efe028a..155eb3bea57 100644
--- a/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties
+++ b/idea/idea-analysis/resources/org/jetbrains/kotlin/idea/KotlinBundle.properties
@@ -180,53 +180,6 @@ fix.unused.receiver.parameter.remove=Remove redundant receiver parameter
inspection.migration.title=Code Migration
inspection.migration.profile.name=Migration
-options.color.attribute.descriptor.annotation=Annotation//Annotation name
-description.text.annotation.attribute.name=Annotation//Annotation attribute name
-options.color.attribute.descriptor.builtin.annotation=Keywords//Modifier
-options.color.attribute.descriptor.builtin.keyword.val=Keywords//'val'
-options.color.attribute.descriptor.builtin.keyword.var=Keywords//'var'
-options.color.attribute.descriptor.builtin.keyword=Keywords//Keyword
-options.color.attribute.descriptor.string.escape=String//Escape in string and template braces
-options.color.attribute.descriptor.closure.braces=Braces and Operators//Lambda expression braces and arrow
-options.color.attribute.descriptor.safe.access=Braces and Operators//Safe access dot
-options.color.attribute.descriptor.quest=Braces and Operators//Type nullability marker
-options.color.attribute.descriptor.exclexcl=Braces and Operators//Non-null assertion
-options.color.attribute.descriptor.arrow=Braces and Operators//Arrow
-options.color.attribute.descriptor.colon=Braces and Operators//Colon
-options.color.attribute.descriptor.double.colon=Braces and Operators//Double colon
-options.color.attribute.descriptor.kdoc.comment=Comments//KDoc//KDoc comment
-options.color.attribute.descriptor.kdoc.tag=Comments//KDoc//KDoc tag
-options.color.attribute.descriptor.kdoc.value=Comments//KDoc//Link in KDoc tag
-options.color.attribute.descriptor.object=Classes and Interfaces//Object
-options.color.attribute.descriptor.enumEntry=Classes and Interfaces//Enum entry
-options.color.attribute.descriptor.typeAlias=Classes and Interfaces//Type alias
-options.color.attribute.descriptor.var=Properties and Variables//Var (mutable variable, parameter or property)
-options.color.attribute.descriptor.local.variable=Properties and Variables//Local variable or value
-options.color.attribute.descriptor.captured.variable=Properties and Variables//Variables and values captured in a closure
-options.color.attribute.descriptor.instance.property=Properties and Variables//Instance property
-options.color.attribute.descriptor.instance.property.custom.property.declaration=Properties and Variables//Instance property with custom property declarations
-options.color.attribute.descriptor.package.property=Properties and Variables//Package-level property
-options.color.attribute.descriptor.package.property.custom.property.declaration=Properties and Variables//Package-level property with custom property declarations
-options.color.attribute.descriptor.field=Properties and Variables//Backing field variable
-options.color.attribute.descriptor.extension.property=Properties and Variables//Extension property
-options.color.attribute.descriptor.synthetic.extension.property=Properties and Variables//Synthetic extension property
-options.color.attribute.descriptor.dynamic.property=Properties and Variables//Dynamic property
-options.color.attribute.descriptor.android.extensions.property=Properties and Variables//Android Extensions synthetic properties
-options.color.attribute.descriptor.it=Parameters//Lambda expression default parameter
-options.color.attribute.descriptor.fun=Functions//Function declaration
-options.color.attribute.descriptor.fun.call=Functions//Function call
-options.color.attribute.descriptor.dynamic.fun.call=Functions//Dynamic function call
-options.color.attribute.descriptor.package.fun.call=Functions//Package-level function call
-options.color.attribute.descriptor.suspend.fun.call=Functions//Suspend function call
-options.color.attribute.descriptor.extension.fun.call=Functions//Extension function call
-options.color.attribute.descriptor.constructor.call=Functions//Constructor call
-options.color.attribute.descriptor.variable.as.function.call=Properties and Variables//Variable as function call
-options.color.attribute.descriptor.variable.as.function.like.call=Properties and Variables//Variable as function-like call
-options.color.attribute.descriptor.smart.cast=Smart-casts//Smart-cast value
-options.color.attribute.descriptor.smart.constant=Smart-casts//Smart constant
-options.color.attribute.descriptor.smart.cast.receiver=Smart-casts//Smart-cast implicit receiver
-options.color.attribute.descriptor.label=Label
-
fix.create.from.usage.family=Create from usage
fix.create.from.usage.local.variable=Create local variable ''{0}''
@@ -466,4 +419,488 @@ presentation.text.for.receiver.in.container.paren=(for {0} in {1})
presentation.text.object.in.container=object in {0}
project.view.class.initializer=class initializer
->>>>>>> i18n: Internationalize part of the 'idea' module
+
+copy.text.adding.imports=Adding imports ...
+copy.text.clipboard.content.seems.to.be.java.code.do.you.want.to.convert.it.to.kotlin=Clipboard content seems to be Java code. Do you want to convert it to Kotlin?
+copy.text.convert.java.to.kotlin=Convert Java to Kotlin
+copy.text.copied.kotlin.code=Copied kotlin code
+copy.text.resolving.references=Resolving references ...
+copy.title.convert.code.from.java=Convert Code From Java
+
+editor.checkbox.title.auto.add.val.keyword.to.data.inline.class.constructor.parameters=Auto add val keyword to data/inline class constructor parameters
+editor.checkbox.title.convert.pasted.java.code.to.kotlin=Convert pasted Java code to Kotlin
+editor.checkbox.title.don.t.show.java.to.kotlin.conversion.dialog.on.paste=Don''t show Java to Kotlin conversion dialog on paste
+editor.title.kotlin=Kotlin
+
+facet.checkbox.text.use.project.settings=Use project settings
+facet.column.name.options=Options
+facet.column.name.plugin=Plugin
+facet.error.text.at.least.one.target.platform.should.be.selected=At least one target platform should be selected
+facet.label.text.selected.target.platforms=Selected target platforms:
+facet.label.text.target.platform=Target platform:
+facet.label.text.the.project.is.imported.from.external.build.system.and.could.not.be.edited=The project is imported from external build system and could not be edited
+facet.link.text.edit.project.settings=Edit project settings
+facet.name.compiler.plugins=Compiler Plugins
+facet.name.general=General
+facet.text.following.arguments.are.redundant=Following arguments are redundant: {0}
+facet.text.following.arguments.override.facet.settings=Following arguments override facet settings: {0}
+facet.text.following.options.are.not.correct=Following options are not correct:
+facet.text.multiplatform=Multiplatform
+
+filters.text.inline.function.body=inline function body
+filters.text.inline.function.call.site=inline function call site
+filters.title.navigate.to=Navigate to
+
+find.usages.class=class
+find.usages.companion.object=companion object
+find.usages.constructor=constructor
+find.usages.facade.class=facade class
+find.usages.for.property={0} for property
+find.usages.function=function
+find.usages.getter=getter
+find.usages.import.alias=import alias
+find.usages.interface=interface
+find.usages.label=label
+find.usages.lambda=lambda
+find.usages.object=object
+find.usages.parameter=parameter
+find.usages.property.accessor=property accessor
+find.usages.property=property
+find.usages.setter=setter
+find.usages.type.alias=type alias
+find.usages.type.parameter=type parameter
+find.usages.variable=variable
+find.usages.checkbox.name.expected.classes=Expected classes
+find.usages.class.name.anonymous=Anonymous
+find.usages.checkbox.name.expected.functions=Expected functions
+find.usages.text.find.usages.for.data.class.components.and.destruction.declarations=
+find.usages.tool.tip.text.disable.search.for.data.class.components.and.destruction.declarations.project.wide.setting=Disable search for data class components and destruction declarations. (Project wide setting)
+find.usages.checkbox.text.fast.data.class.component.search=Fast data class component search
+find.usages.checkbox.name.expected.properties=Expected properties
+find.usages.action.text.find.usages.of=find usages of
+find.usages.type.named.argument=Named argument
+find.usages.type.type.alias=Type alias
+find.usages.type.callable.reference = Callable reference
+find.usages.type.type.constraint = Type constraint
+find.usages.type.value.parameter.type = Parameter type
+find.usages.type.nonLocal.property.type = Class/object property type
+find.usages.type.function.return.type = Function return types
+find.usages.type.superType = Supertype
+find.usages.type.is = Target type of ''is'' operation
+find.usages.type.class.object = Nested class/object
+find.usages.type.companion.object = Companion object
+find.usages.type.function.call = Function call
+find.usages.type.implicit.get = Implicit ''get''
+find.usages.type.implicit.set = Implicit ''set''
+find.usages.type.implicit.invoke = Implicit 'invoke'
+find.usages.type.implicit.iteration = Implicit iteration
+find.usages.type.property.delegation = Property delegation
+find.usages.type.extension.receiver.type = Extension receiver type
+find.usages.type.super.type.qualifier = Super type qualifier
+find.usages.type.receiver = Receiver
+find.usages.type.delegate = Delegate
+find.usages.type.packageDirective = Package directive
+find.usages.type.packageMemberAccess = Package member access
+
+formatter.button.text.use.import.with.when.at.least=Use import with ''*'' when at least
+formatter.button.text.use.import.with=Use import with ''*''
+formatter.button.text.use.single.name.import=Use single name import
+formatter.checkbox.text.insert.imports.for.nested.classes=Insert imports for nested classes
+formatter.text.names.used=\ names used
+formatter.text.use.defaults.from=Use defaults from:
+formatter.title.after.colon.before.declaration.type=After colon, before declaration type
+formatter.title.after.colon.in.new.type.definition=After colon in new type definition
+formatter.title.align.when.branches.in.columns=Align ''when'' branches in columns
+formatter.title.around.arrow.in.function.types=Around arrow in function types
+formatter.title.around.arrow.in=Around arrow in "when" clause
+formatter.title.around.when.branches.with=Around ''when'' branches with {}
+formatter.title.before.colon.after.declaration.name=Before colon, after declaration name
+formatter.title.before.colon.in.new.type.definition=Before colon in new type definition
+formatter.title.before.lambda.arrow=Before lambda arrow
+formatter.title.chained.function.calls=Chained function calls
+formatter.title.elvis.expressions=Elvis expressions
+formatter.title.expression.body.functions=Expression body functions
+formatter.title.function.annotations=Function annotations
+formatter.title.function.call.arguments=Function call arguments
+formatter.title.function.declaration.parameters=Function declaration parameters
+formatter.title.function.parentheses=Function parentheses
+formatter.title.in.simple.one.line.methods=In simple one line methods
+formatter.title.java.statics.and.enum.members=Java Statics and Enum Members
+formatter.title.load.save=Load/Save
+formatter.title.other=Other
+formatter.title.property.annotations=Property annotations
+formatter.title.put.left.brace.on.new.line=Put left brace on new line
+formatter.title.range.operator=Range operator (..)
+formatter.title.top.level.symbols=Top-level Symbols
+formatter.title.use.continuation.indent.in.conditions=Use continuation indent in conditions
+formatter.title.use.continuation.indent=Use continuation indent
+formatter.title.when.parentheses=''when'' parentheses
+formatter.title.when.statements=''when'' statements
+
+framework.name.kotlin.sdk=Kotlin SDK
+
+hierarchy.text.anonymous=[anonymous]
+hierarchy.text.in=\ in {0}
+
+highlighter.action.text.go.to.actual.declarations=Go to actual declarations
+highlighter.action.text.go.to.expected.declaration=Go to expected declaration
+highlighter.action.text.go.to.implementations=Go to implementations
+highlighter.action.text.go.to.overridden.methods=Go to overridden methods
+highlighter.action.text.go.to.overridden.properties=Go to overridden properties
+highlighter.action.text.go.to.subclasses=Go to subclasses
+highlighter.action.text.go.to.super.method=Go to super method
+highlighter.action.text.go.to.super.property=Go to super property
+highlighter.descriptor.text.android.extensions.property=Properties and Variables//Android Extensions synthetic properties
+highlighter.descriptor.text.annotation=Annotation//Annotation name
+highlighter.descriptor.text.annotation.attribute.name=Annotation//Annotation attribute name
+highlighter.descriptor.text.arrow=Braces and Operators//Arrow
+highlighter.descriptor.text.builtin.annotation=Keywords//Modifier
+highlighter.descriptor.text.builtin.keyword.val=Keywords//'val'
+highlighter.descriptor.text.builtin.keyword.var=Keywords//'var'
+highlighter.descriptor.text.builtin.keyword=Keywords//Keyword
+highlighter.descriptor.text.captured.variable=Properties and Variables//Variables and values captured in a closure
+highlighter.descriptor.text.closure.braces=Braces and Operators//Lambda expression braces and arrow
+highlighter.descriptor.text.colon=Braces and Operators//Colon
+highlighter.descriptor.text.constructor.call=Functions//Constructor call
+highlighter.descriptor.text.double.colon=Braces and Operators//Double colon
+highlighter.descriptor.text.dynamic.fun.call=Functions//Dynamic function call
+highlighter.descriptor.text.dynamic.property=Properties and Variables//Dynamic property
+highlighter.descriptor.text.enumEntry=Classes and Interfaces//Enum entry
+highlighter.descriptor.text.exclexcl=Braces and Operators//Non-null assertion
+highlighter.descriptor.text.extension.fun.call=Functions//Extension function call
+highlighter.descriptor.text.extension.property=Properties and Variables//Extension property
+highlighter.descriptor.text.field=Properties and Variables//Backing field variable
+highlighter.descriptor.text.fun.call=Functions//Function call
+highlighter.descriptor.text.fun=Functions//Function declaration
+highlighter.descriptor.text.instance.property.custom.property.declaration=Properties and Variables//Instance property with custom property declarations
+highlighter.descriptor.text.instance.property=Properties and Variables//Instance property
+highlighter.descriptor.text.it=Parameters//Lambda expression default parameter
+highlighter.descriptor.text.kdoc.comment=Comments//KDoc//KDoc comment
+highlighter.descriptor.text.kdoc.tag=Comments//KDoc//KDoc tag
+highlighter.descriptor.text.kdoc.value=Comments//KDoc//Link in KDoc tag
+highlighter.descriptor.text.label=Label
+highlighter.descriptor.text.local.variable=Properties and Variables//Local variable or value
+highlighter.descriptor.text.named.argument=Named argument
+highlighter.descriptor.text.object=Classes and Interfaces//Object
+highlighter.descriptor.text.package.fun.call=Functions//Package-level function call
+highlighter.descriptor.text.package.property.custom.property.declaration=Properties and Variables//Package-level property with custom property declarations
+highlighter.descriptor.text.package.property=Properties and Variables//Package-level property
+highlighter.descriptor.text.quest=Braces and Operators//Type nullability marker
+highlighter.descriptor.text.safe.access=Braces and Operators//Safe access dot
+highlighter.descriptor.text.smart.cast.receiver=Smart-casts//Smart-cast implicit receiver
+highlighter.descriptor.text.smart.cast=Smart-casts//Smart-cast value
+highlighter.descriptor.text.smart.constant=Smart-casts//Smart constant
+highlighter.descriptor.text.string.escape=String//Escape in string and template braces
+highlighter.descriptor.text.suspend.fun.call=Functions//Suspend function call
+highlighter.descriptor.text.synthetic.extension.property=Properties and Variables//Synthetic extension property
+highlighter.descriptor.text.typeAlias=Classes and Interfaces//Type alias
+highlighter.descriptor.text.var=Properties and Variables//Var (mutable variable, parameter or property)
+highlighter.descriptor.text.variable.as.function.call=Properties and Variables//Variable as function call
+highlighter.descriptor.text.variable.as.function.like.call=Properties and Variables//Variable as function-like call
+highlighter.message.suspend.function.call=Suspend function call
+highlighter.message.suspending.iteration=Suspending iteration
+highlighter.name.dsl.markers=DSL markers
+highlighter.name.dsl=Dsl//
+highlighter.name.implemented.declaration=Implemented declaration
+highlighter.name.implementing.declaration=Implementing declaration
+highlighter.name.kotlin.line.markers=Kotlin line markers
+highlighter.name.multiplatform.actual.declaration=Multiplatform actual declaration
+highlighter.name.multiplatform.expect.declaration=Multiplatform expect declaration
+highlighter.name.overridden.declaration=Overridden declaration
+highlighter.name.overriding.declaration=Overriding declaration
+highlighter.name.style=Style
+highlighter.notification.text.navigation.to.overriding.classes.is.not.possible.during.index.update=Navigation to overriding classes is not possible during index update
+highlighter.prefix.text.has.actuals.in=Has actuals in
+highlighter.text.click.for.navigate=Click {0}to navigate
+highlighter.text.has.functional.implementations=Has functional implementations
+highlighter.text.implements=Implements
+highlighter.text.in={0} in '{1}'
+highlighter.text.modules=\ ({0} modules)
+highlighter.text.or.press=\ or press {0}
+highlighter.text.overrides=Overrides
+highlighter.title.actuals.for=Actuals for {0}
+highlighter.title.choose.actual.for=Choose actual for {0}
+highlighter.title.choose.expected.for=Choose expected for {0}
+highlighter.title.expected.for=Expected for {0}
+highlighter.title.overriding.declarations.of=Overriding declarations of {0}
+highlighter.title.searching.for.overriding.declarations=Searching for overriding declarations
+highlighter.title.searching.for.overriding.methods=Searching for overriding methods
+highlighter.tool.tip.has.declaration.in.common.module=Has declaration in common module
+highlighter.tool.tip.marker.annotation.for.dsl=Marker annotation for DSL
+highlighter.tool.tip.text.function=function
+highlighter.tool.tip.text.property=property
+highlighter.tool.tip.text.recursive.call=Recursive call
+highlighter.tool.tip.text.run.test=Run Test
+
+import.optimizer.notification.text.unused.imports.not.found=Unused imports not found
+import.optimizer.progress.indicator.text.collect.imports.for=Collect imports for {0}
+import.optimizer.text.import={0, choice, 0#import|2#imports}
+import.optimizer.text.non.zero=Removed {0} {1}{2, choice, 0#|1#, added {2} {3}}
+import.optimizer.text.zero=Rearranged imports
+
+internal.action.text.decompile.kotlin.bytecode=Decompile kotlin bytecode
+internal.error.text.cannot.decompile=Cannot decompile {0}
+internal.indicator.text.decompiling=Decompiling {0}
+internal.title.decompiler.error=Decompiler error
+
+version.title.no.runtime.found=No Runtime Found
+version.dialog.message.is.not.found.make.sure.plugin.is.properly.installed={0} is not found. Make sure plugin is properly installed.
+version.message.is.deprecated.since.1.2.0.and.should.be.replaced.with={0} is deprecated since 1.2.0 and should be replaced with {1}
+
+update.name.android.studio=Android Studio
+update.reason.text.exception.during.verification=exception during verification {0}
+update.reason.text.no.verified.versions.for.this.build=No verified versions for this build.
+update.reason.text.unable.to.connect.to.compatibility.verification.repository=unable to connect to compatibility verification repository
+update.reason.text.unable.to.parse.compatibility.verification.metadata=unable to parse compatibility verification metadata
+update.reason.text.version.to.be.verified=Version to be verified.
+
+test.integration.button.text.cancel=Cancel
+test.integration.button.text.rewrite=Rewrite
+test.integration.message.text.create.test.in.the.same.source.root=Create test in the same source root?
+test.integration.message.text.kotlin.class=Kotlin class ''{0}'' already exists. Do you want to update it?
+test.integration.title.no.test.roots.found=No Test Roots Found
+
+slicer.text.in=\ in {0}
+slicer.text.tracking.enclosing.lambda=\ (Tracking enclosing lambda)
+slicer.title.dataflow.from.here=Dataflow from Here
+slicer.title.dataflow.to.here=Dataflow to Here
+slicer.tool.tip.text.variable.dereferenced=Variable dereferenced
+
+script.action.text.ignore=Ignore
+script.action.text.open.settings=Open Settings
+script.action.text.show.all=Show all
+script.name.kotlin.scripting=Kotlin Scripting
+script.progress.text.kotlin.scanning.dependencies.for.script.definitions=Kotlin: scanning dependencies for script definitions...
+script.text.multiple.script.definitions.are.applicable.for.this.script=Multiple script definitions are applicable for this script. {0} is used
+
+roots.description.text.update.source.roots.for.non.jvm.modules.in.kotlin.project=Update source roots for non-JVM modules in Kotlin project
+
+reporter.button.text.ignore=Ignore
+reporter.button.text.update=Update
+reporter.message.text.you.re.running.kotlin.plugin.version=You''re running Kotlin plugin version {0}, while the latest version is {1}
+reporter.text.can.t.report.exception.from.patched.plugin=Can''t report exception from patched plugin
+reporter.title.update.kotlin.plugin=Update Kotlin Plugin
+
+configuration.action.text.ignore=Ignore
+configuration.action.text.update=Update
+configuration.description.always=Always
+configuration.description.amd=AMD
+configuration.description.commonjs=CommonJS
+configuration.description.never=Never
+configuration.description.plain.put.to.global.scope=Plain (put to global scope)
+configuration.description.umd.detect.amd.or.commonjs.if.available.fallback.to.plain=UMD (detect AMD or CommonJS if available, fallback to plain)
+configuration.description.when.inlining.a.function.from.other.module.with.embedded.sources=When inlining a function from other module with embedded sources
+configuration.error.text.shouldn.t.add.null.urls.to.custom.repositories=Shouldn''t add null urls to custom repositories
+configuration.feature.text.new.experimental.project.wizard=New Experimental Project Wizard
+configuration.feature.text.new.java.to.kotlin.converter=New Java to Kotlin Converter
+configuration.message.enter.fully.qualified.method.name=Enter fully-qualified method name:
+configuration.message.text.a.new.version.is.available=A new version {0} is available
+configuration.message.text.a.new.version.is.found=A new version {0} is found but it''s not verified by {1}.
+configuration.message.text.update.check.failed=Update check failed: {0}
+configuration.message.text.you.have.the.latest.version.of.the.plugin.installed=You have the latest version of the plugin installed.
+configuration.message.verifier.disabled=(verifier disabled)
+configuration.migration.text.api.version=API version: {0} -> {1}
+configuration.migration.text.detected.migration=Detected migration:
+configuration.migration.text.language.version=Language version: {0} -> {1}
+configuration.migration.text.migrations.for.kotlin.code.are.available=Migrations for Kotlin code are available
+configuration.migration.text.run.migrations=Run migrations
+configuration.migration.text.standard.library=Standard library: {0} -> {1}
+configuration.migration.title.kotlin.migration=Kotlin Migration
+configuration.name.kotlin.compiler=Kotlin Compiler
+configuration.name.kotlin=Kotlin
+configuration.name.method=Method
+configuration.status.text.installation.failed=Installation failed
+configuration.status.text.installing=Installing...
+configuration.text.add.exclusion=Add exclusion
+configuration.text.and=and
+configuration.text.other.s=other(s)
+configuration.text.patched.original={0} (Patched! Original: {1})
+configuration.text.the.compiler.bundled.to.kotlin.plugin=The compiler bundled to Kotlin plugin ({0}) is older than external compiler used for building modules:
+configuration.text.this.may.cause.different.set.of.errors.and.warnings.reported.in.ide.p=This may cause different set of errors and warnings reported in IDE.
+configuration.title.choose.output.directory=Choose Output Directory
+configuration.title.early.access.preview.1.3.x=Early Access Preview 1.3.x
+configuration.title.early.access.preview.1.4.x=Early Access Preview 1.4.x
+configuration.title.edit.exclusion=Edit exclusion
+configuration.title.kotlin.compiler.js.option.output.postfix.browse.title=Choose file to append to generated code
+configuration.title.kotlin.compiler.js.option.output.prefix.browse.title=Choose file to prepend to generated code
+configuration.title.outdated.bundled.kotlin.compiler=Outdated Bundled Kotlin Compiler
+configuration.title.stable=Stable
+configuration.warning.text.following.modules.override.project.settings=Following modules override project settings:
+configuration.warning.text.modules.override.project.settings={0} modules override project settings
+
+#Refactoring
+0.1.is.never.used={0} ''{1}'' is never used
+0.has.detected.1.code.fragments.in.2.that.can.be.replaced.with.3={0} has detected {1} code {1,choice,1#fragment|2#fragments} in {2} that can be replaced with {3}. Would you like to review and replace {1,choice,1#it|2#them}?
+0.usages.are.not.supported.by.the.inline.refactoring.they.won.t.be.processed={0} usages are not supported by the Inline refactoring. They won''t be processed.
+0.will.become.invisible.after.extraction={0} will become invisible after extraction
+0.will.no.longer.be.accessible.after.extraction={0} will no longer be accessible after extraction
+action.text.append=Append
+action.text.cancel=Cancel
+action.text.overwrite=Overwrite
+cannot.extract.method=Cannot find statements to extract
+cannot.extract.super.call=Cannot extract super-call
+cannot.inline.property.with.accessor.s.and.backing.field=Cannot inline property with accessor(s) and backing field
+cannot.introduce.parameter.of.0.type=Cannot introduce parameter of type ''{0}''
+cannot.refactor.expression.has.unit.type=Cannot introduce expression of unit type
+cannot.refactor.no.container=Cannot refactor in this place
+cannot.refactor.no.expression=Cannot perform refactoring without an expression
+cannot.refactor.no.type=Cannot perform refactoring without a type
+cannot.refactor.not.expression.to.extract=Cannot find an expression to extract
+cannot.refactor.not.expression=Cannot find an expression to introduce
+cannot.refactor.package.expression=Cannot introduce package reference
+cannot.refactor.syntax.errors=Cannot refactor due to erroneous code
+cannot.refactor.synthesized.function=Cannot refactor synthesized function ''{0}''
+checkbox.text.declare.with.var=Declare with &var
+checkbox.text.extension.property=E&xtension property:\u0020
+checkbox.text.introduce.default.value=Introduce &default value
+checkbox.text.replace.all.occurrences.0=&Replace all occurrences ({0})
+checkbox.text.specify.type.explicitly=Specify &type explicitly
+column.name.receiver=Receiver:
+column.name.val.var=Val/Var
+declarations.are.used.outside.of.selected.code.fragment=Following declarations are used outside of selected code fragment:
+declarations.will.move.out.of.scope=Following declarations won't be available outside of extracted function body:
+description.a.reference.to.extracted.type.parameter=a reference to extracted type parameter
+error.cant.refactor.vararg.functions=Can't refactor the function with variable arguments
+error.hint.text.cannot.inline.0.from.a.decompiled.file=Cannot inline ''{0}'' from a decompiled file
+error.text.can.t.change.signature.of.method=Can''t change signature of {0} method
+error.text.can.t.copy.class.to.the.containing.file=Can''t copy class to the containing file
+error.text.can.t.generate.0.1=Can''t generate {0}: {1}
+error.text.can.t.introduce.lambda.parameter.for.this.expression=Can''t introduce lambda parameter for this expression
+error.text.can.t.introduce.property.for.this.expression=Can''t introduce property for this expression
+error.text.different.name.expected=Different name expected
+error.text.expression.has.no.type=Expression has no type
+error.text.extraction.from.expect.class.is.not.yet.supported=Extraction from expect class is not yet supported
+error.text.extraction.from.non.jvm.class.is.not.yet.supported=Extraction from non-JVM class is not yet supported
+error.text.inline.function.is.not.supported.for.functions.with.multiple.return.statements=Inline Function is not supported for functions with multiple return statements.
+error.text.inline.function.is.not.supported.for.functions.with.return.statements.not.at.the.end.of.the.body=Inline Function is not supported for functions with return statements not at the end of the body.
+error.text.interface.cannot.be.extracted.from.an.annotation.class=Interface cannot be extracted from an annotation class
+error.text.introduce.parameter.is.not.available.for.default.value=Introduce Parameter is not available for default value
+error.text.introduce.parameter.is.not.available.inside.of.annotation.entries=Introduce Parameter is not available inside of annotation entries
+error.text.invalid.default.receiver.value=Invalid default receiver value
+error.text.invalid.name=Invalid name
+error.text.invalid.parameter.name=Invalid parameter name
+error.text.invalid.parameter.type=Invalid parameter type
+error.text.invalid.receiver.type=Invalid receiver type
+error.text.invalid.return.type=Invalid return type
+error.text.no.type.to.refactor=No type to refactor
+error.text.refactoring.is.not.applicable.in.the.current.context=Refactoring is not applicable in the current context
+error.text.superclass.cannot.be.extracted.from.an.annotation.class=Superclass cannot be extracted from an annotation class
+error.text.type.reference.is.expected=Type reference is expected
+error.types.in.generated.function=Cannot generate function with erroneous return type
+error.wrong.caret.position.function.or.constructor.name=The caret should be positioned at the name of the function or constructor to be refactored.
+extract.function=Extract Function
+family.name.update.usages.on.declarations.cut.paste=Update usages on declarations cut/paste
+file.does.not.exist=File {0} does not exist.\nDo you want to create it?
+function.name.is.invalid=Function name is invalid
+introduce.parameter=Introduce Parameter
+introduce.property=Introduce Property
+introduce.type.parameter.to.declaration=Introduce type parameter to declaration
+introduce.type.parameter=Introduce Type Parameter
+introduce.variable=Introduce Variable
+label.text.default.receiver.value=&Default receiver value:\u0020
+label.text.introduce.as=&Introduce as:\u0020
+label.text.name=&Name:\u0020
+label.text.receiver.type=Receiver &type:\u0020
+label.text.target.file.name=Target file name:
+label.text.type=&Type:\u0020
+label.text.visibility=&Visibility:\u0020
+message.change.signature.is.not.applicable.to.dynamically.invoked.functions=Change signature is not applicable to dynamically invoked functions
+message.do.not.show.for.local.variables.in.future=Do not show for local variables in future
+message.text.return.type.cannot.be.resolved=Return type ''{0}'' cannot be resolved.\nContinue?
+message.text.type.alias.0.is.never.used=Type alias ''{0}'' is never used
+message.type.for.cannot.be.resolved=Type ''{0}'' for {1} cannot be resolved.\nContinue?
+name.extract.interface=Extract Interface
+name.inline.type.alias=Inline Type Alias
+name.introduce.import.alias=Introduce Import Alias
+name.introduce.lambda.parameter=Introduce Lambda Parameter
+name.introduce.parameter1=Introduce Parameter
+name.introduce.type.alias=Introduce Type Alias
+name.kdoc.for.abstracts=KDoc for abstracts
+naming.convention.will.be.violated.after.rename=Naming conventions will be violated after rename
+non.kotlin.usage.0=Non-Kotlin usage: {0}
+parameter.name.is.invalid=Parameter name ''{0}'' is invalid
+parameter.type.is.invalid=Parameter type ''{0}'' is invalid
+parameter.types.are.not.denotable=Cannot extract method since following types are not denotable in the target scope:
+refactoring.move.non.kotlin.file=Target must be a Kotlin file
+return.type.is.invalid=Return type is invalid
+searching.usages.of.0.parameter=Searching usages of ''{0}''parameter
+selected.code.fragment.has.multiple.exit.points=Selected code fragment has multiple exit points
+selected.code.fragment.has.multiple.output.values=Selected code fragment has more than 3 output values:
+selected.code.fragment.has.output.values.and.exit.points=Selected code fragment has output values as well as alternative exit points
+setter.of.0.will.become.invisible.after.extraction = Setter of {0} will become invisible after extraction
+text.0.is.not.allowed.in.the.target.context=''{0}'' is not allowed in the target context
+text.0.to.inline={0} to inline
+text.0.will.no.longer.be.accessible.after.signature.change={0} will no longer be accessible after signature change
+text.all=All
+text.anonymous=[Anonymous]
+text.callee.text.would.be.shown.here=Callee text would be shown here
+text.caller.text.with.highlighted.callee.call.would.be.shown.here=Caller text\nwith highlighted callee call would be shown here
+text.cannot.inline.0.1.usages=Cannot inline {0}/{1} usages
+text.class.0.already.exists.in.the.target.scope=Class {0} already exists in the target scope
+text.constructor=constructor
+text.create.destructuring.declaration=Create destructuring declaration
+text.create.single.variable=Create single variable
+text.declaration=declaration
+text.default.value=\ // default value = {0}
+text.duplicating.local.variable=Duplicating local variable ''{0}''
+text.duplicating.parameter=Duplicating parameter ''{0}''
+text.duplicating.property=Duplicating property ''{0}''
+text.explicit.receiver.is.already.present.in.call.element.0=Explicit receiver is already present in call element: {0}
+text.extract.superclass=Extract Superclass
+text.file.0.already.exists.in.1=File {0} already exists in {1}
+text.function.already.exists=Function already exists: ''{0}''
+text.function=function
+text.inline.0.1.2=Inline {0} ''{1}''? {2}
+text.inline.0=Inline {0}
+text.inline.all.references.and.0.the.1=Inline all references and {0} the kind {1}
+text.inline.recursive.function.is.supported.only.on.references=Inline recursive function is supported only on references
+text.inline.this.reference.and.keep.the.0=Inline this reference and keep the {0}
+text.inlining.0.1=Inlining {0} {1}
+text.introduce.default.value=Intro&duce default value
+text.keep=keep
+text.lambda.parameter=lambda parameter
+text.lambda.parameters=Lambda ¶meters:\u0020
+text.lambda.return.type=Lambda return &type
+text.lazy.property=lazy property
+text.local.property=property
+text.local.variable=local variable
+text.name=Name
+text.no.name.provided.for.type.alias=No name provided for type alias
+text.parameter.0=parameter ''{0}''
+text.parameter.name=Parameter &name:\u0020
+text.parameter.reference.can.t.be.safely.replaced.with.0.since.1.is.ambiguous.in.this.context=Parameter reference can''t be safely replaced with {0} since {1} is ambiguous in this context
+text.parameter.reference.can.t.be.safely.replaced.with.0.since.target.function.can.t.be.referenced.in.this.context=Parameter reference can''t be safely replaced with {0} since target function can''t be referenced in this context
+text.parameter.type=Parameter &type:\u0020
+text.parameter=parameter ''{0}''
+text.parameters=&Parameters
+text.proceed.with.extraction=Proceed with extraction
+text.process.duplicates=Process Duplicates
+text.property.with.getter=property with getter
+text.property.with.initializer=property with initializer
+text.property=property
+text.receiver.can.t.be.safely.transformed.to.value.argument=Receiver can''t be safely transformed to value argument: {0}
+text.receiver=receiver
+text.refactoring.can.t.be.performed.on.the.selected.code.element=Refactoring can''t be performed on the selected code element
+text.refactoring.is.not.applicable.to.this.code.fragment=Refactoring is not applicable to this code fragment
+text.remove.0.no.longer.used=Remove {0} no longer used
+text.remove=remove
+text.select.target.code.block.file=Select target code block / file
+text.select.target.code.block=Select target code block
+text.select.target.file=Select target file
+text.the.following=The following
+text.there.is.already.a.parameter=There is already a parameter ''{0}'' in {1}. It will conflict with the new parameter.
+text.there.is.already.a.variable.0.in.1.it.will.conflict.with.the.new.parameter=There is already a variable ''{0}'' in {1}. It will conflict with the new parameter.
+text.type.alias.cannot.refer.to.types.which.aren.t.accessible.in.the.scope.where.it.s.defined=Type alias cannot refer to types which aren''t accessible in the scope where it''s defined
+text.type.alias.name.must.be.a.valid.identifier.0=Type alias name must be a valid identifier: {0}
+text.type.alias=type alias
+text.type.already.exists.in.the.target.scope=Type {0} already exists in the target scope
+text.type.parameter.names.must.be.distinct=Type parameter names must be distinct
+text.type.parameters=Type &Parameters
+text.type=Type
+text.update.usages.to.reflect.declaration.0.move=Update usages to reflect {0, choice, 0#declaration|1#declarations} move
+text.variable=variable
+title.inline.function=Inline Function
+title.introduce.parameter.to.declaration=Introduce parameter to declaration
+title.select.target.code.block=Select target code block
+unsupported.usage.0=Unsupported usage: {0}
+title.change.signature=Change Signature
\ No newline at end of file
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.kt
index 03b2659a01b..3e42b9ac903 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.kt
@@ -15,20 +15,17 @@
*/
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.*
+import org.jetbrains.kotlin.util.AbstractKotlinBundle
-object KotlinBundle : KotlinBundleBase() {
- @NonNls
- private const val BUNDLE = "org.jetbrains.kotlin.idea.KotlinBundle"
+@NonNls
+private const val BUNDLE = "org.jetbrains.kotlin.idea.KotlinBundle"
- override fun createBundle(): ResourceBundle = ResourceBundle.getBundle(BUNDLE)
+object KotlinBundle : AbstractKotlinBundle(BUNDLE) {
+ @JvmStatic
+ fun message(@NonNls @PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): String = getMessage(key, *params)
@JvmStatic
- fun message(@NonNls @PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any?): String {
- return CommonBundle.message(bundle, key, *params)
- }
+ fun lazyMessage(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): () -> String = { getMessage(key, *params) }
}
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinConfigurationBundle.properties b/idea/resources/messages/KotlinConfigurationBundle.properties
deleted file mode 100644
index 56287734de5..00000000000
--- a/idea/resources/messages/KotlinConfigurationBundle.properties
+++ /dev/null
@@ -1,46 +0,0 @@
-action.text.ignore=Ignore
-action.text.update=Update
-description.always=Always
-description.amd=AMD
-description.commonjs=CommonJS
-description.never=Never
-description.plain.put.to.global.scope=Plain (put to global scope)
-description.umd.detect.amd.or.commonjs.if.available.fallback.to.plain=UMD (detect AMD or CommonJS if available, fallback to plain)
-description.when.inlining.a.function.from.other.module.with.embedded.sources=When inlining a function from other module with embedded sources
-error.text.shouldn.t.add.null.urls.to.custom.repositories=Shouldn''t add null urls to custom repositories
-feature.text.new.experimental.project.wizard=New Kotlin project wizard
-feature.text.new.java.to.kotlin.converter=New Java to Kotlin converter
-message.enter.fully.qualified.method.name=Enter fully-qualified method name:
-message.text.a.new.version.is.available=A new version {0} is available
-message.text.a.new.version.is.found=A new version {0} is found but it''s not verified by {1}.
-message.text.update.check.failed=Update check failed: {0}
-message.text.you.have.the.latest.version.of.the.plugin.installed=You have the latest version of the plugin installed.
-message.verifier.disabled=(verifier disabled)
-migration.text.api.version=API version: {0} -> {1}
-migration.text.detected.migration=Detected migration:
-migration.text.language.version=Language version: {0} -> {1}
-migration.text.migrations.for.kotlin.code.are.available=Migrations for Kotlin code are available
-migration.text.run.migrations=Run migrations
-migration.text.standard.library=Standard library: {0} -> {1}
-migration.title.kotlin.migration=Kotlin Migration
-name.kotlin.compiler=Kotlin Compiler
-name.kotlin=Kotlin
-name.method=Method
-status.text.installation.failed=Installation failed
-status.text.installing=Installing...
-text.add.exclusion=Add exclusion
-text.and=and
-text.other.s=other(s)
-text.patched.original={0} (Patched! Original: {1})
-text.the.compiler.bundled.to.kotlin.plugin=The compiler bundled to Kotlin plugin ({0}) is older than external compiler used for building modules:
-text.this.may.cause.different.set.of.errors.and.warnings.reported.in.ide.p=This may cause different set of errors and warnings reported in IDE.
-title.choose.output.directory=Choose Output Directory
-title.early.access.preview.1.3.x=Early Access Preview 1.3.x
-title.early.access.preview.1.4.x=Early Access Preview 1.4.x
-title.edit.exclusion=Edit exclusion
-title.kotlin.compiler.js.option.output.postfix.browse.title=Choose file to append to generated code
-title.kotlin.compiler.js.option.output.prefix.browse.title=Choose file to prepend to generated code
-title.outdated.bundled.kotlin.compiler=Outdated Bundled Kotlin Compiler
-title.stable=Stable
-warning.text.following.modules.override.project.settings=Following modules override project settings:
-warning.text.modules.override.project.settings={0} modules override project settings
diff --git a/idea/resources/messages/KotlinCopyBundle.properties b/idea/resources/messages/KotlinCopyBundle.properties
deleted file mode 100644
index 8ebcfb906ea..00000000000
--- a/idea/resources/messages/KotlinCopyBundle.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-text.adding.imports=Adding imports ...
-text.clipboard.content.seems.to.be.java.code.do.you.want.to.convert.it.to.kotlin=Clipboard content seems to be Java code. Do you want to convert it to Kotlin?
-text.convert.java.to.kotlin=Convert Java to Kotlin
-text.copied.kotlin.code=Copied kotlin code
-text.resolving.references=Resolving references ...
-title.convert.code.from.java=Convert Code From Java
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinEditorBundle.properties b/idea/resources/messages/KotlinEditorBundle.properties
deleted file mode 100644
index 3c1ad1f0f68..00000000000
--- a/idea/resources/messages/KotlinEditorBundle.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-checkbox.title.auto.add.val.keyword.to.data.inline.class.constructor.parameters=Auto add val keyword to data/inline class constructor parameters
-checkbox.title.convert.pasted.java.code.to.kotlin=Convert pasted Java code to Kotlin
-checkbox.title.don.t.show.java.to.kotlin.conversion.dialog.on.paste=Don''t show Java to Kotlin conversion dialog on paste
-title.kotlin=Kotlin
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinFacetBundle.properties b/idea/resources/messages/KotlinFacetBundle.properties
deleted file mode 100644
index 9118ae780a4..00000000000
--- a/idea/resources/messages/KotlinFacetBundle.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-checkbox.text.use.project.settings=Use project settings
-column.name.options=Options
-column.name.plugin=Plugin
-error.text.at.least.one.target.platform.should.be.selected=At least one target platform should be selected
-label.text.selected.target.platforms=Selected target platforms:
-label.text.target.platform=Target platform:
-label.text.the.project.is.imported.from.external.build.system.and.could.not.be.edited=The project is imported from external build system and could not be edited
-link.text.edit.project.settings=Edit project settings
-name.compiler.plugins=Compiler Plugins
-name.general=General
-text.following.arguments.are.redundant=Following arguments are redundant: {0}
-text.following.arguments.override.facet.settings=Following arguments override facet settings: {0}
-text.following.options.are.not.correct=Following options are not correct:
-text.multiplatform=Multiplatform
diff --git a/idea/resources/messages/KotlinFiltersBundle.properties b/idea/resources/messages/KotlinFiltersBundle.properties
deleted file mode 100644
index 68a43e05c79..00000000000
--- a/idea/resources/messages/KotlinFiltersBundle.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-text.inline.function.body=inline function body
-text.inline.function.call.site=inline function call site
-title.navigate.to=Navigate to
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinFindUsagesBundle.properties b/idea/resources/messages/KotlinFindUsagesBundle.properties
deleted file mode 100644
index 5a2362a201a..00000000000
--- a/idea/resources/messages/KotlinFindUsagesBundle.properties
+++ /dev/null
@@ -1,51 +0,0 @@
-kotlin.lang.class=class
-kotlin.lang.companion.object=companion object
-kotlin.lang.constructor=constructor
-kotlin.lang.facade.class=facade class
-kotlin.lang.for.property={0} for property
-kotlin.lang.function=function
-kotlin.lang.getter=getter
-kotlin.lang.import.alias=import alias
-kotlin.lang.interface=interface
-kotlin.lang.label=label
-kotlin.lang.lambda=lambda
-kotlin.lang.object=object
-kotlin.lang.parameter=parameter
-kotlin.lang.property.accessor=property accessor
-kotlin.lang.property=property
-kotlin.lang.setter=setter
-kotlin.lang.type.alias=type alias
-kotlin.lang.type.parameter=type parameter
-kotlin.lang.variable=variable
-checkbox.name.expected.classes=Expected classes
-class.name.anonymous=Anonymous
-checkbox.name.expected.functions=Expected functions
-text.find.usages.for.data.class.components.and.destruction.declarations=
-tool.tip.text.disable.search.for.data.class.components.and.destruction.declarations.project.wide.setting=Disable search for data class components and destruction declarations. (Project wide setting)
-checkbox.text.fast.data.class.component.search=Fast data class component search
-checkbox.name.expected.properties=Expected properties
-action.text.find.usages.of=find usages of
-type.named.argument=Named argument
-type.type.alias=Type alias
-
-find.usages.type.callable.reference = Callable reference
-find.usages.type.type.constraint = Type constraint
-find.usages.type.value.parameter.type = Parameter type
-find.usages.type.nonLocal.property.type = Class/object property type
-find.usages.type.function.return.type = Function return types
-find.usages.type.superType = Supertype
-find.usages.type.is = Target type of ''is'' operation
-find.usages.type.class.object = Nested class/object
-find.usages.type.companion.object = Companion object
-find.usages.type.function.call = Function call
-find.usages.type.implicit.get = Implicit ''get''
-find.usages.type.implicit.set = Implicit ''set''
-find.usages.type.implicit.invoke = Implicit 'invoke'
-find.usages.type.implicit.iteration = Implicit iteration
-find.usages.type.property.delegation = Property delegation
-find.usages.type.extension.receiver.type = Extension receiver type
-find.usages.type.super.type.qualifier = Super type qualifier
-find.usages.type.receiver = Receiver
-find.usages.type.delegate = Delegate
-find.usages.type.packageDirective = Package directive
-find.usages.type.packageMemberAccess = Package member access
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinFormatterBundle.properties b/idea/resources/messages/KotlinFormatterBundle.properties
deleted file mode 100644
index 435163ba5da..00000000000
--- a/idea/resources/messages/KotlinFormatterBundle.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-button.text.use.import.with.when.at.least=Use import with ''*'' when at least
-button.text.use.import.with=Use import with ''*''
-button.text.use.single.name.import=Use single name import
-checkbox.text.insert.imports.for.nested.classes=Insert imports for nested classes
-text.names.used=\ names used
-text.use.defaults.from=Use defaults from:
-title.after.colon.before.declaration.type=After colon, before declaration type
-title.after.colon.in.new.type.definition=After colon in new type definition
-title.align.when.branches.in.columns=Align ''when'' branches in columns
-title.around.arrow.in.function.types=Around arrow in function types
-title.around.arrow.in=Around arrow in "when" clause
-title.around.when.branches.with=Around ''when'' branches with {}
-title.before.colon.after.declaration.name=Before colon, after declaration name
-title.before.colon.in.new.type.definition=Before colon in new type definition
-title.before.lambda.arrow=Before lambda arrow
-title.chained.function.calls=Chained function calls
-title.elvis.expressions=Elvis expressions
-title.expression.body.functions=Expression body functions
-title.function.annotations=Function annotations
-title.function.call.arguments=Function call arguments
-title.function.declaration.parameters=Function declaration parameters
-title.function.parentheses=Function parentheses
-title.in.simple.one.line.methods=In simple one line methods
-title.java.statics.and.enum.members=Java Statics and Enum Members
-title.load.save=Load/Save
-title.other=Other
-title.property.annotations=Property annotations
-title.put.left.brace.on.new.line=Put left brace on new line
-title.range.operator=Range operator (..)
-title.top.level.symbols=Top-level Symbols
-title.use.continuation.indent.in.conditions=Use continuation indent in conditions
-title.use.continuation.indent=Use continuation indent
-title.when.parentheses=''when'' parentheses
-title.when.statements=''when'' statements
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinFrameworkBundle.properties b/idea/resources/messages/KotlinFrameworkBundle.properties
deleted file mode 100644
index 2b7cf041066..00000000000
--- a/idea/resources/messages/KotlinFrameworkBundle.properties
+++ /dev/null
@@ -1 +0,0 @@
-name.kotlin.sdk=Kotlin SDK
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinHierarchyBundle.properties b/idea/resources/messages/KotlinHierarchyBundle.properties
deleted file mode 100644
index 6c6e59881ca..00000000000
--- a/idea/resources/messages/KotlinHierarchyBundle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-text.anonymous=[anonymous]
-text.in=\ in {0}
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinHighlighterBundle.properties b/idea/resources/messages/KotlinHighlighterBundle.properties
deleted file mode 100644
index c2ebf98f0e0..00000000000
--- a/idea/resources/messages/KotlinHighlighterBundle.properties
+++ /dev/null
@@ -1,88 +0,0 @@
-action.text.go.to.actual.declarations=Go to actual declarations
-action.text.go.to.expected.declaration=Go to expected declaration
-action.text.go.to.implementations=Go to implementations
-action.text.go.to.overridden.methods=Go to overridden methods
-action.text.go.to.overridden.properties=Go to overridden properties
-action.text.go.to.subclasses=Go to subclasses
-action.text.go.to.super.method=Go to super method
-action.text.go.to.super.property=Go to super property
-description.text.android.extensions.property=Properties and Variables//Android Extensions synthetic properties
-description.text.annotation=Annotation
-description.text.arrow=Braces and Operators//Arrow
-description.text.builtin.annotation=Keywords//Modifier
-description.text.builtin.keyword.val=Keywords//'val'
-description.text.builtin.keyword.var=Keywords//'var'
-description.text.builtin.keyword=Keywords//Keyword
-description.text.captured.variable=Properties and Variables//Variables and values captured in a closure
-description.text.closure.braces=Braces and Operators//Lambda expression braces and arrow
-description.text.colon=Braces and Operators//Colon
-description.text.constructor.call=Functions//Constructor call
-description.text.double.colon=Braces and Operators//Double colon
-description.text.dynamic.fun.call=Functions//Dynamic function call
-description.text.dynamic.property=Properties and Variables//Dynamic property
-description.text.enumEntry=Classes and Interfaces//Enum entry
-description.text.exclexcl=Braces and Operators//Non-null assertion
-description.text.extension.fun.call=Functions//Extension function call
-description.text.extension.property=Properties and Variables//Extension property
-description.text.field=Properties and Variables//Backing field variable
-description.text.fun.call=Functions//Function call
-description.text.fun=Functions//Function declaration
-description.text.instance.property.custom.property.declaration=Properties and Variables//Instance property with custom property declarations
-description.text.instance.property=Properties and Variables//Instance property
-description.text.it=Parameters//Lambda expression default parameter
-description.text.kdoc.comment=Comments//KDoc//KDoc comment
-description.text.kdoc.tag=Comments//KDoc//KDoc tag
-description.text.kdoc.value=Comments//KDoc//Link in KDoc tag
-description.text.label=Label
-description.text.local.variable=Properties and Variables//Local variable or value
-description.text.named.argument=Named argument
-description.text.object=Classes and Interfaces//Object
-description.text.package.fun.call=Functions//Package-level function call
-description.text.package.property.custom.property.declaration=Properties and Variables//Package-level property with custom property declarations
-description.text.package.property=Properties and Variables//Package-level property
-description.text.quest=Braces and Operators//Type nullability marker
-description.text.safe.access=Braces and Operators//Safe access dot
-description.text.smart.cast.receiver=Smart-casts//Smart-cast implicit receiver
-description.text.smart.cast=Smart-casts//Smart-cast value
-description.text.smart.constant=Smart-casts//Smart constant
-description.text.string.escape=String//Escape in string and template braces
-description.text.suspend.fun.call=Functions//Suspend function call
-description.text.synthetic.extension.property=Properties and Variables//Synthetic extension property
-description.text.typeAlias=Classes and Interfaces//Type alias
-description.text.var=Properties and Variables//Var (mutable variable, parameter or property)
-description.text.variable.as.function.call=Properties and Variables//Variable as function call
-description.text.variable.as.function.like.call=Properties and Variables//Variable as function-like call
-message.suspend.function.call=Suspend function call
-message.suspending.iteration=Suspending iteration
-name.dsl.markers=DSL markers
-name.dsl=Dsl//
-name.implemented.declaration=Implemented declaration
-name.implementing.declaration=Implementing declaration
-name.kotlin.line.markers=Kotlin line markers
-name.multiplatform.actual.declaration=Multiplatform actual declaration
-name.multiplatform.expect.declaration=Multiplatform expect declaration
-name.overridden.declaration=Overridden declaration
-name.overriding.declaration=Overriding declaration
-name.style=Style
-notification.text.navigation.to.overriding.classes.is.not.possible.during.index.update=Navigation to overriding classes is not possible during index update
-prefix.text.has.actuals.in=Has actuals in
-text.click.for.navigate=Click {0}to navigate
-text.has.functional.implementations=Has functional implementations
-text.implements=Implements
-text.in={0} in '{1}'
-text.modules=\ ({0} modules)
-text.or.press=\ or press {0}
-text.overrides=Overrides
-title.actuals.for=Actuals for {0}
-title.choose.actual.for=Choose actual for {0}
-title.choose.expected.for=Choose expected for {0}
-title.expected.for=Expected for {0}
-title.overriding.declarations.of=Overriding declarations of {0}
-title.searching.for.overriding.declarations=Searching for overriding declarations
-title.searching.for.overriding.methods=Searching for overriding methods
-tool.tip.has.declaration.in.common.module=Has declaration in common module
-tool.tip.marker.annotation.for.dsl=Marker annotation for DSL
-tool.tip.text.function=function
-tool.tip.text.property=property
-tool.tip.text.recursive.call=Recursive call
-tool.tip.text.run.test=Run Test
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinImportsBundle.properties b/idea/resources/messages/KotlinImportsBundle.properties
deleted file mode 100644
index cbabe970711..00000000000
--- a/idea/resources/messages/KotlinImportsBundle.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-notification.text.unused.imports.not.found=Unused imports not found
-progress.indicator.text.collect.imports.for=Collect imports for {0}
-text.import.optimizer.import={0, choice, 0#import|2#imports}
-text.import.optimizer.non.zero=Removed {0} {1}{2, choice, 0#|1#, added {2} {3}}
-text.import.optimizer.zero=Rearranged imports
diff --git a/idea/resources/messages/KotlinInternalBundle.properties b/idea/resources/messages/KotlinInternalBundle.properties
deleted file mode 100644
index e96fa8651d9..00000000000
--- a/idea/resources/messages/KotlinInternalBundle.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-action.text.decompile.kotlin.bytecode=Decompile kotlin bytecode
-error.text.cannot.decompile=Cannot decompile {0}
-indicator.text.decompiling=Decompiling {0}
-title.decompiler.error=Decompiler error
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinRefactoringBundle.properties b/idea/resources/messages/KotlinRefactoringBundle.properties
deleted file mode 100644
index 3677f0a4c44..00000000000
--- a/idea/resources/messages/KotlinRefactoringBundle.properties
+++ /dev/null
@@ -1,174 +0,0 @@
-0.1.is.never.used={0} ''{1}'' is never used
-0.has.detected.1.code.fragments.in.2.that.can.be.replaced.with.3={0} has detected {1} code {1,choice,1#fragment|2#fragments} in {2} that can be replaced with {3}. Would you like to review and replace {1,choice,1#it|2#them}?
-0.usages.are.not.supported.by.the.inline.refactoring.they.won.t.be.processed={0} usages are not supported by the Inline refactoring. They won''t be processed.
-0.will.become.invisible.after.extraction={0} will become invisible after extraction
-0.will.no.longer.be.accessible.after.extraction={0} will no longer be accessible after extraction
-action.text.append=Append
-action.text.cancel=Cancel
-action.text.overwrite=Overwrite
-cannot.extract.method=Cannot find statements to extract
-cannot.extract.super.call=Cannot extract super-call
-cannot.inline.property.with.accessor.s.and.backing.field=Cannot inline property with accessor(s) and backing field
-cannot.introduce.parameter.of.0.type=Cannot introduce parameter of type ''{0}''
-cannot.refactor.expression.has.unit.type=Cannot introduce expression of unit type
-cannot.refactor.no.container=Cannot refactor in this place
-cannot.refactor.no.expression=Cannot perform refactoring without an expression
-cannot.refactor.no.type=Cannot perform refactoring without a type
-cannot.refactor.not.expression.to.extract=Cannot find an expression to extract
-cannot.refactor.not.expression=Cannot find an expression to introduce
-cannot.refactor.package.expression=Cannot introduce package reference
-cannot.refactor.syntax.errors=Cannot refactor due to erroneous code
-cannot.refactor.synthesized.function=Cannot refactor synthesized function ''{0}''
-checkbox.text.declare.with.var=Declare with &var
-checkbox.text.extension.property=E&xtension property:\u0020
-checkbox.text.introduce.default.value=Introduce &default value
-checkbox.text.replace.all.occurrences.0=&Replace all occurrences ({0})
-checkbox.text.specify.type.explicitly=Specify &type explicitly
-column.name.receiver=Receiver:
-column.name.val.var=Val/Var
-declarations.are.used.outside.of.selected.code.fragment=Following declarations are used outside of selected code fragment:
-declarations.will.move.out.of.scope=Following declarations won't be available outside of extracted function body:
-description.a.reference.to.extracted.type.parameter=a reference to extracted type parameter
-error.cant.refactor.vararg.functions=Can't refactor the function with variable arguments
-error.hint.text.cannot.inline.0.from.a.decompiled.file=Cannot inline ''{0}'' from a decompiled file
-error.text.can.t.change.signature.of.method=Can''t change signature of {0} method
-error.text.can.t.copy.class.to.the.containing.file=Can''t copy class to the containing file
-error.text.can.t.generate.0.1=Can''t generate {0}: {1}
-error.text.can.t.introduce.lambda.parameter.for.this.expression=Can''t introduce lambda parameter for this expression
-error.text.can.t.introduce.property.for.this.expression=Can''t introduce property for this expression
-error.text.different.name.expected=Different name expected
-error.text.expression.has.no.type=Expression has no type
-error.text.extraction.from.expect.class.is.not.yet.supported=Extraction from expect class is not yet supported
-error.text.extraction.from.non.jvm.class.is.not.yet.supported=Extraction from non-JVM class is not yet supported
-error.text.inline.function.is.not.supported.for.functions.with.multiple.return.statements=Inline Function is not supported for functions with multiple return statements.
-error.text.inline.function.is.not.supported.for.functions.with.return.statements.not.at.the.end.of.the.body=Inline Function is not supported for functions with return statements not at the end of the body.
-error.text.interface.cannot.be.extracted.from.an.annotation.class=Interface cannot be extracted from an annotation class
-error.text.introduce.parameter.is.not.available.for.default.value=Introduce Parameter is not available for default value
-error.text.introduce.parameter.is.not.available.inside.of.annotation.entries=Introduce Parameter is not available inside of annotation entries
-error.text.invalid.default.receiver.value=Invalid default receiver value
-error.text.invalid.name=Invalid name
-error.text.invalid.parameter.name=Invalid parameter name
-error.text.invalid.parameter.type=Invalid parameter type
-error.text.invalid.receiver.type=Invalid receiver type
-error.text.invalid.return.type=Invalid return type
-error.text.no.type.to.refactor=No type to refactor
-error.text.refactoring.is.not.applicable.in.the.current.context=Refactoring is not applicable in the current context
-error.text.superclass.cannot.be.extracted.from.an.annotation.class=Superclass cannot be extracted from an annotation class
-error.text.type.reference.is.expected=Type reference is expected
-error.types.in.generated.function=Cannot generate function with erroneous return type
-error.wrong.caret.position.function.or.constructor.name=The caret should be positioned at the name of the function or constructor to be refactored.
-extract.function=Extract Function
-family.name.update.usages.on.declarations.cut.paste=Update usages on declarations cut/paste
-file.does.not.exist=File {0} does not exist.\nDo you want to create it?
-function.name.is.invalid=Function name is invalid
-introduce.parameter=Introduce Parameter
-introduce.property=Introduce Property
-introduce.type.parameter.to.declaration=Introduce type parameter to declaration
-introduce.type.parameter=Introduce Type Parameter
-introduce.variable=Introduce Variable
-label.text.default.receiver.value=&Default receiver value:\u0020
-label.text.introduce.as=&Introduce as:\u0020
-label.text.name=&Name:\u0020
-label.text.receiver.type=Receiver &type:\u0020
-label.text.target.file.name=Target file name:
-label.text.type=&Type:\u0020
-label.text.visibility=&Visibility:\u0020
-message.change.signature.is.not.applicable.to.dynamically.invoked.functions=Change signature is not applicable to dynamically invoked functions
-message.do.not.show.for.local.variables.in.future=Do not show for local variables in future
-message.text.return.type.cannot.be.resolved=Return type ''{0}'' cannot be resolved.\nContinue?
-message.text.type.alias.0.is.never.used=Type alias ''{0}'' is never used
-message.type.for.cannot.be.resolved=Type ''{0}'' for {1} cannot be resolved.\nContinue?
-name.extract.interface=Extract Interface
-name.inline.type.alias=Inline Type Alias
-name.introduce.import.alias=Introduce Import Alias
-name.introduce.lambda.parameter=Introduce Lambda Parameter
-name.introduce.parameter1=Introduce Parameter
-name.introduce.type.alias=Introduce Type Alias
-name.kdoc.for.abstracts=KDoc for abstracts
-naming.convention.will.be.violated.after.rename=Naming conventions will be violated after rename
-non.kotlin.usage.0=Non-Kotlin usage: {0}
-parameter.name.is.invalid=Parameter name ''{0}'' is invalid
-parameter.type.is.invalid=Parameter type ''{0}'' is invalid
-parameter.types.are.not.denotable=Cannot extract method since following types are not denotable in the target scope:
-refactoring.move.non.kotlin.file=Target must be a Kotlin file
-return.type.is.invalid=Return type is invalid
-searching.usages.of.0.parameter=Searching usages of ''{0}''parameter
-selected.code.fragment.has.multiple.exit.points=Selected code fragment has multiple exit points
-selected.code.fragment.has.multiple.output.values=Selected code fragment has more than 3 output values:
-selected.code.fragment.has.output.values.and.exit.points=Selected code fragment has output values as well as alternative exit points
-setter.of.0.will.become.invisible.after.extraction = Setter of {0} will become invisible after extraction
-text.0.is.not.allowed.in.the.target.context=''{0}'' is not allowed in the target context
-text.0.to.inline={0} to inline
-text.0.will.no.longer.be.accessible.after.signature.change={0} will no longer be accessible after signature change
-text.all=All
-text.anonymous=[Anonymous]
-text.callee.text.would.be.shown.here=Callee text would be shown here
-text.caller.text.with.highlighted.callee.call.would.be.shown.here=Caller text\nwith highlighted callee call would be shown here
-text.cannot.inline.0.1.usages=Cannot inline {0}/{1} usages
-text.class.0.already.exists.in.the.target.scope=Class {0} already exists in the target scope
-text.constructor=constructor
-text.create.destructuring.declaration=Create destructuring declaration
-text.create.single.variable=Create single variable
-text.declaration=declaration
-text.default.value=\ // default value = {0}
-text.duplicating.local.variable=Duplicating local variable ''{0}''
-text.duplicating.parameter=Duplicating parameter ''{0}''
-text.duplicating.property=Duplicating property ''{0}''
-text.explicit.receiver.is.already.present.in.call.element.0=Explicit receiver is already present in call element: {0}
-text.extract.superclass=Extract Superclass
-text.file.0.already.exists.in.1=File {0} already exists in {1}
-text.function.already.exists=Function already exists: ''{0}''
-text.function=function
-text.inline.0.1.2=Inline {0} ''{1}''? {2}
-text.inline.0=Inline {0}
-text.inline.all.references.and.0.the.1=Inline all references and {0} the kind {1}
-text.inline.recursive.function.is.supported.only.on.references=Inline recursive function is supported only on references
-text.inline.this.reference.and.keep.the.0=Inline this reference and keep the {0}
-text.inlining.0.1=Inlining {0} {1}
-text.introduce.default.value=Intro&duce default value
-text.keep=keep
-text.lambda.parameter=lambda parameter
-text.lambda.parameters=Lambda ¶meters:\u0020
-text.lambda.return.type=Lambda return &type
-text.lazy.property=lazy property
-text.local.property=property
-text.local.variable=local variable
-text.name=Name
-text.no.name.provided.for.type.alias=No name provided for type alias
-text.parameter.0=parameter ''{0}''
-text.parameter.name=Parameter &name:\u0020
-text.parameter.reference.can.t.be.safely.replaced.with.0.since.1.is.ambiguous.in.this.context=Parameter reference can''t be safely replaced with {0} since {1} is ambiguous in this context
-text.parameter.reference.can.t.be.safely.replaced.with.0.since.target.function.can.t.be.referenced.in.this.context=Parameter reference can''t be safely replaced with {0} since target function can''t be referenced in this context
-text.parameter.type=Parameter &type:\u0020
-text.parameter=parameter ''{0}''
-text.parameters=&Parameters
-text.proceed.with.extraction=Proceed with extraction
-text.process.duplicates=Process Duplicates
-text.property.with.getter=property with getter
-text.property.with.initializer=property with initializer
-text.property=property
-text.receiver.can.t.be.safely.transformed.to.value.argument=Receiver can''t be safely transformed to value argument: {0}
-text.receiver=receiver
-text.refactoring.can.t.be.performed.on.the.selected.code.element=Refactoring can''t be performed on the selected code element
-text.refactoring.is.not.applicable.to.this.code.fragment=Refactoring is not applicable to this code fragment
-text.remove.0.no.longer.used=Remove {0} no longer used
-text.remove=remove
-text.select.target.code.block.file=Select target code block / file
-text.select.target.code.block=Select target code block
-text.select.target.file=Select target file
-text.the.following=The following
-text.there.is.already.a.parameter=There is already a parameter ''{0}'' in {1}. It will conflict with the new parameter.
-text.there.is.already.a.variable.0.in.1.it.will.conflict.with.the.new.parameter=There is already a variable ''{0}'' in {1}. It will conflict with the new parameter.
-text.type.alias.cannot.refer.to.types.which.aren.t.accessible.in.the.scope.where.it.s.defined=Type alias cannot refer to types which aren''t accessible in the scope where it''s defined
-text.type.alias.name.must.be.a.valid.identifier.0=Type alias name must be a valid identifier: {0}
-text.type.alias=type alias
-text.type.already.exists.in.the.target.scope=Type {0} already exists in the target scope
-text.type.parameter.names.must.be.distinct=Type parameter names must be distinct
-text.type.parameters=Type &Parameters
-text.type=Type
-text.update.usages.to.reflect.declaration.0.move=Update usages to reflect {0, choice, 0#declaration|1#declarations} move
-text.variable=variable
-title.inline.function=Inline Function
-title.introduce.parameter.to.declaration=Introduce parameter to declaration
-title.select.target.code.block=Select target code block
-unsupported.usage.0=Unsupported usage: {0}
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinReporterBundle.properties b/idea/resources/messages/KotlinReporterBundle.properties
deleted file mode 100644
index 5498dc367bd..00000000000
--- a/idea/resources/messages/KotlinReporterBundle.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-button.text.ignore=Ignore
-button.text.update=Update
-message.text.you.re.running.kotlin.plugin.version=You''re running Kotlin plugin version {0}, while the latest version is {1}
-text.can.t.report.exception.from.patched.plugin=Can''t report exception from patched plugin
-title.update.kotlin.plugin=Update Kotlin Plugin
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinRootsBundle.properties b/idea/resources/messages/KotlinRootsBundle.properties
deleted file mode 100644
index 427d2fa77e7..00000000000
--- a/idea/resources/messages/KotlinRootsBundle.properties
+++ /dev/null
@@ -1 +0,0 @@
-description.text.update.source.roots.for.non.jvm.modules.in.kotlin.project=Update source roots for non-JVM modules in Kotlin project
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinScriptBundle.properties b/idea/resources/messages/KotlinScriptBundle.properties
deleted file mode 100644
index 4a8e529c62c..00000000000
--- a/idea/resources/messages/KotlinScriptBundle.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-action.text.ignore=Ignore
-action.text.open.settings=Open Settings
-action.text.show.all=Show all
-name.kotlin.scripting=Kotlin Scripting
-progress.text.kotlin.scanning.dependencies.for.script.definitions=Kotlin: scanning dependencies for script definitions...
-text.multiple.script.definitions.are.applicable.for.this.script=Multiple script definitions are applicable for this script. {0} is used
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinSlicerBundle.properties b/idea/resources/messages/KotlinSlicerBundle.properties
deleted file mode 100644
index b9680644d01..00000000000
--- a/idea/resources/messages/KotlinSlicerBundle.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-text.in=\ in {0}
-text.tracking.enclosing.lambda=\ (Tracking enclosing lambda)
-title.dataflow.from.here=Dataflow from Here
-title.dataflow.to.here=Dataflow to Here
-tool.tip.text.variable.dereferenced=Variable dereferenced
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinTestIntegrationBundle.properties b/idea/resources/messages/KotlinTestIntegrationBundle.properties
deleted file mode 100644
index 74367abe6e3..00000000000
--- a/idea/resources/messages/KotlinTestIntegrationBundle.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-button.text.cancel=Cancel
-button.text.rewrite=Rewrite
-message.text.create.test.in.the.same.source.root=Create test in the same source root?
-message.text.kotlin.class=Kotlin class ''{0}'' already exists. Do you want to update it?
-title.no.test.roots.found=No Test Roots Found
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinUpdateBundle.properties b/idea/resources/messages/KotlinUpdateBundle.properties
deleted file mode 100644
index 853bf716c2e..00000000000
--- a/idea/resources/messages/KotlinUpdateBundle.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-name.android.studio=Android Studio
-reason.text.exception.during.verification=exception during verification {0}
-reason.text.no.verified.versions.for.this.build=No verified versions for this build.
-reason.text.unable.to.connect.to.compatibility.verification.repository=unable to connect to compatibility verification repository
-reason.text.unable.to.parse.compatibility.verification.metadata=unable to parse compatibility verification metadata
-reason.text.version.to.be.verified=Version to be verified.
\ No newline at end of file
diff --git a/idea/resources/messages/KotlinVersionBundle.properties b/idea/resources/messages/KotlinVersionBundle.properties
deleted file mode 100644
index 70b8234c20c..00000000000
--- a/idea/resources/messages/KotlinVersionBundle.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-title.no.runtime.found=No Runtime Found
-dialog.message.is.not.found.make.sure.plugin.is.properly.installed={0} is not found. Make sure plugin is properly installed.
-message.is.deprecated.since.1.2.0.and.should.be.replaced.with={0} is deprecated since 1.2.0 and should be replaced with {1}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
index 07211d56f2c..f262a2a418d 100644
--- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
+++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments;
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants;
import org.jetbrains.kotlin.config.*;
import org.jetbrains.kotlin.idea.PluginStartupService;
-import org.jetbrains.kotlin.idea.configuration.KotlinConfigurationBundle;
+import org.jetbrains.kotlin.idea.KotlinBundle;
import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer;
import org.jetbrains.kotlin.idea.facet.KotlinFacet;
import org.jetbrains.kotlin.idea.project.NewInferenceForIDEAnalysisComponent;
@@ -60,19 +60,14 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
private static final int MAX_WARNING_SIZE = 75;
static {
- moduleKindDescriptions
- .put(K2JsArgumentConstants.MODULE_PLAIN, KotlinConfigurationBundle.message("description.plain.put.to.global.scope"));
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_AMD, KotlinConfigurationBundle.message("description.amd"));
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_COMMONJS, KotlinConfigurationBundle.message("description.commonjs"));
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_UMD, KotlinConfigurationBundle
- .message("description.umd.detect.amd.or.commonjs.if.available.fallback.to.plain"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_PLAIN, KotlinBundle.message("configuration.description.plain.put.to.global.scope"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_AMD, KotlinBundle.message("configuration.description.amd"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_COMMONJS, KotlinBundle.message("configuration.description.commonjs"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_UMD, KotlinBundle.message("configuration.description.umd.detect.amd.or.commonjs.if.available.fallback.to.plain"));
- soruceMapSourceEmbeddingDescriptions
- .put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_NEVER, KotlinConfigurationBundle.message("description.never"));
- soruceMapSourceEmbeddingDescriptions
- .put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_ALWAYS, KotlinConfigurationBundle.message("description.always"));
- soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_INLINING, KotlinConfigurationBundle
- .message("description.when.inlining.a.function.from.other.module.with.embedded.sources"));
+ soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_NEVER, KotlinBundle.message("configuration.description.never"));
+ soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_ALWAYS, KotlinBundle.message("configuration.description.always"));
+ soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_INLINING, KotlinBundle.message("configuration.description.when.inlining.a.function.from.other.module.with.embedded.sources"));
}
@Nullable
@@ -191,13 +186,13 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
private void initializeNonCidrSettings(boolean isMultiEditor) {
setupFileChooser(labelForOutputPrefixFile, outputPrefixFile,
- KotlinConfigurationBundle.message("title.kotlin.compiler.js.option.output.prefix.browse.title"),
+ KotlinBundle.message("configuration.title.kotlin.compiler.js.option.output.prefix.browse.title"),
true);
setupFileChooser(labelForOutputPostfixFile, outputPostfixFile,
- KotlinConfigurationBundle.message("title.kotlin.compiler.js.option.output.postfix.browse.title"),
+ KotlinBundle.message("configuration.title.kotlin.compiler.js.option.output.postfix.browse.title"),
true);
setupFileChooser(labelForOutputDirectory, outputDirectory,
- KotlinConfigurationBundle.message("title.choose.output.directory"),
+ KotlinBundle.message("configuration.title.choose.output.directory"),
false);
fillModuleKindList();
@@ -235,12 +230,12 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
int nameCountToShow = calculateNameCountToShowInWarning(modulesOverridingProjectSettings);
int allNamesCount = modulesOverridingProjectSettings.size();
if (nameCountToShow == 0) {
- return KotlinConfigurationBundle.message("warning.text.modules.override.project.settings", String.valueOf(allNamesCount));
+ return KotlinBundle.message("configuration.warning.text.modules.override.project.settings", String.valueOf(allNamesCount));
}
StringBuilder builder = new StringBuilder();
builder.append("");
- builder.append(KotlinConfigurationBundle.message("warning.text.following.modules.override.project.settings")).append(" ");
+ builder.append(KotlinBundle.message("configuration.warning.text.following.modules.override.project.settings")).append(" ");
CollectionsKt.joinTo(
modulesOverridingProjectSettings.subList(0, nameCountToShow),
builder,
@@ -257,8 +252,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
}
);
if (nameCountToShow < allNamesCount) {
- builder.append(" ").append(KotlinConfigurationBundle.message("text.and")).append(" ").append(allNamesCount - nameCountToShow)
- .append(" ").append(KotlinConfigurationBundle.message("text.other.s"));
+ builder.append(" ").append(KotlinBundle.message("configuration.text.and")).append(" ").append(allNamesCount - nameCountToShow).append(" ").append(KotlinBundle.message("configuration.text.other.s"));
}
return builder.toString();
}
@@ -636,7 +630,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
@Nls
@Override
public String getDisplayName() {
- return KotlinConfigurationBundle.message("name.kotlin.compiler");
+ return KotlinBundle.message("configuration.name.kotlin.compiler");
}
@Nullable
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java.192 b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java.192
index 4b7f6d456d8..623982ef608 100644
--- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java.192
+++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java.192
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants;
import org.jetbrains.kotlin.config.*;
import org.jetbrains.kotlin.idea.PluginStartupComponent;
import org.jetbrains.kotlin.idea.configuration.ProjectUtilsKt;
-import org.jetbrains.kotlin.idea.configuration.KotlinConfigurationBundle;
+import org.jetbrains.kotlin.idea.KotlinBundle;
import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer;
import org.jetbrains.kotlin.idea.facet.KotlinFacet;
import org.jetbrains.kotlin.idea.project.NewInferenceForIDEAnalysisComponent;
@@ -63,14 +63,14 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
private static final int MAX_WARNING_SIZE = 75;
static {
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_PLAIN, KotlinConfigurationBundle.message("description.plain.put.to.global.scope"));
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_AMD, KotlinConfigurationBundle.message("description.amd"));
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_COMMONJS, KotlinConfigurationBundle.message("description.commonjs"));
- moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_UMD, KotlinConfigurationBundle.message("description.umd.detect.amd.or.commonjs.if.available.fallback.to.plain"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_PLAIN, KotlinBundle.message("configuration.description.plain.put.to.global.scope"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_AMD, KotlinBundle.message("configuration.description.amd"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_COMMONJS, KotlinBundle.message("configuration.description.commonjs"));
+ moduleKindDescriptions.put(K2JsArgumentConstants.MODULE_UMD, KotlinBundle.message("configuration.description.umd.detect.amd.or.commonjs.if.available.fallback.to.plain"));
- soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_NEVER, KotlinConfigurationBundle.message("description.never"));
- soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_ALWAYS, KotlinConfigurationBundle.message("description.always"));
- soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_INLINING, KotlinConfigurationBundle.message("description.when.inlining.a.function.from.other.module.with.embedded.sources"));
+ soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_NEVER, KotlinBundle.message("configuration.description.never"));
+ soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_ALWAYS, KotlinBundle.message("configuration.description.always"));
+ soruceMapSourceEmbeddingDescriptions.put(K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_INLINING, KotlinBundle.message("configuration.description.when.inlining.a.function.from.other.module.with.embedded.sources"));
}
@Nullable
@@ -189,13 +189,13 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
private void initializeNonCidrSettings(boolean isMultiEditor) {
setupFileChooser(labelForOutputPrefixFile, outputPrefixFile,
- KotlinConfigurationBundle.message("title.kotlin.compiler.js.option.output.prefix.browse.title"),
+ KotlinBundle.message("configuration.title.kotlin.compiler.js.option.output.prefix.browse.title"),
true);
setupFileChooser(labelForOutputPostfixFile, outputPostfixFile,
- KotlinConfigurationBundle.message("title.kotlin.compiler.js.option.output.postfix.browse.title"),
+ KotlinBundle.message("configuration.title.kotlin.compiler.js.option.output.postfix.browse.title"),
true);
setupFileChooser(labelForOutputDirectory, outputDirectory,
- KotlinConfigurationBundle.message("title.choose.output.directory"),
+ KotlinBundle.message("configuration.title.choose.output.directory"),
false);
fillModuleKindList();
@@ -233,12 +233,12 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
int nameCountToShow = calculateNameCountToShowInWarning(modulesOverridingProjectSettings);
int allNamesCount = modulesOverridingProjectSettings.size();
if (nameCountToShow == 0) {
- return KotlinConfigurationBundle.message("warning.text.modules.override.project.settings", String.valueOf(allNamesCount));
+ return KotlinBundle.message("configuration.warning.text.modules.override.project.settings", String.valueOf(allNamesCount));
}
StringBuilder builder = new StringBuilder();
builder.append("");
- builder.append(KotlinConfigurationBundle.message("warning.text.following.modules.override.project.settings")).append(" ");
+ builder.append(KotlinBundle.message("configuration.warning.text.following.modules.override.project.settings")).append(" ");
CollectionsKt.joinTo(
modulesOverridingProjectSettings.subList(0, nameCountToShow),
builder,
@@ -255,7 +255,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
}
);
if (nameCountToShow < allNamesCount) {
- builder.append(" ").append(KotlinConfigurationBundle.message("text.and")).append(" ").append(allNamesCount - nameCountToShow).append(" ").append(KotlinConfigurationBundle.message("text.other.s"));
+ builder.append(" ").append(KotlinBundle.message("configuration.text.and")).append(" ").append(allNamesCount - nameCountToShow).append(" ").append(KotlinBundle.message("configuration.text.other.s"));
}
return builder.toString();
}
@@ -628,7 +628,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
@Nls
@Override
public String getDisplayName() {
- return KotlinConfigurationBundle.message("name.kotlin.compiler");
+ return KotlinBundle.message("configuration.name.kotlin.compiler");
}
@Nullable
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ExperimentalFeatures.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/ExperimentalFeatures.kt
index 19f4c130714..accbb4c8777 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/ExperimentalFeatures.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ExperimentalFeatures.kt
@@ -20,13 +20,13 @@ import javax.swing.JPanel
object ExperimentalFeatures {
val NewJ2k = RegistryExperimentalFeature(
- title = KotlinConfigurationBundle.message("feature.text.new.java.to.kotlin.converter"),
+ title = KotlinBundle.message("configuration.feature.text.new.java.to.kotlin.converter"),
registryKey = "kotlin.experimental.new.j2k",
enabledByDefault = true
)
val NewWizard = object : RegistryExperimentalFeature(
- title = KotlinConfigurationBundle.message("feature.text.new.experimental.project.wizard"),
+ title = KotlinBundle.message("configuration.feature.text.new.experimental.project.wizard"),
registryKey = "kotlin.experimental.project.wizard",
enabledByDefault = false
) {
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinConfigurationBundle.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinConfigurationBundle.kt
deleted file mode 100644
index a16f2a3779d..00000000000
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinConfigurationBundle.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * 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.configuration
-
-import org.jetbrains.annotations.NonNls
-import org.jetbrains.annotations.PropertyKey
-import org.jetbrains.kotlin.util.AbstractKotlinBundle
-
-@NonNls
-private const val BUNDLE = "messages.KotlinConfigurationBundle"
-
-object KotlinConfigurationBundle : AbstractKotlinBundle(BUNDLE) {
- @JvmStatic
- fun message(@NonNls @PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): String = getMessage(key, *params)
-}
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt
index f304a85a8c6..9094732c011 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt
@@ -9,6 +9,7 @@ import com.intellij.ide.IdeBundle
import com.intellij.openapi.options.Configurable
import com.intellij.openapi.options.SearchableConfigurable
import com.intellij.openapi.updateSettings.impl.UpdateSettings
+import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.KotlinPluginUpdater
import org.jetbrains.kotlin.idea.KotlinPluginUtil
import org.jetbrains.kotlin.idea.PluginUpdateStatus
@@ -28,20 +29,20 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
UpdateChannel.values().find { it.ordinal == channelOrdinal }?.let { eapChannel ->
if (eapChannel != UpdateChannel.STABLE) {
- hosts.add(eapChannel.url ?: error(KotlinConfigurationBundle.message("error.text.shouldn.t.add.null.urls.to.custom.repositories")))
+ hosts.add(eapChannel.url ?: error(KotlinBundle.message("configuration.error.text.shouldn.t.add.null.urls.to.custom.repositories")))
}
}
}
enum class UpdateChannel(val url: String?, val title: String) {
- STABLE(null, KotlinConfigurationBundle.message("title.stable")),
+ STABLE(null, KotlinBundle.message("configuration.title.stable")),
EAP(
"https://plugins.jetbrains.com/plugins/eap/${KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString}",
- KotlinConfigurationBundle.message("title.early.access.preview.1.3.x")
+ KotlinBundle.message("configuration.title.early.access.preview.1.3.x")
),
EAP_NEXT(
"https://plugins.jetbrains.com/plugins/eap-next/${KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString}",
- KotlinConfigurationBundle.message("title.early.access.preview.1.4.x")
+ KotlinBundle.message("configuration.title.early.access.preview.1.4.x")
);
fun isInHosts(): Boolean {
@@ -63,7 +64,7 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
override fun getId(): String = ID
- override fun getDisplayName(): String = KotlinConfigurationBundle.message("name.kotlin")
+ override fun getDisplayName(): String = KotlinBundle.message("configuration.name.kotlin")
override fun isModified() =
form.experimentalFeaturesPanel.isModified()
@@ -92,7 +93,7 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
update?.let {
form.hideInstallButton()
- setInstalledVersion(it.pluginDescriptor.version, KotlinConfigurationBundle.message("status.text.installing"))
+ setInstalledVersion(it.pluginDescriptor.version, KotlinBundle.message("configuration.status.text.installing"))
form.installStatusLabel.text = installingStatus
@@ -114,7 +115,7 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
},
errorCallback = {
if (versionForInstallation == it.pluginDescriptor.version) {
- form.installStatusLabel.text = KotlinConfigurationBundle.message("status.text.installation.failed")
+ form.installStatusLabel.text = KotlinBundle.message("configuration.status.text.installation.failed")
form.showInstallButton()
setInstalledVersion(null, null)
}
@@ -153,7 +154,7 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
when (pluginUpdateStatus) {
PluginUpdateStatus.LatestVersionInstalled -> {
form.setUpdateStatus(
- KotlinConfigurationBundle.message("message.text.you.have.the.latest.version.of.the.plugin.installed"),
+ KotlinBundle.message("configuration.message.text.you.have.the.latest.version.of.the.plugin.installed"),
false
)
}
@@ -162,8 +163,7 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
update = pluginUpdateStatus
versionForInstallation = update?.pluginDescriptor?.version
form.setUpdateStatus(
- KotlinConfigurationBundle.message(
- "message.text.a.new.version.is.available",
+ KotlinBundle.message("configuration.message.text.a.new.version.is.available",
pluginUpdateStatus.pluginDescriptor.version
),
true
@@ -177,14 +177,13 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
is PluginUpdateStatus.CheckFailed ->
form.setUpdateStatus(
- KotlinConfigurationBundle.message("message.text.update.check.failed", pluginUpdateStatus.message),
+ KotlinBundle.message("configuration.message.text.update.check.failed", pluginUpdateStatus.message),
false
)
is PluginUpdateStatus.Unverified -> {
val version = pluginUpdateStatus.updateStatus.pluginDescriptor.version
- val generalLine = KotlinConfigurationBundle.message(
- "message.text.a.new.version.is.found",
+ val generalLine = KotlinBundle.message("configuration.message.text.a.new.version.is.found",
version,
pluginUpdateStatus.verifierName
)
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/outdatedBundledCompilerNotification.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/outdatedBundledCompilerNotification.kt
index 3180da9c8ab..01501bc13a2 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/outdatedBundledCompilerNotification.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/configuration/outdatedBundledCompilerNotification.kt
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.Key
import com.intellij.util.text.VersionComparatorUtil
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.config.LanguageVersion
+import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.KotlinPluginUtil
import org.jetbrains.kotlin.idea.actions.ConfigurePluginUpdatesAction
import org.jetbrains.kotlin.idea.project.languageVersionSettings
@@ -46,7 +47,7 @@ fun notifyOutdatedBundledCompilerIfNecessary(project: Project) {
Notifications.Bus.notify(
Notification(
OUTDATED_BUNDLED_COMPILER_GROUP_DISPLAY_ID,
- KotlinConfigurationBundle.message("title.outdated.bundled.kotlin.compiler"),
+ KotlinBundle.message("configuration.title.outdated.bundled.kotlin.compiler"),
message,
NotificationType.WARNING,
NotificationListener { notification, event ->
@@ -130,10 +131,10 @@ fun createOutdatedBundledCompilerMessage(project: Project, bundledCompilerVersio
modulesStr = modulesStr.removeSuffix(" ")
return """
-