###############################################################################
# Copyright (c) 2005, 2019 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 - Contributions for
#								[quick fix] Add quick fixes for null annotations - https://bugs.eclipse.org/337977
#								[quick fix] The fix change parameter type to @Nonnull generated a null change - https://bugs.eclipse.org/400668
#								[null] "Annotate" proposals for adding external null annotations to library classes - https://bugs.eclipse.org/458200
#     Red Hat Inc. - refactored to jdt.core.manipulation
###############################################################################
CleanUpRefactoring_Refactoring_name=Clean Up
CleanUpRefactoring_Initialize_message=Checking preconditions for project ''{0}''
CompilationUnitRewriteOperationsFix_nullChangeError=The fix ''{0}'' generated a null change.
CleanUpRefactoring_Parser_Startup_message=Processing project {0}
CleanUpRefactoring_clean_up_multi_chang_name=Clean Up
CleanUpRefactoring_could_not_retrive_profile=Could not retrieve profile for project ''{0}''
CleanUpRefactoring_ProcessingCompilationUnit_message=Processing compilation unit {0} of {1} ({2})
CleanUpRefactoring_checkingPostConditions_message=Checking post conditions
CleanUpRefactoring_exception=Exception occurred while changing ''{0}''.

CleanUpRegistry_ErrorTabPage_description=An error occurred while creating this page:\n{0}\n\nSee the error log for details.
CleanUpRegistry_ErrorTabPage_preview=No preview available
CleanUpRegistry_UnknownInitializerKind_errorMessage=The cleanUpOptionsInitializer contributed by ''{0}'' specified a wrong clean up kind: ''{1}''.
CleanUpRegistry_WrongKindForConfigurationUI_error=The cleanUpConfigurationUI ''{0}'' contributed by ''{1}'' specified a wrong clean up kind: ''{2}''.
CleanUpRegistry_cleanUpAlwaysEnabled_error=The clean up ''{0}'' contributed by ''{1}'' has been disabled because it does not honor any options.
CleanUpRegistry_cleanUpCreation_error=The clean up ''{0}'' contributed by ''{1}'' has been disabled because it failed during initialization.
UnusedCodeFix_RemoveFieldOrLocal_description=Remove ''{0}'', keep assignments with side effects
UnusedCodeFix_RemoveFieldOrLocalWithInitializer_description=Remove ''{0}'' and all assignments
UnusedCodeFix_RemoveFieldOrLocal_RemovedAssignments_preview_singular=<br>removing <b>1</b> assignment
UnusedCodeFix_RemoveFieldOrLocal_RemovedAssignments_preview_plural=<br>removing <b>{0}</b> assignments
UnusedCodeFix_RemoveFieldOrLocal_AlteredAssignments_preview_singular=<br>modifying <b>1</b> assignment
UnusedCodeFix_RemoveFieldOrLocal_AlteredAssignments_preview_plural=<br>modifying <b>{0}</b> assignments
UnusedCodeFix_RemoveUnusedConstructor_description=Remove unused private constructor
UnusedCodeFix_RemoveUnusedPrivateMethod_description=Remove unused private method
UnusedCodeFix_RemoveUnusedVariabl_description=Remove unused local variable
UnusedCodeFix_RemoveMethod_description=Remove method ''{0}''
UnusedCodeFix_RemoveConstructor_description=Remove constructor ''{0}''
UnusedCodeFix_RemoveUnusedType_description=Remove unused private type
UnusedCodeFix_RemoveUnusedTypeParameter_description=Remove unused type parameter
UnusedCodeFix_RemoveUnusedField_description=Remove unused private field
UnusedCodeFix_RemoveType_description=Remove type ''{0}''
UnusedCodeFix_RemoveCast_description=Remove cast
UnusedCodeFix_change_name=Remove unused code
UnusedCodeFix_RemoveImport_description=Remove unused import
UnusedCodeFix_RemoveUnnecessaryArrayCreation_description=Remove unnecessary array creation

