inspection.diff.format.error=Required parameters: <old_file> <new_file> [<delta_file_name>]
inspection.command.line.explanation=Expected parameters: <project_file_path> <inspection_profile> <output_path> \
  <inspections_profile> -- use here profile name configured in the project or locally or path to the inspection profile; can be stabbed when one of the -e|-profileName|-profilePath is used\n\
  [<options>]\n \
  Available options are:\n \
  -d <directory_path>  --  directory to be inspected. Optional. Whole project is inspected by default.\n \
  -e                   --  skip  \n\
  -v[0|1|2]            --  verbose level. 0 - silent, 1 - verbose, 2 - most verbose. \n\
  -profileName         --  name of a profile defined in project \n \
  -profilePath         --  absolute path to the profile file

inspection.action.title=Inspection
inspection.action.noun=Inspection
inspection.action.profile.label=Inspection profile

inspection.disabled.title=Inspection disabled
inspection.disabled.wrong.id=Inspection ''{0}'' is disabled: ID ''{1}'' not matches ''{2}'' pattern.
inspection.disabled.error=Inspection ''{0}'' is disabled: {1}.

inspection.problem.synopsis=Problem synopsis

#export results view
inspection.export.results.description.tag=description
inspection.export.results.problem.element.tag=problem_class
inspection.export.results.can.be.final.description=Declaration can have final modifier

inspection.export.results.package=package
inspection.export.results.default=<default>
inspection.export.results.class=class
inspection.export.results.constructor=constructor
inspection.export.results.method=method
inspection.export.results.field=field
inspection.export.results.file=file
inspection.export.results.interface=interface

#can be final
inspection.can.be.final.display.name=Declaration can have final modifier
inspection.can.be.final.accept.quickfix=Make final
inspection.can.be.final.option=Report classes
inspection.can.be.final.option1=Report methods
inspection.can.be.final.option2=Report fields

#can be static
inspection.annotate.method.quickfix.name=Annotate method as ''@{0}''

#dataflow
inspection.data.flow.display.name=Constant conditions \\& exceptions
inspection.contract.display.name=Contract issues
inspection.data.flow.nullable.quickfix.option=<html><body>Suggest @Nullable annotation for methods that may possibly return null and <br>report nullable values passed to non-annotated parameters</body></html>
inspection.data.flow.true.asserts.option=<html><body>Don't report assertions with condition statically proven to be always <code>true</code></body></html>
inspection.data.flow.redundant.instanceof.quickfix=Replace with != null
inspection.data.flow.simplify.boolean.expression.quickfix=Simplify Boolean Expression
inspection.data.flow.simplify.to.assignment.quickfix.name=Simplify to normal assignment
configure.annotations.option=Configure annotations
configure.checker.option.button=Configure Assert/Check Methods
configure.checker.option.main.dialog.title=Assert/Check Method Configuration
configure.checker.option.overlap.error.title=Overlapping Check
configure.checker.option.overlap.error.msg=Configuration conflicts with
configure.checker.option.isNull.add.method.checker.dialog.title=Add IsNull Check Method
configure.checker.option.isNotNull.add.method.checker.dialog.title=Add IsNotNull Check Method
configure.checker.option.assert.isNull.add.method.checker.dialog.title=Add Assert IsNull Method
configure.checker.option.assert.isNotNull.add.method.checker.dialog.title=Add Assert IsNotNull Method
configure.checker.option.assert.true.add.method.checker.dialog.title=Add Assert True Method
configure.checker.option.assert.false.add.method.checker.dialog.title=Add Assert False Method
configure.checker.option.assert.isNull.method.panel.title=Assert IsNull Methods
configure.checker.option.assert.isNotNull.method.panel.title=Assert IsNotNull Methods
configure.checker.option.isNull.method.panel.title=IsNull Check Methods
configure.checker.option.isNotNull.method.panel.title=IsNotNull Check Methods
configure.checker.option.assert.true.method.panel.title=Assert True Methods
configure.checker.option.assert.false.method.panel.title=Assert False Methods

#messages from dataflow inspection
dataflow.message.npe.method.invocation=Method invocation <code>#ref</code> #loc may produce <code>java.lang.NullPointerException</code>
dataflow.message.npe.array.access=Array access <code>#ref</code> #loc may produce <code>java.lang.NullPointerException</code>
dataflow.message.npe.field.access=Dereference of <code>#ref</code> #loc may produce <code>java.lang.NullPointerException</code>
dataflow.message.cce=Casting <code>{0}</code> to <code>#ref</code> #loc may produce <code>java.lang.ClassCastException</code>
dataflow.message.redundant.instanceof=Condition <code>#ref</code> #loc is redundant and can be replaced with <code>!= null</code>
dataflow.message.constant.condition=Condition <code>#ref</code> #loc is always <code>{0}</code>
dataflow.message.constant.condition.when.reached=Condition <code>#ref</code> #loc is always <code>{0}</code> when reached
dataflow.message.unreachable.switch.label=Switch label<code>#ref</code> #loc is unreachable
dataflow.message.pointless.assignment.expression=Condition <code>#ref</code> #loc at the left side of assignment expression is always <code>{0}</code>. Can be simplified
dataflow.message.passing.null.argument=Passing <code>null</code> argument to parameter annotated as @NotNull
dataflow.message.initializing.field.with.null=Field annotated as @NotNull is implicitly initialized with <code>null</code>
dataflow.message.passing.nullable.argument=Argument <code>#ref</code> #loc might be null
dataflow.message.assigning.null=<code>null</code> is assigned to a variable that is annotated with @NotNull
dataflow.message.assigning.nullable=Expression <code>#ref</code> might evaluate to null but is assigned to a variable that is annotated with @NotNull
dataflow.message.return.null.from.notnull=<code>null</code> is returned by the method declared as @NotNull
dataflow.message.return.nullable.from.notnull=Expression <code>#ref</code> might evaluate to null but is returned by the method declared as @NotNull
dataflow.message.return.null.from.notnullable=<code>null</code> is returned by the method which is not declared as @{0}
dataflow.message.return.nullable.from.notnullable=Expression <code>#ref</code> might evaluate to null but is returned by the method which is not declared as @{0}
dataflow.message.unboxing=Unboxing of <code>#ref</code> #loc may produce <code>java.lang.NullPointerException</code>
dataflow.too.complex=Method <code>#ref</code> is too complex to analyze by data flow algorithm

