add.import=Add Import
class.to.import.chooser.title=Class to Import
access.static.via.class.reference.family=Access static via class reference
access.static.via.class.reference.text=Access static ''{1}.{0}'' via class ''{2}'' reference
add.default.constructor.family=Add Default Constructor
add.default.constructor.text=Add {0} no-args constructor to {1}
add.catch.clause.family=Add Exception to Catch Clause
add.catch.clause.text=Add Catch Clause(s)
add.exception.to.throws.inherited.method.warning.text=Method ''{0}'' is inherited.\n\
  Do you want to add exceptions to method signatures in the whole method hierarchy?
method.is.inherited.warning.title=Method Is Inherited
add.exception.to.throws.text=Add {0, choice, 0#Exception|2#Exceptions} to Method Signature
add.exception.to.throws.family=Add Exception to Method Signature
add.method.body.text=Add Method Body
add.method.family=Add Method
add.method.text=Add Method ''{0}'' to Class ''{1}''
add.new.array.family=Add missing new expression
add.new.array.text=Add ''new {0}[]''
add.return.statement.text=Add Return Statement
add.return.statement.family=Add Return Statement
add.runtime.exception.to.throws.text=Add Runtime Exception(s) to Method Signature
add.runtime.exception.to.throws.family=Add Runtime Exception to Method Signature
add.typecast.family=Add TypeCast
add.typecast.text=Cast to ''{0}''
add.doctag.to.custom.tags=Add {0} to custom tags
fix.javadoc.family=Fix Javadoc
adjust.package.family=Adjust Package Name
adjust.package.text=Set package name to ''{0}''
bring.variable.to.scope.family=Bring Variable to Scope
bring.variable.to.scope.text=Bring ''{0}'' into Scope

cast.parameter.text=Cast {0, choice, 1#1st|2#2nd|3#3rd|4#{0,number}th} parameter to ''{1}''
cast.single.parameter.text=Cast parameter to ''{0}''

add.type.arguments.text=Add explicit type arguments to {0, choice, 1#1st|2#2nd|3#3rd|4#{0,number}th} argument
add.type.arguments.single.argument.text=Add explicit type arguments

change.class.signature.text=Change signature of ''{0}'' to match ''{1}''
change.class.signature.family=Change class signature

uidesigner.change.bound.field.type=Change bound field type
cannot.change.field.exception=Cannot change field ''{0}'' type.\nReason: {1}

# {0} - original keyword (extends or implements), {1} - proposed keyword (implements or extends), {2} - class name
exchange.extends.implements.keyword=Change ''{0} {2}'' to ''{1} {2}''
uidesigner.change.gui.component.type=Change GUI component type
change.method.signature.from.usage.family=Change method signature from usage

# {0} - original method signature including name, {1} - method name, {2} - proposed new parameters list
change.method.signature.from.usage.text=Change signature of ''{0}'' to ''{1}({2})''
add.parameter.from.usage.text=Add ''{0}'' as {1, choice, 1#1st|2#2nd|3#3rd|4#{1,number}th} parameter to method ''{2}''
remove.parameter.from.usage.text=Remove {0, choice, 1#1st|2#2nd|3#3rd|4#{0,number}th} parameter from method ''{1}''
change.parameter.from.usage.text=Change {0, choice, 1#1st|2#2nd|3#3rd|4#{0,number}th} parameter of method ''{1}'' from ''{2}'' to ''{3}''
searching.for.usages.progress.title=Searching For Usages...
create.class.from.new.family=Create Class from New
create.class.from.new.text=Create Class ''{0}''
create.class.from.usage.family=Create Class from Usage
create.class.from.usage.text=Create {0} ''{1}''
create.inner.class.from.usage.text=Create Inner {0} ''{1}''
create.constant.from.usage.family=Create Constant From Usage
create.constant.from.usage.text=Create Constant Field ''{0}''
create.enum.constant.from.usage.text=Create Enum Constant ''{0}''
create.constructor.from.new.family=Create Constructor from New
create.constructor.from.new.text=Create Constructor
create.constructor.from.super.call.family=Create Constructor From super() Call
create.constructor.from.this.call.family=Create Constructor From this() Call
create.constructor.text=Create Constructor In ''{0}''
create.constructor.matching.super=Create constructor matching super
super.class.constructors.chooser.title=Choose Super Class Constructors
create.field.from.usage.family=Create Field from Usage
create.field.from.usage.text=Create Field ''{0}''
target.class.chooser.title=Choose Target Class
create.class.title=Create {0}
create.enum=enum
create.interface=interface
create.class=class
new.method.body.template.error.text=Please Correct "New Method Body" Template
new.method.body.template.error.title=File Template Error
cannot.create.java.file.error.text=Cannot create {0}.java in {1}: {2}
cannot.create.java.file.error.title=File Creation Failed
cannot.create.java.package.error.text=Cannot create {0} in {1}: {2}
cannot.create.java.package.error.title=Package Creation Failed
create.accessor.for.unused.field.family=Create Accessor for Unused Field
create.getter.for.field=Create getter for ''{0}''
create.setter.for.field=Create setter for ''{0}''
create.getter.and.setter.for.field=Create getter and setter for ''{0}''
create.local.from.usage.family=Create Local from Usage
create.local.from.usage.text=Create Local Variable ''{0}''
create.local.from.instanceof.usage.family=Create Local Var from instanceof Usage
create.local.from.instanceof.usage.text=Insert ''({0}){1}'' declaration
create.method.from.usage.family=Create Method from Usage
create.method.from.usage.text=Create Method ''{0}''
create.abstract.method.from.usage.text=Create Abstract Method ''{0}''
create.parameter.from.usage.family=Create Parameter from Usage
create.parameter.from.usage.text=Create Parameter ''{0}''
create.property.from.usage.family=Create Property From Usage
create.getter=Create Getter
create.setter=Create Setter
defer.final.assignment.with.temp.family=Defer final assignment with temp
defer.final.assignment.with.temp.text=Defer assignment to ''{0}'' using temp variable
delete.catch.family=Delete Catch
delete.catch.text=Delete catch for ''{0}''
delete.body.family=Delete Body
delete.body.text=Delete Body
enable.optimize.imports.on.the.fly=Enable 'Settings|Code Style|Imports|Optimize imports on the fly'
generalize.catch.family=Generalize Catch
generalize.catch.text=Generalize catch for ''{0}'' to ''{1}''
generify.family=Generify File
generify.text=Try to generify ''{0}''
implement.methods.fix=Implement Methods
import.class.fix=Import Class
insert.new.fix=Insert new
insert.super.constructor.call.family=Base Ctr call
insert.super.constructor.call.text=Insert 'super();'
make.class.an.interface.family=Make Class an Interface
make.class.an.interface.text=Make ''{0}'' an interface
make.interface.an.class.text=Make ''{0}'' a class
make.vararg.parameter.last.family=Make vararg parameter last
make.vararg.parameter.last.text=Move ''{0}'' to the end of the list
fix.parameter.type.family=Fix Parameter Type
fix.parameter.type.text=Make ''{0}'' take parameter of type ''{1}'' here
fix.return.type.family=Fix Return Type
fix.return.type.text=Make ''{0}'' return ''{1}''
fix.throws.list.family=Fix Throws List
fix.throws.list.add.exception=Add ''{0}'' to ''{1}'' throws list
fix.throws.list.remove.exception=Remove ''{0}'' from ''{1}'' throws list
fix.modifiers.family=Fix Modifiers

anonymous.class.presentation=Anonymous class derived from {0}
# {0} owner class name
class.initializer.presentation={0} class initializer
add.modifier.fix=Make ''{0}'' {1}
remove.modifier.fix=Make ''{0}'' not {1}

change.inheritors.visibility.warning.text=Do you want to change inheritors' visibility to visibility of the base method?
change.inheritors.visibility.warning.title=Change Inheritors
move.class.in.extend.list.family=Move Class in Extend list
move.bound.class.to.front.fix.text=Move bound ''{0}'' to the beginning of the bounds list of type parameter ''{1}''
move.catch.up.family=Move Catch Up
move.catch.up.text=Move catch for ''{0}'' before ''{1}''
move.class.to.separate.file.family=Move Class to Separate File
move.class.to.separate.file.text=Move class ''{0}'' to ''{0}.java''
move.class.to.package.family=Move Class to Package
move.class.to.package.text=Move to package ''{0}''

# change if (!a == b) ...  =>  if (!(a == b)) ...
negation.broader.scope.family=Negation Broader Scope
negation.broader.scope.text=Change to ''!({0})''

optimize.imports.fix=Optimize Imports
remove.qualifier.fix=Remove qualifier
remove.redundant.else.fix=Remove Redundant 'else'
remove.unused.parameter.family=Remove unused parameter
remove.unused.parameter.text=Remove Parameter ''{0}''
remove.unused.variable.family=Remove unused variable
remove.unused.variable=Remove variable ''{0}''
remove.unused.field=Remove field ''{0}''
rename.wrong.reference.family=Rename Wrong Reference
rename.wrong.reference.text=Rename Reference
reuse.variable.declaration.family=Reuse variable declaration
reuse.variable.declaration.text=Reuse previous variable ''{0}'' declaration
safe.delete.family=Safe delete
safe.delete.text=Safe delete ''{0}''
setup.jdk.location.family=Setup JDK Location
setup.jdk.location.text=Setup JDK
side.effects.warning.dialog.title=Side Effects Found
simplify.boolean.expression.family=Simplify boolean expression
simplify.boolean.expression.text=Simplify ''{0}'' to {1}
fix.super.method.return.type.family=Fix Super Method Return Type
fix.super.method.return.type.text=Make ''{0}'' return ''{1}''
surround.with.try.catch.fix=Surround with try/catch
make.final.family=Make Final
make.final.text=Make {0} final
make.final.copy.to.temp=Copy ''{0}'' to temp final variable
make.final.transform.to.one.element.array=Transform {0} into final one element array
fix.variable.type.family=Fix Variable Type
fix.variable.type.text=Change {0} ''{1}'' type to ''{2}''

# Sample: Boolean b = "true"; -> Boolean b = Boolean.valueOf("true");
wrap.expression.using.static.accessor.family=Wrap Expression
wrap.expression.using.static.accessor.text=Wrap using ''{0}''

# {0} - qualified class name suggested to be imported.
side.effect.action.remove=&Remove
side.effect.action.transform=&Transform
side.effect.action.cancel=&Cancel
side.effect.message1=<html><body>\
  There are possible side effects found in expressions assigned to the variable ''{0}''<br>\
  You can:<ul><li><b>Remove</b> variable usages along with all expressions involved</li>\
  </body></html>
# {0} - variable name, {1} - variable type, {2} - expression with side effect, {3} - same expression transformed to hold the effect
side.effect.message2=<html><body>\
  There are possible side effects found in expressions assigned to the variable ''{0}''<br>\
  You can:<ul><li><b>Remove</b> variable usages along with all expressions involved, or</li>\
  <li><b>Transform</b> expressions assigned to variable into the statements on their own.<br>\
  That is,<br>\
  <table border=1><tr><td><code>{1} {0} = {2};</code></td></tr></table><br> becomes: <br>\
  <table border=1><tr><td><code>{3};</code></td></tr></table></li>\
  </body></html>

change.parameter.class.family=Change Parameter Class

change.extends.list.family=Extend Class from
add.class.to.extends.list=Make ''{0}'' extend ''{1}''
remove.class.from.extends.list=Make ''{0}'' not extend ''{1}''
add.interface.to.implements.list=Make ''{0}'' implement ''{1}''
remove.interface.from.implements.list=Make ''{0}'' not implement ''{1}''
convert.method.to.constructor=Make method constructor

create.class.text=Create Class {0}
create.interface.text=Create Interface {0}
create.package.text=Create Package {0}
create.field.text=Create Field {0}
create.property.text=Create Property {0}
add.constructor.parameter.name=Add constructor parameter
remove.suppression.action.name=Remove ''{0}'' suppression
remove.suppression.action.family=Remove suppression
remove.qualifier.action.text=Remove Qualifier
fix.argument.family=Fix Arguments
change.new.operator.type.text=Change ''{0}'' to ''new {1}{2}''
change.new.operator.type.family=Change new operator type

fix.unused.symbol.injection.family=Add to Dependency Injection Annotations
fix.unused.symbol.injection.text=Suppress for {0} annotated by ''{1}''
fix.add.special.annotation.family=Add to Special Annotations
fix.add.special.annotation.text=Add ''{0}'' to special annotations list

orderEntry.fix.add.dependency.on.module=Add dependency on module ''{0}''
orderEntry.fix.family.add.module.dependency=Add module dependency
orderEntry.fix.add.library.to.classpath=Add library ''{0}'' to classpath
orderEntry.fix.family.add.library.to.classpath=Add library to classpath
orderEntry.fix.circular.dependency.warning=Adding dependency on module ''{0}'' will introduce circular dependency between modules ''{1}'' and ''{2}''.\nAdd dependency anyway?
orderEntry.fix.title.circular.dependency.warning=Circular Dependency Warning
orderEntry.fix.add.junit.jar.to.classpath=Add junit to classpath
orderEntry.fix.add.annotations.jar.to.classpath=Add 'annotations.jar' to classpath
static.import.method.text=Static Import Method
static.import.method.choose.method.to.import=Choose Method to Import

add.library.title.dialog=Add Library to Project
add.library.title.locate.library=Locate library
add.library.description.locate.library=Locate library file which will be added as module library
add.library.title.choose.folder=Choose directory
add.library.description.choose.folder=Choose directory where the library will be copied
add.library.title.error=Error
add.library.error.not.found=Library file ''{0}'' does not exist
add.library.error.cannot.copy=Cannot copy ''{0}'' to ''{1}''\n({2})
add.library.annotations.description=You are using annotation classes from org.jetbrains.annotations package.\n\
Please add ''annotations.jar'' library to your project.
add.library.file=Library &file:
add.library.add.this=&Add this file
add.library.copy.to=&Copy to
permute.arguments=Permute arguments
fix.single.character.string.to.char.literal.text=Change {0} to {1} (to {2} literal)
fix.single.character.string.to.char.literal.family=Fix literal type

create.readable.writable.property.with.field=Create getter, setter and field for ''{0}''
create.readable.property=Create getter for ''{0}''
create.writable.property=Create setter for ''{0}''
create.readable.property.with.field=Create getter and field for ''{0}''
create.writable.property.with.field=Create setter and field for ''{0}''

change.to.append.family=Fix StringBuilder append
change.to.append.text=Change to ''{0}''

convert.to.string.family=Fix Character Literal
convert.to.string.text=Convert to String Literal

initialize.final.field.in.constructor.name=Initialize in constructor
initialize.final.field.in.constructor.choose.dialog.title=Choose constructors to add initialization to

remove.redundant.arguments.text=Remove redundant arguments to call ''{0}''
remove.redundant.arguments.family=Remove redundant arguments

replace.with.list.access.text=Replace with list access

add.qualifier=Add qualifier
add.qualifier.original.class.chooser.title=Original class

wrap.array.to.arrays.as.list.parameter.text=Wrap {0, choice, 1#1st|2#2nd|3#3rd|4#{0,number}th} parameter using ''Arrays.asList''
wrap.array.to.arrays.as.list.single.parameter.text=Wrap using ''Arrays.asList''

annotations.fix=Annotations
add.missing.annotation.parameters.fix=Add missing annotation parameters - {0}
add.missing.annotation.single.parameter.fix=Add missing annotation parameter ''{0}''

add.method.qualifier.fix.text=Add Qualifier {0} to Method