# ProGuard -- shrinking, optimization, and obfuscation of Java class files.
# Copyright (c) 2002-2017 Eric Lafortune @ GuardSquare

#
# Tab names.
#
proGuardTab     = ProGuard
inputOutputTab  = Input/Output
shrinkingTab    = Shrinking
obfuscationTab  = Obfuscation
optimizationTab = Optimization
informationTab  = Information
processTab      = Process
reTraceTab      = ReTrace

#
# Splash text.
#
developed       = Developed by Eric Lafortune
shrinking       = Shrinking
optimization    = Optimization
obfuscation     = Obfuscation
preverification = Preverification

#
# Panel titles.
#
welcome                       = Welcome to ProGuard, version 5.3.3
options                       = Options
keepAdditional                = Keep additional classes and class members
keepNamesAdditional           = Keep additional class names and class member names
assumeNoSideEffectsAdditional = Assume no side effects for additional methods
whyAreYouKeeping              = Why are you keeping
preverificationAndTargeting   = Preverification and targeting
consistencyAndCorrectness     = Consistency and correctness
processingConsole             = Processing console
reTraceSettings               = ReTrace settings
deobfuscatedStackTrace        = De-obfuscated stack trace

keepAdditionalTip = \
  If required, keep additional classes, fields, and methods as entry points.
keepNamesAdditionalTip = \
  If required, keep the names of additional classes, fields, and methods.
assumeNoSideEffectsAdditionalTip = \
  <html>Optionally specify additional methods that don't have any side effects.<br>\
  <i>Only add entries if you know what you're doing!</i></html>
whyAreYouKeepingTip = \
  Ask ProGuard why it is keeping certain classes, fields, or methods.

#
# Info texts.
#
proGuardInfo = \
  <html>ProGuard is a free class file shrinker, optimizer, obfuscator, and preverifier.\
  <p>\
  With this GUI, you can create, load, modify, and save ProGuard configurations.\
  <br>\
  You can then process your code right away, or you can run ProGuard from the \
  command line using your saved configuration.\
  <p>\
  With the ReTrace part of this GUI you can de-obfuscate your stack traces.\
  <p>\
  ProGuard and ReTrace are written and maintained by Eric Lafortune.\
  <p>\
  Official site at Sourceforge: \
  <a href="http://proguard.sourceforge.net/\">http://proguard.sourceforge.net/</a>\
  <br>\
  Professional support by GuardSquare: \
  <a href="http://www.guardsquare.com/\">http://www.guardsquare.com/</a>\
  <p>\
  Distributed under the GNU General Public License.\
  <br>\
  Copyright &copy; 2002-2017.</html>

processingInfo = \
  You can now start processing your code, \
  or you can run ProGuard from the command line using your saved configuration.

reTraceInfo = \
  If you had ProGuard write out a mapping file, \
  you can de-obfuscate your obfuscated stack traces with ReTrace!\
  \n\n\
  You can load an obfuscated stack trace from a file, \
  or you can paste it straight into the text area above.

#
# Titles and labels corresponding to common ProGuard options.
#
programJars = Program jars, aars, wars, ears, zips, apks, and directories
libraryJars = Library jars, aars, wars, ears, zips, apks, and directories

shrink                           = Shrink
printUsage                       = Print usage

optimize                         = Optimize
allowAccessModification          = Allow access modification
mergeInterfacesAggressively      = Merge interfaces aggressively
optimizations                    = Optimizations
optimizationPasses               = Optimization passes

obfuscate                        = Obfuscate
printMapping                     = Print mapping
applyMapping                     = Apply mapping
obfuscationDictionary            = Obfuscation dictionary
classObfuscationDictionary       = Class obfuscation dictionary
packageObfuscationDictionary     = Package obfuscation dictionary
overloadAggressively             = Overload aggressively
useUniqueClassMemberNames        = Use unique class member names
keepPackageNames                 = Keep package names
flattenPackageHierarchy          = Flatten package hierarchy
repackageClasses                 = Repackage classes
useMixedCaseClassNames           = Use mixed-case class names
keepAttributes                   = Keep attributes
keepParameterNames               = Keep parameter names
renameSourceFileAttribute        = Rename SourceFile attribute
adaptClassStrings                = Adapt class strings
adaptResourceFileNames           = Adapt resource file names
adaptResourceFileContents        = Adapt resource file contents

