###############################################################################
# Copyright (c) 2005, 2020 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Stephan Herrmann <stephan@cs.tu-berlin.de> - [quick fix] Add quick fixes for null annotations - https://bugs.eclipse.org/337977
###############################################################################
StringMultiFix_AddMissingNonNls_description=Add missing '$NON-NLS$' tags
StringMultiFix_RemoveUnnecessaryNonNls_description=Remove unnecessary '$NON-NLS$' tags

UnusedCodeMultiFix_RemoveUnusedVariable_description=Remove unused local variables
UnusedCodeMultiFix_RemoveUnusedField_description=Remove unused private fields
UnusedCodeMultiFix_RemoveUnusedType_description=Remove unused private types
UnusedCodeCleanUp_RemoveUnusedCasts_description=Remove unnecessary casts
UnusedCodeMultiFix_RemoveUnusedConstructor_description=Remove unused private constructors
UnusedCodeMultiFix_RemoveUnusedMethod_description=Remove unused private methods
UnusedCodeMultiFix_RemoveUnusedImport_description=Remove unused imports
 
CodeStyleMultiFix_ChangeNonStaticAccess_description=Change non static accesses to static members using declaring type
ControlStatementsCleanUp_RemoveUnnecessaryBlocks_description=Remove unnecessary blocks
ControlStatementsCleanUp_RemoveUnnecessaryBlocksWithReturnOrThrow_description=Convert control statement bodies to block except for single return or throw statement

UnimplementedCodeCleanUp_AddUnimplementedMethods_description=Add unimplemented methods
UnimplementedCodeCleanUp_MakeAbstract_description=Make classes abstract

CodeStyleMultiFix_ChangeIndirectAccessToStaticToDirect=Change indirect accesses to static members to direct accesses (accesses through subtypes)
CodeStyleCleanUp_addDefaultSerialVersionId_description=Add missing serial version ID (default 1L)
CodeStyleCleanUp_ExtractIncrement_description=Extract increment/decrement from statement
CodeStyleCleanUp_PullUpAssignment_description=Pull up assignment
CodeStyleCleanUp_ElseIf_description=Combine nested 'if' statement in 'else' block to 'else if'
CodeStyleCleanUp_ReduceIndentation_description=Reduce indentation
CodeStyleCleanUp_numberSuffix_description=Use uppercase for long literal suffix
CodeFormatFix_RemoveTrailingWhitespace_changeDescription=Remove trailing whitespace
CodeFormatCleanUp_RemoveTrailingNoEmpty_description=Remove trailing white spaces on non empty lines
CodeStyleCleanUp_QualifyNonStaticMethod_description=Add 'this' qualifier to unqualified method accesses
CodeStyleCleanUp_QualifyStaticMethod_description=Qualify accesses to static methods with declaring class
CodeStyleMultiFix_AddThisQualifier_description=Add 'this' qualifier to unqualified field accesses
CodeFormatCleanUp_RemoveTrailingAll_description=Remove trailing white spaces on all lines
CodeFormatCleanUp_correctIndentation_description=Correct indentation
CodeFormatFix_correctIndentation_changeGroupLabel=Correct indentation
CodeStyleMultiFix_QualifyAccessToStaticField=Qualify accesses to static fields with declaring class
CodeStyleCleanUp_removeFieldThis_description=Remove 'this' qualifier for non static field accesses
CodeStyleCleanUp_removeMethodThis_description=Remove 'this' qualifier for non static method accesses
CodeStyleMultiFix_ConvertSingleStatementInControlBodyToBlock_description=Convert control statement bodies to block
CodeStyleCleanUp_Switch_description=Convert if/else if/else chain to switch