Java50Fix_AddMissingAnnotation_description=Add missing {0} annotation
Java50Fix_SerialVersion_default_description=Add default serial version ID
Java50Fix_AddTypeArguments_description=Add type arguments to ''{0}''
Java50Fix_SerialVersion_hash_description=Add generated serial version ID
Java50Fix_ConvertToEnhancedForLoop_description=Convert to enhanced 'for' loop
Java50Fix_SerialVersion_CalculateHierarchy_description=Calculate Type Hierarchy for {0}
Java50Fix_InitializeSerialVersionId_subtask_description=Searching for types with missing serial version ID
Java50Fix_AddDeprecated_description=Add missing @Deprecated annotation
Java50Fix_add_annotations_change_name=Add Annotations
Java50Fix_add_type_parameters_change_name=Add type arguments
Java50Fix_AddOverride_description=Add missing @Override annotation
Java50Fix_RemoveUnnecessaryArrayCreation_description=Remove unnecessary array creation
StringFix_AddRemoveNonNls_description=Add/Remove '$NON-NLS$' tag
StringFix_AddNonNls_description=Add missing '$NON-NLS$' tag
StringFix_RemoveNonNls_description=Remove unnecessary '$NON-NLS$' tag

ValueOfRatherThanInstantiationFix_description=valueOf() rather than instantiation

CodeStyleFix_ChangeAccessToStatic_description=Change access to static using ''{0}'' (declaring type)
CodeStyleFix_ChangeAccessUsingDeclaring_description=Change access to static using declaring type
CodeStyleFix_ChangeControlToBlock_description=Change control statement body to block
CodeStyleFix_ChangeStaticAccess_description=Change static access to ''{0}''
CodeStyleFix_ChangeIfToBlock_desription=Change 'if' statement body to block
CodeStyleFix_ChangeElseToBlock_description=Change 'else' statement body to block
CodeStyleFix_QualifyWithThis_description=Qualify ''{0}'' with ''{1}''
CodeStyleFix_QualifyMethodWithDeclClass_description=Qualify method call with declaring type
CodeStyleFix_QualifyFieldWithDeclClass_description=Qualify field access with declaring type
CodeStyleFix_removeThis_groupDescription=Remove 'this' qualifier

InvertEqualsFix_invert=Avoid Object.equals() or String.equalsIgnoreCase() on null objects
StandardComparisonFix_compare_to_zero=Compare to zero
CodeStyleFix_ChangeAccessToStaticUsingInstanceType_description=Change access to static using ''{0}'' (instance type)

SerialVersion_group_description=Add serial version Id

ControlStatementsFix_removeIfBlock_proposalDescription=Change 'if' block to statement
ControlStatementsFix_removeElseBlock_proposalDescription=Change 'else' block to statement
ControlStatementsFix_removeIfElseBlock_proposalDescription=Change 'if-else' blocks to statements
ControlStatementsFix_removeBrackets_proposalDescription=Remove block from body statement
ExpressionsFix_addParanoiacParentheses_description=Put expressions in parentheses
ExpressionsFix_add_parentheses_change_name=Add Parentheses
ExpressionsFix_removeUnnecessaryParentheses_description=Remove extra parentheses
ExpressionsFix_remove_parentheses_change_name=Remove Parentheses

VariableDeclarationFix_changeModifierOfUnknownToFinal_description=Change modifier to final
VariableDeclarationFix_add_final_change_name=Add final
VariableDeclarationFix_ChangeMidifiersToFinalWherPossible_description=Change modifiers to final where possible

PotentialProgrammingProblemsFix_calculatingUIDFailed_unknown=Could not calculate a serial version id for {0}. The type will be ignored.
PotentialProgrammingProblemsFix_add_id_change_name=Add Serial Version ID
PotentialProgrammingProblemsFix_calculatingUIDFailed_exception=Could not calculate serial version ids for serializable types in project {0}. The types will be ignored. Reason: {1}.

ConvertIterableLoopOperation_semanticChangeWarning=Converting the loop may change the semantics of the code.
ConvertIterableLoopOperation_RemoveUpdateExpression_Warning=The expression ''{0}'' in the update part of the loop will be removed.
ConvertIterableLoopOperation_RemoveUpdateExpressions_Warning=The expressions in the update part of the loop will be removed.
ImportsFix_OrganizeImports_Description=Organize Imports

PrimitiveComparisonFix_convert_compareTo_to_primitive_comparison=Convert compareTo() method to a primitive comparison
PrimitiveIntRatherThanWrapperFix_description=Use int rather than java.lang.Integer
PrimitiveLongRatherThanWrapperFix_description=Use long rather than java.lang.Long