#deprecated
inspection.deprecated.display.name=Deprecated API usage
#empty method
inspection.empty.method.display.name=Empty method
inspection.empty.method.delete.quickfix=Delete Unnecessary Method(s)
inspection.empty.method.problem.descriptor=Method only calls its super
inspection.empty.method.problem.descriptor1=Empty method overrides empty method
inspection.empty.method.problem.descriptor2=The method is empty
inspection.empty.method.problem.descriptor3=The method and all it's derivables are empty
inspection.empty.method.problem.descriptor4=All implementations of this method are empty

#redundant cast
inspection.redundant.cast.display.name=Redundant type cast
inspection.redundant.cast.remove.quickfix=Remove Redundant Cast(s)
inspection.redundant.cast.problem.descriptor=Casting {0} to {1} is redundant

#redundant throws
inspection.redundant.throws.display.name=Redundant throws clause
inspection.redundant.throws.remove.quickfix=Remove unnecessary throws declarations
inspection.redundant.throws.problem.descriptor=The declared exception {0} is never thrown in method implementations
inspection.redundant.throws.problem.descriptor1=The declared exception {0} is never thrown in this method, nor in its derivables
inspection.redundant.throws.problem.descriptor2=The declared exception {0} is never thrown

inspection.equals.hashcode.display.name=equals() and hashCode() not paired
inspection.equals.hashcode.only.one.defined.problem.descriptor=Class has {0} defined but does not define {1}
inspection.equals.hashcode.generate.equals.quickfix=Generate 'equals()'
inspection.equals.hashcode.generate.hashcode.quickfix=Generate 'hashCode()'

inspection.1.5.display.name=Usages of API documented as @since 1.5 (1.6|1.7)
inspection.1.5.problem.descriptor=Usage of API documented as @since {0}+
inspection.1.7.problem.descriptor=Usage of generified after 1.6 API which would cause compilation problems with JDK {0}

inspection.local.can.be.final.display.name=Local variable or parameter can be final
inspection.local.can.be.final.option=Report local variables
inspection.local.can.be.final.option1=Report method parameters
inspection.local.can.be.final.option2=Report catch parameters
inspection.local.can.be.final.option3=Report foreach parameters
inspection.can.be.local.parameter.problem.descriptor=Parameter <code>#ref</code> can have <code>final</code> modifier
inspection.can.be.local.variable.problem.descriptor=Variable <code>#ref</code> can have <code>final</code> modifier

inspection.nullable.problems.display.name=@NotNull/@Nullable problems
#check box options
inspection.nullable.problems.method.overrides.notnull.option=<html>Report @NotNull &parameter overrides @Nullable and <br>@Nullable method overrides @NotNull</html>
inspection.nullable.problems.method.overrides.option=Report non-&annotated parameter or method overrides @NotNull
inspection.nullable.problems.not.annotated.getters.for.annotated.fields=Report non-annotated &setter parameter or getter of annotated fields

#problem descriptor messages
inspection.nullable.problems.Nullable.NotNull.conflict=Cannot annotate with both @{0} and @{1}
inspection.nullable.problems.Nullable.method.overrides.NotNull=Method annotated with @{0} must not override @{1} method
inspection.nullable.problems.method.overrides.NotNull=Not annotated method overrides method annotated with @{0}
inspection.nullable.problems.annotated.field.getter.not.annotated=Getter for @{0} field might be annotated @{0} itself
inspection.nullable.problems.annotated.field.getter.conflict=Getter for @{0} field is annotated @{1}
inspection.nullable.problems.annotated.field.setter.parameter.not.annotated=Setter parameter for @{0} field might be annotated @{0} itself
inspection.nullable.problems.annotated.field.setter.parameter.conflict=Setter parameter for @{0} field is annotated @{1}
inspection.nullable.problems.annotated.field.constructor.parameter.not.annotated=Constructor parameter for @{0} field might be annotated @{0} itself
inspection.nullable.problems.annotated.field.constructor.parameter.conflict=Constructor parameter for @{0} field is annotated @{1}
inspection.nullable.problems.NotNull.parameter.overrides.Nullable=Parameter annotated @{0} must not override @{1} parameter
inspection.nullable.problems.parameter.overrides.NotNull=Not annotated parameter overrides @{0} parameter
inspection.nullable.problems.primitive.type.annotation=Primitive type members cannot be annotated

inspection.test.only.problems.display.name=Test-only method call in production code
inspection.test.only.problems.test.only.method.call=Test-only method is called in production code

inspection.visibility.display.name=Declaration access can be weaker
inspection.visibility.option=Suggest package local visibility level for class members
inspection.visibility.option1=Suggest package local visibility level for top-level classes
inspection.visibility.option2=<html>Suggest private for inner class members when referenced from outer class only</html>

