###############################################################################
# Copyright (c) 2005, 2016 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
CleanUpModifyDialog_SelectOne_Error=Select at least one clean up.
CleanUpModifyDialog_XofYSelected_Label={0} of {1} clean ups selected

CleanUpProfileManager_ProfileName_EclipseBuildIn=Eclipse [built-in]
CleanUpConfigurationBlock_SelectedCleanUps_label=Details:
CleanUpConfigurationBlock_ShowCleanUpWizard_checkBoxLabel=&Show profile selection dialog for the 'Source > Clean Up' action

CodeFormatingTabPage_GroupName_Formatter=Formatter
CodeFormatingTabPage_Imports_GroupName=Imports
CodeFormatingTabPage_CheckboxName_FormatSourceCode=&Format source code
CodeFormatingTabPage_FormatterSettings_Description=The settings for the formatter can be changed on the 'Formatter' preference page.
CodeFormatingTabPage_OrganizeImports_CheckBoxLable=Or&ganize imports
CodeFormatingTabPage_RemoveTrailingWhitespace_all_radio=&All lines
CodeFormatingTabPage_OrganizeImportsSettings_Description=The settings for organizing imports can be changed on the 'Organize Imports' preference page.
CodeFormatingTabPage_SortMembers_GroupName=Members
CodeFormatingTabPage_SortMembers_CheckBoxLabel=&Sort members
CodeFormatingTabPage_SortMembersExclusive_radio0=Do &not sort fields, enum constants, and initializers
CodeFormatingTabPage_SortMembers_Description=The sort order may be configured on the 'Members Sort Order' preference page.
CodeFormatingTabPage_SortMembersFields_CheckBoxLabel=Sor&t all members
CodeFormatingTabPage_SortMembersSemanticChange_warning=Reordering of fields, enum constants, and initializers can result in semantic and runtime changes due to different initialization and persistence order.
CodeFormatingTabPage_correctIndentation_checkbox_text=Correct &indentation
CodeFormatingTabPage_RemoveTrailingWhitespace_checkbox_text=Remove trailing &whitespace
CodeFormatingTabPage_RemoveTrailingWhitespace_ignoreEmpty_radio=Ignore empty &lines

CodeStyleTabPage_CheckboxName_UseBlocks=Use bloc&ks in if/while/for/do statements
CodeStyleTabPage_RadioName_AlwaysUseBlocks=Al&ways
CodeStyleTabPage_RadioName_NeverUseBlocks=Only if &necessary
CodeStyleTabPage_GroupName_Expressions=Expressions
CodeStyleTabPage_CheckboxName_UseFinal=U&se modifier 'final' where possible
CodeStyleTabPage_CheckboxName_UseFinalForParameters=P&arameter
CodeStyleTabPage_RadioName_AlwaysUseParantheses=Alwa&ys
CodeStyleTabPage_RadioName_NeverUseParantheses=Only &if necessary
CodeStyleTabPage_GroupName_VariableDeclarations=Variable declarations
CodeStyleTabPage_CheckboxName_UseFinalForFields=Private &fields
CodeStyleTabPage_CheckboxName_UseFinalForLocals=&Local variables
CodeStyleTabPage_CheckboxName_ConvertForLoopToEnhanced=Conver&t 'for' loops to enhanced
CodeStyleTabPage_GroupName_ControlStatments=Control statements
CodeStyleTabPage_RadioName_UseBlocksSpecial=Always &except for single 'return' or 'throw' statements
CodeStyleTabPage_CheckboxName_UseParentheses=Use parent&heses in expressions
CodeStyleTabPage_GroupName_FunctionalInterfaces=Functional interface instances
CodeStyleTabPage_CheckboxName_ConvertFunctionalInterfaces=Con&vert functional interface instances
CodeStyleTabPage_RadioName_UseLambdaWherePossible=Use lambda where possible
CodeStyleTabPage_RadioName_UseAnonymous=Use anonymous class
ContributedCleanUpTabPage_ErrorPage_message=An error occurred while creating this page. See the error log for details