CleanUpPostSaveListener_name=Code Clean Up
CleanUpPostSaveListener_SaveAction_ChangeName=Save Actions
CleanUpPostSaveListener_SlowCleanUpDialog_link=If this happens again we recommend to disable the corresponding save actions on the <a>'Save Actions'</a> preference page.
CleanUpPostSaveListener_SlowCleanUpDialog_title=Slow Save Actions
CleanUpPostSaveListener_SlowCleanUpWarningDialog_explain=Some of the following save actions are very slow:
CleanUpPostSaveListener_unknown_profile_error_message=Clean Up save participant could not retrieve profile with id ''{0}''
CodeStyleFix_change_name=Code Style Clean Up
ControlStatementsFix_change_name=Control Statements Clean Up
SortMembersFix_Change_description=Sort Members
SortMembersFix_Fix_description=Sort Members

PlainReplacementFix_use_plain_text=Use String.replace() instead of String.replaceAll() when possible

NullAnnotationsFix_add_annotation_change_name=Add Annotations
NullAnnotationsRewriteOperations_change_method_parameter_nullness=Change parameter ''{0}'' to ''@{1}''
NullAnnotationsRewriteOperations_change_target_method_parameter_nullness=Change parameter of ''{0}(..)'' to ''@{1}''
NullAnnotationsRewriteOperations_change_method_return_nullness=Change return type of ''{0}(..)'' to ''@{1}''
NullAnnotationsRewriteOperations_change_overridden_parameter_nullness=Change parameter in overridden ''{0}(..)'' to ''@{1}''
NullAnnotationsRewriteOperations_change_overridden_return_nullness=Change return type of overridden ''{0}(..)'' to ''@{1}''

NullAnnotationsRewriteOperations_remove_redundant_nullness_annotation=Remove redundant nullness annotation
NullAnnotationsRewriteOperations_add_missing_default_nullness_annotation=Add ''@{0}'' to the package declaration

ExternalNullAnnotationChangeProposals_add_nullness_annotation=Annotate as ''@{0} {1}''
ExternalNullAnnotationChangeProposals_add_nullness_array_annotation=Annotate as ''{0} @{1} {2}''
ExternalNullAnnotationChangeProposals_remove_nullness_annotation=Remove nullness annotation from type ''{0}''

ExtractToNullCheckedLocalProposal_extractCheckedLocal_editName=Extract checked local
ExtractToNullCheckedLocalProposal_extractToCheckedLocal_proposalName=Extract to checked local variable
ExtractToNullCheckedLocalProposal_todoHandleNullDescription=handle null value
PatternFix_convert_string_to_pattern_object=Convert string to pattern object
LambdaExpressionsFix_convert_to_anonymous_class_creation=Convert to anonymous class creation
LambdaExpressionsFix_convert_to_lambda_expression=Convert to lambda expression
LambdaExpressionsFix_convert_to_lambda_expression_removes_annotations=Convert to lambda expression (removes annotations on method)
PatternMatchingForInstanceofFix_refactor=Use pattern matching for instanceof
SwitchExpressionsFix_convert_to_switch_expression=Convert to switch expression
SwitchFix_convert_if_to_switch=Convert if/else if/else chain to switch
TypeParametersFix_insert_inferred_type_arguments_description=Insert inferred type arguments
TypeParametersFix_insert_inferred_type_arguments_name=Insert inferred type arguments
TypeParametersFix_remove_redundant_type_arguments_description=Remove redundant type arguments
TypeParametersFix_remove_redundant_type_arguments_name=Remove redundant type arguments
BooleanValueRatherThanComparisonFix_description=Boolean value rather than comparison
RedundantComparatorFix_remove_comparator=Implicit comparator
ArrayWithCurlyFix_description=Create array with curly
ReturnExpressionFix_description=Remove variable assignment before return

OneIfRatherThanDuplicateBlocksThatFallThroughFix_description=Single 'if' statement rather than duplicate blocks that fall through

TypeAnnotationFix_move=Move type annotation
TypeAnnotationFix_remove=Remove type annotation
ConstantsCleanUpFix_refactor=Replace system property with Java method