Java50MultiFix_AddMissingDeprecated_description=Add missing '@Deprecated' annotations
Java50CleanUp_ConvertToEnhancedForLoop_description=Convert 'for' loops to enhanced 'for' loops
Java50CleanUp_ConvertLoopOnlyIfLoopVarUsed_description=Convert to enhanced 'for' loops only if the loop variable is used
Java50CleanUp_AddTypeParameters_description=Add type arguments to raw type references
Java50MultiFix_AddMissingOverride_description=Add missing '@Override' annotations
Java50MultiFix_AddMissingOverride_description2=Add missing '@Override' annotations to implementations of interface methods
SerialVersionCleanUp_Generated_description=Add missing serial version ID (generated)

CleanUpRefactoringWizard_unknownProfile_Name=Unknown
CleanUpRefactoringWizard_use_configured_radio=&Use configured profiles
CleanUpRefactoringWizard_EmptySelection_message=Select at least one clean up.
CleanUpRefactoringWizard_Project_TableHeader=Project
CleanUpRefactoringWizard_Profile_TableHeader=Profile
CleanUpRefactoringWizard_Configure_Button=Confi&gure...
CleanUpRefactoringWizard_use_custom_radio=Use custom &profile
CleanUpRefactoringWizard_HideWizard_Link=Go to the <a>Clean Up</a> preference page to hide this wizard in the future
CleanUpRefactoringWizard_CleaningUp11_Title=Cleaning up 1 file in 1 project
CleanUpRefactoringWizard_CleaningUpN1_Title=Cleaning up {0} files in 1 project
CleanUpRefactoringWizard_CleaningUpNN_Title=Cleaning up {0} files in {1} projects
CleanUpRefactoringWizard_formatterException_errorMessage=The formatter threw an unhandled exception while formatting the preview.
CleanUpRefactoringWizard_WindowTitle=Clean Up
CleanUpRefactoringWizard_PageTitle=Clean Up
ExpressionsCleanUp_addParanoiac_description=Put expressions in parentheses
ExpressionsCleanUp_removeUnnecessary_description=Remove unnecessary parentheses
VariableDeclarationCleanUp_AddFinalField_description=Add final modifier to private fields
VariableDeclarationCleanUp_AddFinalParameters_description=Add final modifier to method parameters
VariableDeclarationCleanUp_AddFinalLocals_description=Add final modifier to local variables

CleanUpRefactoringWizard_CleanUpConfigurationPage_title=Clean Up Configuration
CleanUpRefactoringWizard_UnmanagedProfileWithName_Name=Unmanaged profile ''{0}''
CleanUpRefactoringWizard_ConfigureCustomProfile_button=Confi&gure...
CleanUpRefactoringWizard_XofYCleanUpsSelected_message={0} of {1} clean ups selected
CleanUpRefactoringWizard_CustomCleanUpsDialog_title=Custom Clean Ups

CodeFormatFix_description=Format code
CodeFormatCleanUp_description=Format source code
ImportsCleanUp_OrganizeImports_Description=Organize imports
VarCleanUp_description=Use the local variable type inference where possible
PatternMatchingForInstanceofCleanup_description=Use pattern matching for instanceof
LambdaExpressionsCleanUp_use_lambda_where_possible=Use lambda where possible
LambdaExpressionsCleanUp_use_anonymous=Use anonymous class creations
LambdaExpressionAndMethodRefCleanUp_description=Simplify lambda expression and method reference syntax
PatternCleanup_description=Precompile reused regular expressions
NoStringCreationCleanUp_description=Remove unnecessary String creation
BooleanLiteralCleanup_description=Use boolean literals instead of Boolean.TRUE/FALSE when used as a primitive

SortMembersCleanUp_AllMembers_description=Sort all members
SortMembersCleanUp_Excluding_description=Sort members excluding fields, enum constants, and initializers
SortMembersCleanUp_RemoveMarkersWarning0=The file ''{0}'' in project ''{1}'' contains markers which may be removed by Sort Members

NullAnnotationsCleanUp_add_nullable_annotation=Add missing @Nullable annotation
NullAnnotationsCleanUp_add_nonnull_annotation=Add missing @NonNull annotation
NullAnnotationsCleanUp_add_nonnullbydefault_annotation=Add missing @NonNullByDefault annotation
NullAnnotationsCleanUp_remove_redundant_nullness_annotation=Remove redundant nullness annotation