MemberAccessesTabPage_GroupName_NonStaticAccesses=Non static accesses
MemberAccessesTabPage_CheckboxName_FieldQualifier=Use '&this' qualifier for field accesses
MemberAccessesTabPage_RadioName_AlwaysThisForFields=A&lways
MemberAccessesTabPage_RadioName_NeverThisForFields=Only &if necessary
MemberAccessesTabPage_CheckboxName_MethodQualifier=Use 'this' quali&fier for method accesses
MemberAccessesTabPage_RadioName_AlwaysThisForMethods=Al&ways
MemberAccessesTabPage_RadioName_NeverThisForMethods=O&nly if necessary
MemberAccessesTabPage_GroupName_StaticAccesses=Static accesses
MemberAccessesTabPage_CheckboxName_QualifyWithDeclaringClass=Use declaring class as &qualifier
MemberAccessesTabPage_CheckboxName_QualifyFieldWithDeclaringClass=Qualif&y field accesses
MemberAccessesTabPage_CheckboxName_QualifyMethodWithDeclaringClass=Qualify met&hod accesses
MemberAccessesTabPage_CheckboxName_ChangeAccessesThroughSubtypes=Change &all accesses through subtypes
MemberAccessesTabPage_CheckboxName_ChangeAccessesThroughInstances=Change all accesses throu&gh instances

MissingCodeTabPage_GroupName_Annotations=Annotations
MissingCodeTabPage_GroupName_UnimplementedCode=Unimplemented code
MissingCodeTabPage_GroupName_PotentialProgrammingProblems=Potential programming problems
MissingCodeTabPage_CheckboxName_AddMissingAnnotations=Add missing &Annotations
MissingCodeTabPage_CheckboxName_AddMissingOverrideAnnotations='@Overr&ide'
MissingCodeTabPage_CheckboxName_AddMissingOverrideInterfaceAnnotations=Implemen&tations of interface methods (1.6 or higher)
MissingCodeTabPage_CheckboxName_AddMissingDeprecatedAnnotations='@&Deprecated'
MissingCodeTabPage_CheckboxName_AddMethods=Add u&nimplemented methods
MissingCodeTabPage_CheckboxName_AddSUID=Add &serial version ID
MissingCodeTabPage_Label_CodeTemplatePreferencePage=The settings for the method stub to insert can be configured on the 'Code Templates' preference page.
MissingCodeTabPage_RadioName_AddGeneratedSUID=&Generated
MissingCodeTabPage_RadioName_AddDefaultSUID=Default (&1L)

UnnecessaryCodeTabPage_GroupName_UnusedCode=Unused code
UnnecessaryCodeTabPage_CheckboxName_UnusedImports=Remove unu&sed imports
UnnecessaryCodeTabPage_CheckboxName_UnusedMembers=Remove unuse&d private members
UnnecessaryCodeTabPage_CheckboxName_UnusedTypes=&Types
UnnecessaryCodeTabPage_CheckboxName_UnusedConstructors=Co&nstructors
UnnecessaryCodeTabPage_CheckboxName_UnusedFields=F&ields
UnnecessaryCodeTabPage_CheckboxName_UnusedMethods=Met&hods
UnnecessaryCodeTabPage_CheckboxName_UnusedLocalVariables=Remove unused &local variables
UnnecessaryCodeTabPage_GroupName_UnnecessaryCode=Unnecessary code
UnnecessaryCodeTabPage_CheckboxName_UnnecessaryCasts=Remove unnecessar&y casts
UnnecessaryCodeTabPage_CheckboxName_UnnecessaryNLSTags=Remove unnecessary '$NON-NLS$' ta&gs
UnnecessaryCodeTabPage_CheckboxName_RedundantTypeArguments=Remove redundant type &arguments (1.7 or higher)
UnnecessaryCodeTabPage_CheckboxName_RedundantModifiers=R&emove redundant modifiers
UnnecessaryCodeTabPage_CheckboxName_RedundantModifiers_description=Removes unnecessary modifiers on fields and methods
UnnecessaryCodeTabPage_CheckboxName_RedundantSemicolons=Remove redundant semicolons
UnnecessaryCodeTabPage_CheckboxName_RedundantSemicolons_description=Removes unnecessary semicolons on statements and declarations