preverify                        = Preverify
microEdition                     = Micro Edition

verbose                          = Verbose
note                             = Note potential mistakes in the configuration
warn                             = Warn about possibly erroneous input
ignoreWarnings                   = Ignore warnings about possibly erroneous input
skipNonPublicLibraryClasses      = Skip non-public library classes
skipNonPublicLibraryClassMembers = Skip non-public library class members
keepDirectories                  = Keep directories
forceProcessing                  = Force processing
target                           = Target
targets                          = 1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8
printSeeds                       = Print seeds
printConfiguration               = Print configuration
dump                             = Print class files

mappingFile                      = Mapping file
obfuscatedStackTrace             = Obfuscated stack trace

programJarsTip = \
  <html>The input jars (aars, wars, ears, zips, apks, directories), followed by<br>\
  their corresponding output jars (wars, ears, zips, apks, directories).</html>
libraryJarsTip = \
  <html>The library jars (aars, wars, ears, zips, directories), on which the program jars depend.<br>\
  The library jars are required for processing, but they are not copied to the output.</html>

shrinkTip = \
  Remove unused classes, fields, and methods from the output.
printUsageTip = \
  Print out the list of unused classes, fields, and methods.

optimizeTip = \
  Optimize the bytecode of the processed classes.
allowAccessModificationTip = \
  Allow the optimization step to modify the access modifiers of classes, fields, and methods.
mergeInterfacesAggressivelyTip = \
  <html>Allow interfaces to be merged, even if their implementations don't implement all<br>\
  interface methods.  This is not allowed in the Java language, but it is allowed in bytecode.</html>
optimizationsTip = \
  Specify the types of optimizations to be performed.
optimizationsFilterTip = \
  A filter for the names of the optimizations to be performed.
optimizationsSelectTip = \
  Select from the currently available optimizations...
optimizationPassesTip = \
  Specify the number of optimization passes to be performed.

obfuscateTip = \
  Obfuscate the names of the processed classes, fields, and methods.
printMappingTip = \
  Print out the obfuscation mapping of original names to obfuscated names.
applyMappingTip = \
  Apply the given mapping of original names to obfuscated names.
obfuscationDictionaryTip = \
  Use the words in the given file for obfuscating field names and method names.
classObfuscationDictionaryTip = \
  Use the words in the given file for obfuscating class names.
packageObfuscationDictionaryTip = \
  Use the words in the given file for obfuscating package names.
overloadAggressivelyTip = \
  <html>Allow fields and methods to get the same obfuscated names, even if only their types or<br>\
  return types differ. This is not allowed in the Java language, but it is allowed in bytecode.</html>
useUniqueClassMemberNamesTip = \
  <html>Make sure fields and methods get the same obfuscation mapping across classes, even<br>\
  if they are unrelated. This is advisable if the output is to be obfuscated incrementally.</html>
keepPackageNamesTip = \
  Keep the specified package names from being obfuscated.
packageNamesTip = \
  <html>An optional comma-separated list of package names,<br>\
  e.g. <code>myapplication,mylibrary.**</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character, except the package separator.\
  <li><code>*</code> for any number of any characters, except the package separator.\
  <li><code>**</code> for any number of any characters.\
  </ul>\
  The negator <code>!</code> is also supported.</html>
flattenPackageHierarchyTip = \
  Move all packages that are renamed into the given parent package.
repackageClassesTip = \
  Move all classes that are renamed into the given package.
packageTip = \
  The optional package name.
useMixedCaseClassNamesTip = \
  <html>Generate mixed-case obfucated class names. This will complicate unpacking<br>\
  the resulting jars on case-insensitive file systems, should that be necessary.</html>
keepAttributesTip = \
  Keep the specified optional class file attributes.