SingleUsedFieldCleanUp_description=Convert fields into local variables if the use is only local
SingleUsedFieldCleanUp_description_old_field_declaration=Remove field to use a local variable instead
SingleUsedFieldCleanUp_description_new_local_var_declaration=Convert field assignment into local variable declaration
SingleUsedFieldCleanUp_description_uses_of_the_var=Convert field call into local variable call
BreakLoopCleanUp_description=Exit loop earlier
StaticInnerClassCleanUp_description=Make inner classes static where possible
StringBuilderCleanUp_description=Replace String concatenation by StringBuilder
PlainReplacementCleanUp_description=Use String::replace instead of String::replaceAll when no regex used
CodeStyleCleanUp_LazyLogical_description=Use lazy logical operator (&& and ||)
PrimitiveComparisonCleanUp_description=Primitive comparison
PrimitiveParsingCleanUp_description=Primitive parsing
PrimitiveSerializationCleanUp_description=Primitive serialization

TypeParametersCleanUp_InsertInferredTypeArguments_description=Insert inferred type arguments
TypeParametersCleanUp_RemoveUnnecessaryTypeArguments_description=Use diamond operator
HashCleanup_description=Use Objects.hash()

RedundantModifiersCleanup_description=Remove redundant modifiers
SubstringCleanUp_description=Redundant String.substring() parameter
JoinCleanup_description=Use String.join()
ArraysFillCleanUp_description=Use Arrays.fill() when possible
EvaluateNullableCleanUp_description=Evaluate without null check
EmbeddedIfCleanup_description=Raise embedded if into parent if
AutoboxingCleanup_description=Use Autoboxing
UnboxingCleanup_description=Use Unboxing
PushDownNegationCleanup_description=Push down negation
DoubleNegationCleanUp_description=Double negation
RedundantComparisonStatementCleanup_description=Remove redundant comparison statement
RedundantSuperCallCleanup_description=Remove redundant super() call in constructor
UnreachableBlockCleanUp_description=Unreachable block
TernaryOperatorCleanUp_description=Replace (X && Y) || (!X && Z) by X ? Y : Z
StrictlyEqualOrDifferentCleanUp_description=Use '==' or '^' on booleans
MergeConditionalBlocksCleanup_description=Merge conditions of if/else if/else that have the same blocks
ControlFlowMergeCleanUp_description=Pull down common code from if/else statement
RedundantFallingThroughBlockEndCleanup_description=Remove redundant end of block with jump statement
RedundantIfConditionCleanup_description=Redundant if condition
UseDirectlyMapMethodCleanup_description=Operate on Maps directly
CollectionCloningCleanUp_description=Initialize collection at creation
MapCloningCleanUp_description=Initialize map at creation
OverriddenAssignmentCleanUp_description=Remove overridden assignment
RedundantSemicolonsCleanup_description=Remove redundant semicolons
UnnecessaryArrayCreationCleanup_description=Remove unnecessary array creation for varargs
UselessReturnCleanUp_description=Remove useless return
UselessContinueCleanUp_description=Remove useless continue
UnloopedWhileCleanUp_description=Convert loop into if
AddAllCleanup_description=Add elements in collections without loop
ObjectsEqualsCleanup_description=Use Objects.equals() in the equals method implementation

InvertEqualsCleanUp_description=Avoid Object::equals or String::equalsIgnoreCase on null objects
CheckSignOfBitwiseOperation_description=Use != 0 instead of > 0 when comparing the result of a bitwise expression
StandardComparisonCleanUp_description=Compare to zero
SwitchExpressionsCleanUp_ConvertToSwitchExpressions_description=Convert to switch expression where possible

ComparingOnCriteriaCleanUp_description=Use Comparator.comparing()
TryWithResourceCleanup_description=Use try-with-resource
MultiCatchCleanUp_description=Multi-catch