#can be private|package local|protected|public
inspection.visibility.compose.suggestion=Can be {0}

inspection.visibility.accept.quickfix=Accept Suggested Access Level
inspection.field.can.be.local.display.name=Field can be local
inspection.field.can.be.local.problem.descriptor=Field can be converted to a local variable
inspection.parameter.can.be.local.display.name=Parameter can be local
inspection.parameter.can.be.local.problem.descriptor=Parameter can be converted to a local variable
inspection.convert.to.local.quickfix=Convert to local

inspection.unused.return.value.display.name=Method can be void
inspection.unused.return.value.problem.descriptor=Return value of the method is never used
inspection.unused.return.value.make.void.quickfix=Make Method void

inspection.same.return.value.display.name=Method returns the same value
inspection.same.return.value.problem.descriptor=Method always returns {0}
inspection.same.return.value.problem.descriptor1=Method and all its derivables always return {0}
inspection.same.return.value.problem.descriptor2=All implementations of this method always return {0}

inspection.dependency.violator.problem.descriptor=Dependency rule ''{0}.'' is violated

inspection.same.parameter.display.name=Actual method parameter is the same constant
inspection.same.parameter.problem.descriptor=Actual value of parameter ''{0}'' is always ''{1}''

inspection.unused.assignment.display.name=Unused assignment
inspection.unused.assignment.option=Report ++i when may be replaced with (i + 1)
inspection.unused.assignment.option1=Report i++ when changed value is not used afterwards
inspection.unused.assignment.option2=Report redundant initializers
inspection.unused.assignment.remove.quickfix=Remove Redundant Initializer
inspection.unused.assignment.remove.assignment.quickfix=Remove redundant assignment
inspection.unused.assignment.problem.descriptor1=Variable {0} is never used
inspection.unused.assignment.problem.descriptor2=Variable {0} initializer {1} is redundant
inspection.unused.assignment.problem.descriptor3=The value {0} assigned to {1} is never used
inspection.unused.assignment.problem.descriptor4=The value changed at {0} is never used
inspection.unused.assignment.problem.descriptor5=Variable {0} is never used

inspection.unused.parameter.composer=Parameter <code>#ref</code> is not used in any implementation
inspection.unused.parameter.composer1=Parameter <code>#ref</code> is not used  in either this method or any of its derived methods
inspection.unused.parameter.display.name=Unused method parameters
inspection.unused.parameter.delete.quickfix=Delete Unused Parameter(s)
inspection.redundant.type.display.name=Redundant type arguments
inspection.redundant.type.remove.quickfix=Remove explicit type arguments
inspection.redundant.type.problem.descriptor=Explicit type arguments can be inferred

inspection.redundant.array.creation.display.name=Redundant array creation
inspection.redundant.array.creation.quickfix=Remove explicit array creation
inspection.redundant.array.creation.for.varargs.call.descriptor=Redundant array creation for calling varargs method

inspection.suspicious.collections.method.calls.display.name=Suspicious collections method calls
inspection.suspicious.collections.method.calls.problem.descriptor=''{0}'' may not contain objects of type ''{1}''
inspection.suspicious.collections.method.calls.problem.descriptor1=Suspicious call to ''{0}''

inspection.reference.invalid=invalid
inspection.reference.default.package=default package
inspection.reference.implicit.constructor.name=implicit constructor of {0}
inspection.reference.noname=noname
inspection.reference.anonymous.name=anonymous ({0})
inspection.reference.jsp.holder.method.anonymous.name=<% page content %>
inspection.reference.anonymous=anonymous
inspection.export.save.button=Save
inspection.export.dialog.title=Export
inspection.export.options.panel.title=Options
inspection.export.open.option=Open generated HTML in &browser
inspection.export.title=Code Inspection results
inspection.export.generating.html.for=Generating HTML:{0}
inspection.export.error.writing.to=Error writing to {0}