attributesTip = \
  <html>An optional comma-separated list of class file attributes.\
  <ul>\
  <li>"Exceptions,Innerclasses, Signature" are necessary if the output is to be used as a library.\
  <li>"Deprecated" is optional if the output is to be used as a library.\
  <li>"LocalVariable*Table" can be useful for debugging.\
  <li>"Sourcefile,LineNumberTable" are necessary for generating stack traces.\
  <li>"*Annotations*" is necessary for preserving annotations.\
  </ul>\
  The wildcard <code>*</code> and the negator <code>!</code> are allowed.</html>
keepParameterNamesTip = \
  <html>Keep parameter names and types in "LocalVariable*Table" attributes<br>\
  in methods that are not obfuscated.</html>
renameSourceFileAttributeTip = \
  <html>Put the given string in the "SourceFile" attribute of the processed class files.<br>\
  It will appear as the file name of the classes in stack traces.</html>
sourceFileAttributeTip = \
  The replacement "SourceFile" string.
adaptClassStringsTip = \
  <html>Adapt string constants in the specified classes, based<br>\
  on the obfuscated names of corresponding classes.</html>
adaptResourceFileNamesTip = \
  <html>Rename the specified resource files, based on the<br>\
  obfuscated names of the corresponding class files.</html>
adaptResourceFileContentsTip = \
  <html>Adapt the contents of the specified resource files, based<br>\
  on the obfuscated names of the processed classes.</html>
fileNameFilterTip = \
  <html>A filter on file names,<br>\
  e.g. <code>mydirectory1/**,mydirectory2/**</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character, except the directory separator.\
  <li><code>*</code> for any number of any characters, except the directory separator.\
  <li><code>**</code> for any number of any characters.\
  </ul>\
  The negator <code>!</code> is also supported.</html>

preverifyTip = \
  Preverify the processed classes, for Java Micro Edition or for Java 6.
microEditionTip = \
  Target Java Micro Edition.

verboseTip = \
  Print out verbose messages while processing.
noteTip = \
  Print out notes about special or unusual input.
noteFilterTip = \
  A filter matching classes for which no notes should be printed.
warnTip = \
  <html>Print out warnings about possibly erroneous input.<br>\
  <i>Only unset this option if you know what you're doing!</i></html>
warnFilterTip = \
  A filter matching classes for which no warnings should be printed.
ignoreWarningsTip = \
  <html>Ignore any warnings about possibly erroneous input.<br>\
  <i>Only set this option if you know what you're doing!</i></html>
skipNonPublicLibraryClassesTip = \
  <html>Skip reading non-public library classes, for efficiency.<br>\
  You may have to unset this option if ProGuard complains about missing classes.</html>
skipNonPublicLibraryClassMembersTip = \
  <html>Skip reading non-public library fields and methods, for efficiency.<br>\
  You may have to unset this option if ProGuard complains about missing class members.</html>
keepDirectoriesTip = \
  Keep the specified directories in the output jars, wars, ears, zips, apks, or directories.
directoriesTip = \
  <html>A filter on directory names,<br>\
  e.g. <code>mydirectory1,mydirectory2/**</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character, except the directory separator.\
  <li><code>*</code> for any number of any characters, except the directory separator.\
  <li><code>**</code> for any number of any characters.\
  </ul>\
  The negator <code>!</code> is also supported.</html>
forceProcessingTip = \
  Always process the input, even if the output seems up to date.
targetTip = \
  Target the specified version of Java.
printSeedsTip = \
  Print out the list of kept classes, fields, and methods.
printConfigurationTip = \
  Print out the configuration.
dumpTip = \
  Print out the internal structure of the processed class files.

mappingFileTip = \
  The file containing the mapping of original names to obfuscated names.
obfuscatedStackTraceTip = \
  A stack trace produced by previously obfuscated code.

#
# Titles and labels corresponding to ProGuard keep options.
#
keepTitle = Keep

keep                   = Keep classes and class members
keepClassMembers       = Keep class members only
keepClassesWithMembers = Keep classes and class members, if members are present

alsoKeepTitle = Also keep

keepDescriptorClasses  = Keep descriptor classes

allowTitle = Allow

allowShrinking    = Allow shrinking
allowOptimization = Allow optimization
allowObfuscation  = Allow obfuscation

keepTitleTip = Keep the specified classes and/or their fields and methods.

keepTip = \
  <html>Keep the specified classes, fields, and methods as entry points.<br>\
  This is the most common option.</html>
keepClassMembersTip = \
  Only keep the specified fields and methods as entry points.
keepClassesWithMembersTip = \
  <html>Keep the specified classes, fields, and methods,<br>\
  on the condition that the fields and methods are present.</html>

alsoKeepTitleTip = \
  <html>Optionally keeping more classes.<br>\
  <i>These are advanced options.</i></html>

keepDescriptorClassesTip = \
  <html>Automatically keep the classes in the descriptors of matching<br>\
  fields and methods. Mostly useful for keeping their names.</html>

allowTitleTip = \
  <html>Optionally relax keeping the specified classes, fields, and methods.<br>\
  <i>These are advanced options.</i></html>

allowShrinkingTip = \
  Remove the specified classes, fields, and methods anyway, if they are not used.
allowOptimizationTip = \
  <html>Optimize the specified classes, fields, and methods as entry points anyway.<br>\
  <i>Only set this option if you know what you're doing!</i></html>
allowObfuscationTip = \
  <html>Obfuscate the names of the specified classes, fields, and methods anyway.<br>\
  <i>Only set this option if you know what you're doing!</i></html>

#
# Further keep titles and labels.
#
specifyClasses = Specify classes and class members...
specifyFields  = Specify fields...
specifyMethods = Specify methods...

comments                    = Comments
access                      = Access
required                    = Required
not                         = Not
dontCare                    = Don't care
annotation                  = Annotation
class                       = Class
extendsImplementsAnnotation = Extends/implements class with annotation
extendsImplementsClass      = Extends/implements class
classMembers                = Class members

extensionsOf = Extensions of
specificationNumber = Specification #

fieldType     = Field type
returnType    = Return type
name          = Name
argumentTypes = Argument types

commentsTip = \
  Optionally add a comment for this option in the configuration file.
accessTip = \
  <html>Optionally place constraints on the access modifiers of this element.<br>\
  E.g. only match public elements.</html>
requiredTip = \
  The access modifier has to be set.
notTip = \
  The access modifier must not be set.
dontCareTip = \
  The access modifier is irrelevant.
annotationTip = \
  <html>Optionally require the given annotation to be present on this element.<br>\
  E.g. only match elements that have an annotation <code>myPackage.MyAnnotation</code>.<br>\
  <i>This is an advanced option.</i></html>
classTip = \
  The name of the class or interface.
extendsImplementsAnnotationTip = \
  <html>Optionally require the given annotation to be present on the<br>\
  extended or implemented class or interface.<br>\
  E.g. only match classes that extend a class that has an annotation<br>\
  <code>myPackage.MyAnnotation</code>.<br>\
  <i>This is an advanced option.</i></html>
extendsImplementsClassTip = \
  <html>Optionally require the class to implement or extend the given class or interface.<br>\
  E.g. only match classes that implement an interface <code>myPackage.MyInterface</code>.</html>
classMembersTip = \
  <html>Optionally keep fields and methods as entry points in the matching class or classes.<br>\
  E.g. keep all public '<code>get*</code>' methods as entry points.</html>

fieldTypeTip     = The field type.
returnTypeTip    = The method return type, if any.
nameTip          = The name.
argumentTypesTip = The method argument types, if any.

classNameTip = \
  <html>The class name, e.g. <code>myPackage.MyClass</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character, except the package separator.\
  <li><code>*</code> for any number of any characters, except the package separator.\
  <li><code>**</code> for any number of any characters.\
  </ul></html>
classNamesTip = \
  <html>A regular expression to further constrain the class names,<br>\
  e.g. <code>myPackage1.MyClass,myPackage2.**</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character, except the package separator.\
  <li><code>*</code> for any number of any characters, except the package separator.\
  <li><code>**</code> for any number of any characters.\
  </ul>\
  The negator <code>!</code> is also supported.</html>
typeTip = \
  <html>The type, e.g. <code>int</code>, or <code>java.lang.String[]</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>%</code> for any primitive type.\
  <li><code>?</code> for any single character, except the package separator.\
  <li><code>*</code> for any number of any characters, except the package separator.\
  <li><code>**</code> for any number of any characters.\
  <li><code>***</code> (or empty) for any type.\
  </ul></html>
fieldNameTip = \
  <html>The field name, e.g. <code>myField</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character.\
  <li><code>*</code> for any number of any characters.\
  </ul></html>
methodNameTip = \
  <html>The method name, e.g. <code>myMethod</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>?</code> for any single character.\
  <li><code>*</code> for any number of any characters.\
  </ul></html>
argumentTypes2Tip = \
  <html>The comma-separated list of argument types,<br>\
  e.g. <code>java.lang.String[],int,boolean</code><br>\
  Possible wildcards:\
  <ul>\
  <li><code>%</code> for any primitive type.\
  <li><code>?</code> for any single character, except the package separator.\
  <li><code>*</code> for any number of any characters, except the package separator.\
  <li><code>**</code> for any number of any characters.\
  <li><code>***</code> for any type.\
  <li><code>...</code> for any number of any arguments.\
  </ul></html>

#
# Titles and labels corresponding to optimization options.
#
selectOptimizations = Select optimizations...

field  = Field
method = Method
code   = Code

class_marking_finalTip = \
  Mark classes as final, whenever possible.
class_merging_verticalTip = \
  Merge classes vertically in the class hierarchy, whenever possible.
class_merging_horizontalTip = \
  Merge classes horizontally in the class hierarchy, whenever possible.
field_removal_writeonlyTip = \
  Remove write-only fields.
field_marking_privateTip = \
  Mark fields as private, whenever possible.
field_propagation_valueTip = \
  Propagate the values of fields across methods.
method_marking_privateTip = \
  Mark methods as private, whenever possible (devirtualization).
method_marking_staticTip = \
  Mark methods as static, whenever possible (devirtualization).
method_marking_finalTip = \
  Mark methods as final, whenever possible.
method_removal_parameterTip = \
  Remove unused method parameters.
method_propagation_parameterTip = \
  Propagate the values of method parameters from method invocations to \
  the invoked methods.
method_propagation_returnvalueTip = \
  Propagate the values of method return values from methods to their \
  invocations.
method_inlining_shortTip = \
  Inline short methods.
method_inlining_uniqueTip = \
  Inline methods that are only called once.
method_inlining_tailrecursionTip = \
  Simplify tail recursion calls, whenever possible.
code_mergingTip = \
  Merge identical blocks of code by modifying branch targets.
code_simplification_variableTip = \
  Perform peephole optimizations for variable loading and storing.
code_simplification_arithmeticTip = \
  Perform peephole optimizations for arithmetic instructions.
code_simplification_castTip = \
  Perform peephole optimizations for casting operations.
code_simplification_fieldTip = \
  Perform peephole optimizations for field loading and storing.
code_simplification_branchTip = \
  Perform peephole optimizations for branch instructions.
code_simplification_stringTip = \
  Perform peephole optimizations for constant strings.
code_simplification_advancedTip = \
  Simplify code based on control flow analysis and data flow analysis.
code_removal_advancedTip = \
  Remove dead code based on control flow analysis and data flow analysis.
code_removal_simpleTip = \
  Remove dead code based on a simple control flow analysis.
code_removal_variableTip = \
  Remove unused variables from the local variable frame.
code_removal_exceptionTip = \
  Remove exceptions with empty try blocks.
code_allocation_variableTip = \
  Optimize variable allocation on the local variable frame.


#
# File selection titles.
#
selectConfigurationFile         = Select a configuration file...
saveConfigurationFile           = Save configuration...
selectUsageFile                 = Select a usage output file...
selectPrintMappingFile          = Select an output mapping file...
selectApplyMappingFile          = Select an input mapping file...
selectObfuscationDictionaryFile = Select an obfuscation dictionary...
selectSeedsFile                 = Select a seeds output file...
selectDumpFile                  = Select a class dump file...
selectStackTraceFile            = Select a stack trace file...

cantOpenConfigurationFile  = Can''t open the configuration file [{0}]
cantParseConfigurationFile = Can''t parse the configuration file [{0}]
cantSaveConfigurationFile  = Can''t save the configuration file [{0}]
cantOpenStackTraceFile     = Can''t open the stack trace file [{0}]

jarExtensions = *.jar, *.aar, *.war, *.ear, *.zip, *.apk, *.ap_ (archives and directories)
proExtension  = *.pro (ProGuard configurations)

addJars     = Add one or more jars or directories...
chooseJars  = Choose different jars or directories...
enterFilter = Optionally filter the file names contained in the selected entries.

filters       = Filters
nameFilter    = File name filter
apkNameFilter = Apk name filter
jarNameFilter = Jar name filter
aarNameFilter = Aar name filter
warNameFilter = War name filter
earNameFilter = Ear name filter
zipNameFilter = Zip name filter

outputFileTip = The optional output file.
inputFileTip  = The input file.

nameFilterTip    = A filter on plain class file names and resource file names.
apkNameFilterTip = A filter on apk file names.
jarNameFilterTip = A filter on jar file names.
aarNameFilterTip = A filter on aar file names.
warNameFilterTip = A filter on war file names.
earNameFilterTip = A filter on ear file names.
zipNameFilterTip = A filter on zip file names.

#
# Simple button texts.
#
previous   = Previous
next       = Next
browse     = Browse...
advanced   = Advanced options
basic      = Basic options
selectAll  = Select all
selectNone = Select none
ok         = Ok
cancel     = Cancel

add        = Add...
addInput   = Add input...
addOutput  = Add output...
edit       = Edit...
filter     = Filter...
remove     = Remove
moveUp     = Move up
moveDown   = Move down

moveToLibraries = Move to libraries
moveToProgram   = Move to program

addField  = Add field...
addMethod = Add method...

select = Select...

loadConfiguration = Load configuration...
viewConfiguration = View configuration
saveConfiguration = Save configuration...
loadStackTrace    = Load stack trace...
process           = Process!
reTrace           = ReTrace!

advancedTip  = Toggle between showing basic options and advanced options.

addInputTip  = Add an input jar, aar, war, ear, zip, apk, or directory.
addOutputTip = Add an output jar, aar, war, ear, zip, apk, or directory.
addTip       = Add an entry.
editTip      = Edit the selected entries.
filterTip    = Put filters on the contents of the selected entries.
removeTip    = Remove the selected entries.
moveUpTip    = Move the selected entries up in the list.
moveDownTip  = Move the selected entries down in the list.

moveToLibrariesTip = Move to selected entries to the libraries.
moveToProgramTip   = Move to selected entries to the program.

addFieldTip  = Add a field to the specification.
addMethodTip = Add a method to the specification.

loadConfigurationTip = Optionally load an initial configuration.
viewConfigurationTip = View the current configuration.
saveConfigurationTip = Save the current configuration.
loadStackTraceTip    = Load a stack trace from a file.
processTip           = Start processing, based on the current configuration.
reTraceTip           = De-obfuscate the given stack trace.

#
# Progress messages and error messages.
#
warning         = Warning
outOfMemory     = Out of memory
outOfMemoryInfo = \n\
  You should run the ProGuard GUI with a larger java heap size, \
  with a command like\
  \n\n\t\
  java -Xms128m -Xmx192m -jar proguardgui.jar {0}\
  \n\n\
  or you can try running ProGuard from the command line. \
  with a command like\
  \n\n\t\
  java -jar proguard.jar @{0}
sampleConfigurationFileName = configuration.pro
errorProcessing = Error during processing
errorReTracing  = Error during retracing