inspection.export.results.error.title=Inspection Results Export
inspection.export.inspections.link.text=Inspections
inspection.export.open.source.link.text=Open source
inspection.offline.view.empty.browser.text=<HTML><BODY>Select inspection result on the left to see details</BODY></HTML>
inspection.offline.view.tool.display.name.title=Name
inspection.generating.html.progress.title=Generating HTML...
inspection.generating.xml.progress.title=Dumping XML...
inspection.action.export.html=Export
inspection.action.export.popup.title=Export To
inspection.tool.description.under.construction.text=Under construction
inspection.tool.in.browser.id.title=ID
inspection.tool.in.browser.description.title=Description
inspection.action.edit.settings=Edit Settings
inspection.action.apply.quickfix=Apply a quickfix
inspection.action.apply.quickfix.description=Apply an inspection quickfix
inspection.tree.popup.title=Accept Resolution
inspection.action.rerun=Rerun Inspection
inspection.general.tools.group.name=General
inspection.empty.root.node.text=Nothing left to show
inspection.invalid.node.text=(INVALID)
inspection.problem.descriptor.count={0, choice, 0#|1#(1 item)|2#({0,number,integer} items)}
inspection.action.go.next=Go Next Problem
inspection.actiongo.prev=Go Prev Problem

inspection.javadoc.display.name=Declaration has Javadoc problems
inspection.javadoc.ref.display.name=Declaration has problems in Javadoc references
inspection.javadoc.option.tab.title.package=Package
inspection.javadoc.option.tab.title=Class
inspection.javadoc.option.tab.title.method=Method
inspection.javadoc.option.tab.title.field=Field
inspection.javadoc.option.tab.title.inner.class=Inner class
inspection.javadoc.option.ignore.deprecated=Ignore elements marked as @deprecated
inspection.javadoc.option.ignore.period=Ignore period problems

inspection.scope.for.title=Scope

inspection.javadoc.required.tags.option.title=Required Tags
inspection.javadoc.problem.descriptor=Required Javadoc is absent
inspection.javadoc.problem.descriptor1=Period in the documentation is missing. The period is used by the Javadoc tool to generate the comment for the overview page
inspection.javadoc.problem.missing.tag=Required tag {0} is missing
inspection.javadoc.problem.missing.author.description=Author is missing after @author tag
inspection.javadoc.problem.missing.version.description=Version is missing after @version tag
inspection.javadoc.problem.missing.since.description=Since is missing after @since tag
inspection.javadoc.problem.cannot.resolve=Cannot resolve symbol {0}
inspection.javadoc.problem.name.expected=Name expected
inspection.javadoc.problem.wrong.tag=Wrong tag {0}
inspection.javadoc.problem.disallowed.tag=Tag ''{0}'' is not allowed here
inspection.javadoc.method.problem.descriptor=Description is missing in {0} tag for parameter {1}
inspection.javadoc.method.problem.missing.tag.description={0} tag description is missing
inspection.javadoc.method.problem.missing.param.tag=Required tag {0} is missing for parameter {1}
inspection.javadoc.problem.duplicate.param=Duplicate @param tag for parameter ''{0}''
inspection.javadoc.problem.duplicate.throws=Duplicate @throws or @exception tag for exception ''{0}''
inspection.javadoc.problem.duplicate.tag=Duplicate @{0} tag
inspection.javadoc.problem.add.tag=Add tag @{0} {1}
inspection.javadoc.problem.add.tag.family=Add missing Javadoc tag
inspection.javadoc.problem.add.param.tag=Add tag @param for parameter ''{0}''

inspection.export.results.abstract=abstract
inspection.export.results.static=static
inspection.export.results.capitalized.class=Class
inspection.export.results.initializer=initializer
inspection.export.results.capitalized.interface=Interface
inspection.export.results.capitalized.abstract.class=Abstract\\&nbsp;class
inspection.export.results.abstract.class=abstract\\&nbsp;class
inspection.export.results.implicit.constructor=implicit constructor of

inspection.problem.resolution=Problem resolution
inspection.quickfix.assert.family=Assert
inspection.assert.quickfix=Assert ''{0}''
inspection.surround.if.quickfix=Surround with ''if ({0} != null)''
inspection.replace.ternary.quickfix=Replace with ''{0} != null ?:''
inspection.surround.if.family=Surround with if
inspection.dependency.configure.button.text=Configure dependency rules

inspection.javadoc.label.text=Additional Javadoc Tags:
inspection.javadoc.dialog.title=Edit Additional Javadoc Tags
inspection.javadoc.html.not.required.label.text=Additional Not Required Html Attributes:
inspection.javadoc.html.not.required.dialog.title=Edit Additional Not Required Html Attributes
inspection.required.attributes.display.name=Missing required attribute

inspection.unused.symbol.check.localvars=Check &Local Variables
inspection.unused.symbol.check.fields=Check &Fields
inspection.unused.symbol.check.methods=Check &Methods
inspection.unused.symbol.check.classes=Check &Classes
inspection.unused.symbol.check.parameters=Check &Parameters

inspection.results.for.profile.toolwindow.title=Results for Inspection Profile ''{0}''
inspection.export.results.invalidated.item=invalidated item
inspection.export.results.at.line=at line
inspection.descriptor.provider.apply.fix=Apply Fix {0}

inspection.export.results.capitalized.location=Location
inspection.export.results.extends.implements=Extends/implements
inspection.export.results.extended.implemented=Extended/implemented by
inspection.export.results.extended=Extended by
inspection.export.results.overrides.library.methods=Overrides library methods
inspection.export.results.overrides.implements=Overrides/implements
inspection.export.results.derived.methods=Derived methods
inspection.export.results.type.references=The following uses this type
inspection.export.results.used.from=Used from
inspection.export.results.uses=Uses the following
inspection.export.results.no.problems.found=No problems found
inspection.export.results.suppress=Suppress
inspection.export.results.callees=Call chain
inspection.export.results.anonymous.ref.in.owner=in

inspection.processing.job.descriptor=Processing project usages in
inspection.processing.job.descriptor1=Processing external usages of
inspection.processing.job.descriptor2=Analyzing code in

inspection.display.name=Analyzing code ...

inspection.action.group.by.severity=Group by Severity
inspection.action.group.by.severity.description=Group Inspections By Severity
inspection.no.jdk.error.message=The JDK is not configured properly for this project. Inspection cannot proceed.
inspection.progress.title=Inspecting Code...
inspection.no.problems.dialog.title=Code Inspection
inspection.no.problems.message=No suspicious code found
inspection.problems=problems
inspection.error.loading.message=Error reading inspection profile {0, choice, 0#from {1}|1#}
inspection.errors.occurred.dialog.title=Errors Occurred
inspection.profiles.presentable.name=Inspection profiles
inspection.severity=Se&verity:
inspection.scopes.and.severities=Scopes and Se&vereties:
inspection.description.title=Description
inspection.as=As {0}
inspection.new.profile.dialog.title=Create new profile
inspection.unable.to.create.profile.dialog.title=Unable to Create Profile.
inspection.unable.to.create.profile.message=Inspection profile with name ''{0}'' already exists.
inspection.profile.unnamed=Unnamed
inspection.tool.availability.in.tree.node=(available for editor highlighting)
inspection.tool.availability.in.tree.node1=(available for Analyze|Inspect Code)
inspection.error.level.popup.menu.title=Choose Error Level

inspection.application.starting.up=Starting up {0} ...
inspection.done=done.
inspection.capitalized.done=Done.
inspection.application.file.cannot.be.found=File {0} cannot be found
inspection.application.opening.project=Opening project...
inspection.application.initializing.project=Initializing project...
inspection.application.directory.cannot.be.found=Directory {0} cannot be found
inspection.application.project.has.older.format.and.will.be.converted=Project has an older format and will be converted.
inspection.application.project.was.succesfully.converted.old.project.files.were.saved.to.0=Project was succesfully converted. Old project files were saved to {0}
inspection.application.cannot.convert.project.0=Cannot convert project: {0}
inspection.application.cannot.convert.the.project.the.following.files.are.read.only.0=Cannot convert the project. The following files are read only: {0}

inspection.comparing.references.display.name=== used instead of equals()
inspection.comparing.references.use.quickfix=Use equals()
inspection.comparing.references.problem.descriptor=Suspicious comparison #ref #loc

inspection.dead.code.display.name=Unused declaration
inspection.dead.code.option=<html><code>void main(String args[])</code> methods</html>
inspection.dead.code.option2=JUnit testcases
inspection.dead.code.option3=Applets
inspection.dead.code.option4=Servlets
inspection.dead.code.option5=Classes that have usages in non-java files
inspection.export.results.dead.code=unused declaration
inspection.dead.code.comment=// --Commented out by Inspection
inspection.dead.code.date.comment=// --Commented out by Inspection ({0}):
inspection.dead.code.stop.comment=// --Commented out by Inspection STOP ({0})\n
inspection.dead.code.start.comment=// --Commented out by Inspection START ({0}):\n
inspection.dead.code.safe.delete.quickfix=Safe Delete
inspection.dead.code.comment.quickfix=Comment Out
inspection.dead.code.entry.point.quickfix=Add as Entry Point
inspection.dead.code.remove.from.entry.point.quickfix=Remove from Entry Points
inspection.dead.code.entry.points.display.name=Entry Points
inspection.dead.code.export.results.no.instantiations.found=No instantiations found.
inspection.dead.code.export.results.instantiated.from.heading=Instantiated from
inspection.dead.code.problem.synopsis=Field is never assigned.
inspection.dead.code.problem.synopsis1=Field has no usages.
inspection.dead.code.problem.synopsis2=Field is assigned but never accessed.
inspection.dead.code.problem.synopsis3=Field has one usage but it is not reachable from entry points.
inspection.dead.code.problem.synopsis4=Field has {0, choice, 1#1 usage|2#{0,number} usages} but they are not reachable from entry points.
inspection.dead.code.problem.synopsis6=Reachable. {0, choice, 1#1 usage|2#{0, number} usages} found in the project code.
inspection.dead.code.problem.synopsis6.suspicious=Not Reachable. {0, choice, 1#1 usage|2#{0, number} usages} found in the project code.
inspection.dead.code.problem.synopsis7.suspicious=Has no reachable instantiations. {0, choice, 1#1 instantiation|2#{0, number} instantiations} found in the project code.
inspection.dead.code.problem.synopsis8.suspicious=Has no reachable implementation instantiations. {0, choice, 1#1 instantiation|2#{0, number} instantiations} found in the project code.
inspection.dead.code.problem.synopsis9.suspicious=Anonymous class context is not reachable. Class is not instantiated. {0, choice, 1#1 instantiation|2#{0, number} instantiations} found in the project code.
inspection.dead.code.problem.synopsis7=Has reachable instantiations. {0, choice, 1#1 instantiation|2#{0, number} instantiations} found in the project code.
inspection.dead.code.problem.synopsis8=Has reachable implementation instantiations. {0, choice, 1#1 instantiation|2#{0, number} instantiations} found in the project code.
inspection.dead.code.problem.synopsis9=Instantiated {0, choice, 1#1 instantiation|2#{0, number} instantiations} found in the project code.
inspection.dead.code.problem.synopsis10=Anonymous class declaration context is not reachable from entry points. Class is never instantiated.
inspection.dead.code.problem.synopsis11=No class references has been found. Class static initializer is not reachable.
inspection.dead.code.problem.synopsis12=Class has one instantiation but it is not reachable from entry points.
inspection.dead.code.problem.synopsis13=Class is not instantiated.
inspection.dead.code.problem.synopsis14=<ul><li>Abstract method is not implemented OR</li><li>Implementation class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul>
inspection.dead.code.problem.synopsis15=<ul><li>Method owner class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul>
inspection.dead.code.problem.synopsis16=Method is never used.
inspection.dead.code.problem.synopsis17=Method has usage(s) but they all belong to recursive calls chain that has no members reachable from entry points.
inspection.dead.code.problem.synopsis18=Method is not reachable from entry points.
inspection.dead.code.problem.synopsis19=Neither the class nor {0, choice, 1#its implementation|2#{0,number} its implementations} are ever instantiated.
inspection.dead.code.problem.synopsis20=Class has {0, choice, 1#instantiation|2#{0,number} instantiations} but they are not reachable from entry points.

#{0} is class or interface (translated)
inspection.dead.code.problem.synopsis21=Method is never used as a member of this {0}, but only as a member of the implementation class(es). The project will stay compilable if the method is removed from the {0}.
inspection.dead.code.problem.synopsis22=Method overrides a library method but<ul><li>its {0} is never instantiated OR</li><li>its {0} instantiation is not reachable from entry points.</li></ul>
inspection.dead.code.problem.synopsis23={0} is not implemented.
inspection.dead.code.problem.synopsis24={0} has an implementation but <ul><li>it is never instantiated OR</li><li>no instantiations are reachable from entry points.</li></ul>
inspection.dead.code.problem.synopsis25={0} has {1, choice, 1#direct or indirect implementation|2#{1,number} direct or indirect implementations} but <ul><li>they are never instantiated OR</li><li>no instantiations are reachable from entry points.</li></ul>
inspection.dead.code.problem.synopsis26.constructor=Constructor is never used.
inspection.dead.code.problem.synopsis27.constructor=Constructor has usage(s) but they all belong to recursive calls chain that has no members reachable from entry points.
inspection.dead.code.problem.synopsis28.constructor=Constructor has one usage but it is not reachable from entry points.
inspection.dead.code.problem.synopsis29.constructor=Constructor has {0, choice, 1#usage|2#{0,number} usages} but they are not reachable from entry points.

inspection.dead.code.problem.synopsis26.method=Method is never used.
inspection.dead.code.problem.synopsis27.method=Method has usage(s) but they all belong to recursive calls chain that has no members reachable from entry points.
inspection.dead.code.problem.synopsis28.method=Method has one usage but it is not reachable from entry points.
inspection.dead.code.problem.synopsis29.method=Method has {0, choice, 1#usage|2#{0,number} usages} but they are not reachable from entry points.
inspections.dead.code.entry.points.annotations.list.title=Additional entry points annotations

inspection.duplicates.display.name=Duplicate String Literal
inspection.duplicates.replace.family.quickfix=Replace
inspection.duplicates.replace.quickfix=Replace with ''{0}''
inspection.duplicates.option=&Min string length:

inspection.duplicates.message.in.this.file=(in this file)
inspection.duplicates.message.more=... ({0} more)
inspection.duplicates.message=<html><body>Duplicate string literal found in<br>{0}</body></html>

inspection.compiler.javac.quirks.name=Javac quirks
inspection.compiler.javac.quirks.anno.array.comma.problem=Trailing comma in annotation array initializer may cause compilation error in some Javac versions (e.g. JDK 5 and JDK 6).
inspection.compiler.javac.quirks.anno.array.comma.fix=Remove trailing comma
inspection.compiler.javac.quirks.qualifier.type.args.problem=Generics in qualifier reference may cause compilation error in some Javac versions (e.g. JDK 5 and JDK 6).
inspection.compiler.javac.quirks.qualifier.type.args.fix=Remove generic parameter

inspection.root.node.title=Inspections

# inspection tools list actions:
inspection.tools.action.show.global.inspections.text=Hide Global Inspections
inspection.tools.action.show.global.inspections.description=Hide Global Inspections Settings
# hardcoded inspection tools
deprecated.symbol=Deprecated symbol
unused.import=Unused import (editor light)
unused.import.statement=Unused import statement
unused.symbol=Unused symbol
redundant.throws.declaration=Redundant throws declaration
access.static.via.instance=Access static member via instance reference
wrong.package.statement=Wrong package statement
illegal.package.dependencies=Illegal package dependencies
unchecked.warning=Unchecked warning

# suppression stuff
suppress.all.for.class=Suppress all inspections for class
suppress.inspection.family=Suppress inspection
suppress.inspection.statement=Suppress for statement
suppress.inspection.class=Suppress for class
suppress.inspection.field=Suppress for field
suppress.inspection.method=Suppress for method
inspection.options.action.text=Inspection ''{0}'' options
edit.dependency.rules.family=Edit dependency rules
edit.dependency.rules.text=Edit dependency rule \"{0} \"
error.analysis.is.in.progress=Error analysis is in progress
no.errors.found.in.this.file=No errors found in this file
edit.options.of.reporter.inspection.family=Edit options of reporter inspection
edit.options.of.reporter.inspection.text=Edit inspection profile setting

#Inspection group names
group.names.abstraction.issues=Abstraction issues
group.names.assignment.issues=Assignment issues
group.names.probable.bugs=Probable bugs
group.names.bitwise.operation.issues=Bitwise operation issues
group.names.class.structure=Class structure
group.names.class.metrics=Class metrics
group.names.compiler.issues=Compiler issues
group.names.potentially.confusing.code.constructs=Potentially confusing code constructs
group.names.encapsulation.issues=Encapsulation issues
group.names.error.handling=Error handling
group.names.finalization.issues=Finalization issues
group.names.imports=Imports
group.names.initialization.issues=Initialization issues
group.names.internationalization.issues=Internationalization issues
group.names.junit.issues=JUnit issues
group.names.logging.issues=Logging issues
group.names.code.maturity.issues=Code maturity issues
group.names.method.metrics=Method metrics
group.names.naming.conventions=Naming conventions
group.names.performance.issues=Performance issues
group.names.memory.issues=Memory issues
group.names.java.language.level.issues=Java language level issues
group.names.portability.issues=Portability issues
group.names.security.issues=Security issues
group.names.serialization.issues=Serialization issues
group.names.code.style.issues=Code style issues
group.names.threading.issues=Threading issues
group.names.verbose.or.redundant.code.constructs=Verbose or redundant code constructs
group.names.visibility.issues=Visibility issues
group.names.cloning.issues=Cloning issues
group.names.resource.management.issues=Resource management issues
group.names.j2me.issues=J2ME issues
group.names.control.flow.issues=Control flow issues
group.names.numeric.issues=Numeric issues
group.names.language.level.specific.issues.and.migration.aids=Java language level migration aids
group.names.javabeans.issues=JavaBeans issues
group.names.inheritance.issues=Inheritance issues
group.names.data.flow.issues=Data flow issues
group.names.declaration.redundancy=Declaration redundancy
group.names.javadoc.issues=Javadoc issues
group.names.concurrency.annotation.issues=Concurrency annotation issues
group.names.javaee.issues=Java EE issues
group.names.properties.files=Properties Files


duplicate.property.display.name=Duplicate Property
duplicate.property.diff.key.problem.descriptor=Duplicate Property Key ''{0}'' With Different Values #end :<br>
duplicate.property.diff.key.progress.indicator.text=Processing duplicate property key: {0}
duplicate.property.key.problem.descriptor=Duplicate Property Key ''{0}'' #end With Values:<br>
duplicate.property.key.progress.indicator.text=Processing duplicate property key:{0}
duplicate.property.value.problem.descriptor=Duplicate Property Value ''{0}'' #end With Keys:<br>
duplicate.property.value.progress.indicator.text=Processing duplicate property value: {0}
duplicate.property.diff.key.option=&Duplicate keys with different values
duplicate.property.value.option=Duplicate &values
duplicate.property.key.option=Duplicate &keys
duplicate.property.file.scope.option=&File scope
duplicate.property.module.scope.option=&Module Scope
duplicate.property.project.scope.option=&Project Scope
inspection.javadoc.throws.or.exception.option=@throws or @exception

suppress.inspection.annotation.syntax.error=Incorrect annotation syntax: {0}

default.file.template.report.file.header=Report Default file header
default.file.template.report.method.body=Report default created/overridden/implemented method body
default.file.template.report.catch.section=Report default catch section
default.file.template.description=Default File template
default.file.template.display.name=Default File Template Usage
default.file.template.edit.template=Edit template...
default.file.template.replace.with.actual.file.template=Replace with actual file template

#profile stuff
profile.assignments.display.name=Errors
profile.mapping.inspection.profile.column.title=inspection profile
profile.mapping.scope.column.title=scope
boolean.method.is.always.inverted.display.name=Boolean method is always inverted
boolean.method.is.always.inverted.problem.descriptor=Boolean method <code>#ref</code> is always inverted
inspection.results.title=Results By Editor Settings
unnecessary.module.dependency.display.name=Unnecessary module dependency
unnecessary.module.dependency.problem.descriptor=Module ''{0}'' sources do not depend on module ''{1}'' sources
unnecessary.module.dependency.exported.problem.descriptor1=Module ''{0}'' does not depend on ''{1}''. Though ''{0}'' depends on ''{2}'' through exported dependencies of ''{1}''
unnecessary.module.dependency.exported.problem.descriptor=Module ''{0}'' does not depend on ''{1}''. Though ''{2}'' depend on ''{1}'' through this exported dependency
suspected.module.dependency.problem.descriptor=Dependency from module ''{0}'' on module ''{1}'' could be removed when complementary scope to ''{2}'' also does not contain references on module ''{3}''
run.with.editor.settings.dialog.option=Run with &editor settings
inspection.new.profile.text=New Profile Name
profile.save.as.project.checkbox.title=Save as project profile
profile.save.as.ide.checkbox.title=Save as IDE profile
profile.assignment.repeatable.scope.warning=Repeatable scope. Correct assignments.
profile.ide.profile.radiobutton.title=IDE Profile
profile.project.radiobutton.title=Project Profile
profile.default.profile.title=Default Project Profile
profile.assignments.table.title=Project Inspection Profile Assignments
profile.assignments.browse.scope.button.title=&Browse ...
profile.assignments.browse.profile.scopes.dialog.title=Profiles Scopes
profile.quick.change.suggestion.message=<html>There are a few scopes configured for the project. Do you want to edit profile assignments on them?</html>
profile.quick.change.suggestion.dialog.title=Unable to switch profile
unhandled.exception.in.jsp.name=Unhandled Exception in JSP
inspection.no.modules.error.message=This project contains no modules. Inspection cannot proceed.
inspection.redundant.suppression.name=Redundant suppression
inspection.redundant.suppression.description=Redundant suppression
run.with.choosen.profile.dialog.option=Run with &chosen profile
disable.inspection.action.name=Disable inspection
group.names.packaging.issues=Packaging issues
group.names.dependency.issues=Dependency issues
group.names.modularization.issues=Modularization issues
run.inspection.on.file.intention.text=Run inspection on ...
severities.editor.dialog.title=Severities Editor
highlight.severity.create.dialog.title=New Highlight Severity
highlight.severity.create.dialog.name.label=Name
suspicious.name.combination.display.name=Suspicious variable/parameter name combination
suspicious.name.combination.options.title=Groups of names
suspicious.name.combination.options.prompt=Enter a comma-separated list of names:
suspicious.name.combination.add.titile=Add Group of Names
suspicious.name.combination.edit.title=Edit Group of Names

special.annotations.list.add.annotation.class=Add Annotation Class
special.annotations.list.annotation.class=Annotation Class
special.annotations.list.remove.annotation.class=Remove Annotation Class
dependency.injection.annotations.list=Additional Dependency Injection Annotations
special.annotations.annotations.list=Additional Special Annotations

inspection.filter.resolved.action.text=Filter resolved items
inspection.filter.show.diff.action.text=Show diff
inspection.duplicate.throws.display.name=Duplicate throws
inspection.duplicate.throws.problem=Duplicate throws
inspection.duplicate.throws.more.general.problem=There is a more general exception, ''{0}'', in the throws list already.
inspection.duplicate.throws.ignore.subclassing.option=Ignore exceptions subclassing others
inspection.filter.show.diff.only.action.text=Show diff only
inspection.new.profile.ide.to.project.warning.message=Do you want to save selected IDE profile as project profile?
inspection.new.profile.ide.to.project.warning.title=Unable to set up IDE profile for scope
profile.project.settings.banner=Project Profiles Settings
profile.project.display.name=Project Profiles
profile.banner.text=Inspection profile: {0} {1, choice, 0#(inactive)|1#}
profile.ide.tree.text=IDE Profiles
profile.ide.settings.banner=IDE Profiles Settings
profile.project.settings.disable.text=< Use IDE Profile >
errors.single.profile.title=Errors: ''{0}'' inspection profile
rename.inspection.profile=Rename inspection profile
rename.message.prefix.inspection.profile=Inspection profile
default.ide.profile.label.text=Default IDE profile:
profile.lock.action.text=Lock
profile.unlock.action.text=Unlock
profile.activate.action.text=Set as project default
profile.project.activate.action.text=Set as IDE default
inspection.annotate.quickfix.overridden.method.messages=Method {0} {1} method {2}.\nAnnotate the base method as well?
inspection.annotate.quickfix.overridden.method.warning=Overridden Method Warning
inspection.annotate.quickfix.implements=implements
inspection.annotate.quickfix.overrides=overrides
offline.inspections.jdk.not.found={0} not found
offline.inspections.module.jdk.not.found=Please, specify sdk ''{0}'' for module ''{1}''
inconsistent.resource.bundle.display.name=Inconsistent Resource Bundle
inconsistent.bundle.property.error=Inconsistent property ''{0}''. Must be defined in the parent file ''{1}''.
inconsistent.bundle.untranslated.property.error=Untranslated property ''{0}''. Should be overridden in the ''{1}''.
inconsistent.bundle.report.missing.translations=Report &missing translations
inconsistent.bundle.report.inconsistent.properties=Report &inconsistent properties
inconsistent.bundle.report.duplicate.properties.values=Report properties &overridden with the same value
inconsistent.bundle.report.inconsistent.properties.placeholders=Report properties with inconsistent &placeholders
inconsistent.bundle.report.inconsistent.properties.ends=Report properties with inconsistent &ends
inconsistent.bundle.property.inconsistent.placeholders=Inconsistent count of placeholders: found {0} in ''{1}''
inconsistent.bundle.property.inconsistent.end.parent.end.from.check.symbols=Inconsistent property value end ''{0}'' but found ''{1}'' in ''{2}''
inconsistent.bundle.property.inconsistent.end=Inconsistent property value end '{0}'
inconsistent.bundle.property.inherited.with.the.same.value=Property inherited from the ''{0}'' file with the same value
edit.inspection.options=Edit ''{0}'' Options
offline.view.title=Offline View
offline.view.editor.settings.title=Editor Settings
offline.view.parse.exception.title=Nothing found to display
parsing.inspections.dump.progress.title=Parsing inspections XML dump

suppress.inspection.problem=Suppress
inspections.view.options.title=Inspection {0} options
inspections.result.view.exclude.action.text=Exclude
inspections.result.view.include.action.text=Include
xml.suppressable.for.tag.title=Suppress for tag
xml.suppressable.for.file.title=Suppress for file
xml.suppressable.all.for.file.title=Suppress all for file
annotate.overridden.methods.as.notnull=Annotate overridden methods as ''@{0}''
nullable.stuff.problems.overridden.methods.are.not.annotated=Overridden methods are not annotated
nullable.stuff.problems.overridden.method.parameters.are.not.annotated=Overridden method parameters are not annotated
annotate.overridden.methods.parameters=Annotate overridden method parameters as ''@{0}''
offline.inspections.library.was.not.resolved=Please configure library ''{0}'' which is used in module ''{1}''
report.suspicious.but.possibly.correct.method.calls=&Report suspicious but possibly correct method calls
unused.library.display.name=Unused library
unused.library.problem.descriptor=Unused library ''{0}''
unused.library.roots.problem.descriptor=Unused roots {0} from library ''{1}''
unused.library.backward.analysis.job.description=Perform backward analysis
inspection.duplicates.option.report.propertykey.expressions=&Ignore @PropertyKey expressions
inspection.same.parameter.fix.name=Inline value ''{1}'' for parameter ''{0}''
fix.all.inspection.problems.in.file=Fix all ''{0}'' problems in file
cleanup.in.file=Cleanup code
cleanup.in.scope=Cleanup code on...
severities.default.settings.message=Edit Settings|Colors \\& Fonts
unsupported.character.for.the.charset=Unsupported characters for the charset ''{0}''
lossy.encoding=Lossy encoding
inspection.duplicated.code.display.name=Duplicated Code
inconsistent.line.separators=Inconsistent line separators
inspection.unused.symbol.public.method.parameters=Check parameters in &Non-private methods
introduce.constant.across.the.project=Introduce Constant Across the Project
inspection.application.chosen.profile.log\ message=Inspecting with profile ''{0}''
detach.library.quickfix.name=Detach library
detach.library.roots.quickfix.name=Detach unused library roots
inspection.javadoc.problem.pointing.to.itself=Javadoc pointing to itself

inspection.redirect.template=<html><body>Injected element has problem: {0} (in <a href=\"#navigation/{1}:{2}\">{3}</a>). </body></html>
nothing.found=Nothing found
special.annotations.list.annotation.pattern=Add Annotations Pattern

inspection.variable.assigned.to.itself.display.name=Variable is assigned to itself
assignment.to.itself.problem.descriptor=Variable ''{0}'' is assigned to itself
assignment.to.declared.variable.problem.descriptor=Variable ''{0}'' is initialized with self assignment
