1# ProGuard -- shrinking, optimization, and obfuscation of Java class files. 2# Copyright (c) 2002-2009 Eric Lafortune (eric@graphics.cornell.edu) 3 4# 5# Tab names. 6# 7proGuardTab = ProGuard 8inputOutputTab = Input/Output 9shrinkingTab = Shrinking 10obfuscationTab = Obfuscation 11optimizationTab = Optimization 12informationTab = Information 13processTab = Process 14reTraceTab = ReTrace 15 16# 17# Splash text. 18# 19developed = Developed by Eric Lafortune 20shrinking = Shrinking 21optimization = Optimization 22obfuscation = Obfuscation 23preverification = Preverification 24 25# 26# Panel titles. 27# 28welcome = Welcome to ProGuard, version 4.4 29options = Options 30keepAdditional = Keep additional classes and class members 31keepNamesAdditional = Keep additional class names and class member names 32assumeNoSideEffectsAdditional = Assume no side effects for additional methods 33whyAreYouKeeping = Why are you keeping 34preverificationAndTargeting = Preverification and targeting 35consistencyAndCorrectness = Consistency and correctness 36processingConsole = Processing console 37reTraceSettings = ReTrace settings 38deobfuscatedStackTrace = De-obfuscated stack trace 39 40keepAdditionalTip = \ 41 If required, keep additional classes, fields, and methods as entry points. 42keepNamesAdditionalTip = \ 43 If required, keep the names of additional classes, fields, and methods. 44assumeNoSideEffectsAdditionalTip = \ 45 <html>Optionally specify additional methods that don't have any side effects.<br>\ 46 <i>Only add entries if you know what you're doing!</i></html> 47whyAreYouKeepingTip = \ 48 Ask ProGuard why it is keeping certain classes, fields, or methods. 49 50# 51# Info texts. 52# 53proGuardInfo = \ 54 ProGuard is a free class file shrinker, optimizer, obfuscator, and preverifier.\ 55 \n\n\ 56 With this GUI, you can create, load, modify, and save ProGuard configurations. \ 57 \n\ 58 You can then process your code right away, or you can run ProGuard from the \ 59 command line using your saved configuration. \ 60 \n\n\ 61 With the ReTrace part of this GUI you can de-obfuscate your stack traces.\ 62 \n\n\ 63 ProGuard and ReTrace are written and maintained by Eric Lafortune.\ 64 \n\n\ 65 Distributed under the GNU General Public License.\ 66 \n\ 67 Copyright (c) 2002-2009. 68 69processingInfo = \ 70 You can now start processing your code, \ 71 or you can run ProGuard from the command line using your saved configuration. 72 73reTraceInfo = \ 74 If you had ProGuard write out a mapping file, \ 75 you can de-obfuscate your obfuscated stack traces with ReTrace!\ 76 \n\n\ 77 You can load an obfuscated stack trace from a file, \ 78 or you can paste it straight into the text area above. 79 80# 81# Titles and labels corresponding to common ProGuard options. 82# 83programJars = Program jars, wars, ears, zips, and directories 84libraryJars = Library jars, wars, ears, zips, and directories 85 86shrink = Shrink 87printUsage = Print usage 88 89optimize = Optimize 90allowAccessModification = Allow access modification 91mergeInterfacesAggressively = Merge interfaces aggressively 92optimizations = Optimizations 93optimizationPasses = Optimization passes 94 95obfuscate = Obfuscate 96printMapping = Print mapping 97applyMapping = Apply mapping 98obfuscationDictionary = Obfuscation dictionary 99classObfuscationDictionary = Class obfuscation dictionary 100packageObfuscationDictionary = Package obfuscation dictionary 101overloadAggressively = Overload aggressively 102useUniqueClassMemberNames = Use unique class member names 103keepPackageNames = Keep package names 104flattenPackageHierarchy = Flatten package hierarchy 105repackageClasses = Repackage classes 106useMixedCaseClassNames = Use mixed-case class names 107keepAttributes = Keep attributes 108renameSourceFileAttribute = Rename SourceFile attribute 109adaptClassStrings = Adapt class strings 110adaptResourceFileNames = Adapt resource file names 111adaptResourceFileContents = Adapt resource file contents 112 113preverify = Preverify 114microEdition = Micro Edition 115 116verbose = Verbose 117note = Note potential mistakes in the configuration 118warn = Warn about possibly erronous input 119ignoreWarnings = Ignore warnings about possibly erronous input 120skipNonPublicLibraryClasses = Skip non-public library classes 121skipNonPublicLibraryClassMembers = Skip non-public library class members 122keepDirectories = Keep directories 123forceProcessing = Force processing 124target = Target 125targets = 1.0,1.1,1.2,1.3,1.4,1.5,1.6 126printSeeds = Print seeds 127printConfiguration = Print configuration 128dump = Print class files 129 130mappingFile = Mapping file 131obfuscatedStackTrace = Obfuscated stack trace 132 133programJarsTip = \ 134 <html>The input jars (wars, ears, zips, directories), followed by<br>\ 135 their corresponding output jars (wars, ears, zips, directories).</html> 136libraryJarsTip = \ 137 <html>The library jars (wars, ears, zips, directories), on which the program jars depend.<br>\ 138 The library jars are required for processing, but they are not copied to the output.</html> 139 140shrinkTip = \ 141 Remove unused classes, fields, and methods from the output. 142printUsageTip = \ 143 Print out the list of unused classes, fields, and methods. 144 145optimizeTip = \ 146 Optimize the bytecode of the processed classes. 147allowAccessModificationTip = \ 148 Allow the optimization step to modify the access modifiers of classes, fields, and methods. 149mergeInterfacesAggressivelyTip = \ 150 <html>Allow interfaces to be merged, even if their implementations don't implement all<br>\ 151 interface methods. This is not allowed in the Java language, but it is allowed in bytecode.</html> 152optimizationsTip = \ 153 Specify the types of optimizations to be performed. 154optimizationsFilterTip = \ 155 A filter for the names of the optimizations to be performed. 156optimizationsSelectTip = \ 157 Select from the currently available optimizations... 158optimizationPassesTip = \ 159 Specify the number of optimization passes to be performed. 160 161obfuscateTip = \ 162 Obfuscate the names of the processed classes, fields, and methods. 163printMappingTip = \ 164 Print out the obfuscation mapping of original names to obfuscated names. 165applyMappingTip = \ 166 Apply the given mapping of original names to obfuscated names. 167obfuscationDictionaryTip = \ 168 Use the words in the given file for obfuscating field names and method names. 169classObfuscationDictionaryTip = \ 170 Use the words in the given file for obfuscating class names. 171packageObfuscationDictionaryTip = \ 172 Use the words in the given file for obfuscating package names. 173overloadAggressivelyTip = \ 174 <html>Allow fields and methods to get the same obfuscated names, even if only their types or<br>\ 175 return types differ. This is not allowed in the Java language, but it is allowed in bytecode.</html> 176useUniqueClassMemberNamesTip = \ 177 <html>Make sure fields and methods get the same obfuscation mapping across classes, even<br>\ 178 if they are unrelated. This is advisable if the output is to be obfuscated incrementally.</html> 179keepPackageNamesTip = \ 180 Keep the specified package names from being obfuscated. 181packageNamesTip = \ 182 <html>An optional comma-separated list of package names,<br>\ 183 e.g. <code>myapplication,mylibrary.**</code><br>\ 184 Possible wildcards:\ 185 <ul>\ 186 <li><code>?</code> for any single character, except the package separator.\ 187 <li><code>*</code> for any number of any characters, except the package separator.\ 188 <li><code>**</code> for any number of any characters.\ 189 </ul>\ 190 The negator <code>!</code> is also supported.</html> 191flattenPackageHierarchyTip = \ 192 Move all packages that are renamed into the given parent package. 193repackageClassesTip = \ 194 Move all classes that are renamed into the given package. 195packageTip = \ 196 The optional package name. 197useMixedCaseClassNamesTip = \ 198 <html>Generate mixed-case obfucated class names. This will complicate unpacking<br>\ 199 the resulting jars on case-insensitive file systems, should that be necessary.</html> 200keepAttributesTip = \ 201 Keep the specified optional class file attributes. 202attributesTip = \ 203 <html>An optional comma-separated list of class file attributes.\ 204 <ul>\ 205 <li>"Exceptions,Innerclasses, Signature" are necessary if the output is to be used as a library.\ 206 <li>"Deprecated" is optional if the output is to be used as a library.\ 207 <li>"LocalVariable*Table" can be useful for debugging.\ 208 <li>"Sourcefile,LineNumberTable" are necessary for generating stack traces.\ 209 <li>"*Annotations*" is necessary for preserving annotations.\ 210 </ul>\ 211 The wildcard <code>*</code> and the negator <code>!</code> are allowed.</html> 212renameSourceFileAttributeTip = \ 213 <html>Put the given string in the "SourceFile" attribute of the processed class files.<br>\ 214 It will appear as the file name of the classes in stack traces.</html> 215sourceFileAttributeTip = \ 216 The replacement "SourceFile" string. 217adaptClassStringsTip = \ 218 <html>Adapt string constants in the specified classes, based<br>\ 219 on the obfuscated names of corresponding classes.</html> 220adaptResourceFileNamesTip = \ 221 <html>Rename the specified resource files, based on the<br>\ 222 obfuscated names of the corresponding class files.</html> 223adaptResourceFileContentsTip = \ 224 <html>Adapt the contents of the specified resource files, based<br>\ 225 on the obfuscated names of the processed classes.</html> 226fileNameFilterTip = \ 227 <html>A filter on file names,<br>\ 228 e.g. <code>mydirectory1/**,mydirectory2/**</code><br>\ 229 Possible wildcards:\ 230 <ul>\ 231 <li><code>?</code> for any single character, except the directory separator.\ 232 <li><code>*</code> for any number of any characters, except the directory separator.\ 233 <li><code>**</code> for any number of any characters.\ 234 </ul>\ 235 The negator <code>!</code> is also supported.</html> 236 237preverifyTip = \ 238 Preverify the processed classes, for Java Micro Edition or for Java 6. 239microEditionTip = \ 240 Target Java Micro Edition. 241 242verboseTip = \ 243 Print out verbose messages while processing. 244noteTip = \ 245 Print out notes about special or unusual input. 246noteFilterTip = \ 247 A filter matching classes for which no notes should be printed. 248warnTip = \ 249 <html>Print out warnings about possibly erronous input.<br>\ 250 <i>Only unset this option if you know what you're doing!</i></html> 251warnFilterTip = \ 252 A filter matching classes for which no warnings should be printed. 253ignoreWarningsTip = \ 254 <html>Ignore any warnings about possibly erronous input.<br>\ 255 <i>Only set this option if you know what you're doing!</i></html> 256skipNonPublicLibraryClassesTip = \ 257 <html>Skip reading non-public library classes, for efficiency.<br>\ 258 You may have to unset this option if ProGuard complains about missing classes.</html> 259skipNonPublicLibraryClassMembersTip = \ 260 <html>Skip reading non-public library fields and methods, for efficiency.<br>\ 261 You may have to unset this option if ProGuard complains about missing class members.</html> 262keepDirectoriesTip = \ 263 Keep the specified directories in the output jars, wars, ears, zips, or directories. 264directoriesTip = \ 265 <html>A filter on directory names,<br>\ 266 e.g. <code>mydirectory1,mydirectory2/**</code><br>\ 267 Possible wildcards:\ 268 <ul>\ 269 <li><code>?</code> for any single character, except the directory separator.\ 270 <li><code>*</code> for any number of any characters, except the directory separator.\ 271 <li><code>**</code> for any number of any characters.\ 272 </ul>\ 273 The negator <code>!</code> is also supported.</html> 274forceProcessingTip = \ 275 Always process the input, even if the output seems up to date. 276targetTip = \ 277 Target the specified version of Java. 278printSeedsTip = \ 279 Print out the list of kept classes, fields, and methods. 280printConfigurationTip = \ 281 Print out the configuration. 282dumpTip = \ 283 Print out the internal structure of the processed class files. 284 285mappingFileTip = \ 286 The file containing the mapping of original names to obfuscated names. 287obfuscatedStackTraceTip = \ 288 A stack trace produced by previously obfuscated code. 289 290# 291# Titles and labels corresponding to ProGuard keep options. 292# 293keepTitle = Keep 294 295keep = Keep classes and class members 296keepClassMembers = Keep class members only 297keepClassesWithMembers = Keep classes and class members, if members are present 298 299allowTitle = Allow 300 301allowShrinking = Allow shrinking 302allowOptimization = Allow optimization 303allowObfuscation = Allow obfuscation 304 305keepTitleTip = Keep the specified classes and/or their fields and methods. 306 307keepTip = \ 308 <html>Keep the specified classes, fields, and methods as entry points.<br>\ 309 This is the most common option.</html> 310keepClassMembersTip = \ 311 Only keep the specified fields and methods as entry points. 312keepClassesWithMembersTip = \ 313 <html>Keep the specified classes, fields, and methods,<br>\ 314 on the condition that the fields and methods are present.</html> 315 316allowTitleTip = \ 317 <html>Optionally relax keeping the specified classes, fields, and methods.<br>\ 318 <i>These are advanced options.</i></html> 319 320allowShrinkingTip = \ 321 Remove the specified classes, fields, and methods anyway, if they are not used. 322allowOptimizationTip = \ 323 <html>Optimize the specified classes, fields, and methods as entry points anyway.<br>\ 324 <i>Only set this option if you know what you're doing!</i></html> 325allowObfuscationTip = \ 326 <html>Obfuscate the names of the specified classes, fields, and methods anyway.<br>\ 327 <i>Only set this option if you know what you're doing!</i></html> 328 329# 330# Further keep titles and labels. 331# 332specifyClasses = Specify classes and class members... 333specifyFields = Specify fields... 334specifyMethods = Specify methods... 335 336comments = Comments 337access = Access 338required = Required 339not = Not 340dontCare = Don't care 341annotation = Annotation 342class = Class 343extendsImplementsAnnotation = Extends/implements class with annotation 344extendsImplementsClass = Extends/implements class 345classMembers = Class members 346 347extensionsOf = Extensions of 348specificationNumber = Specification # 349 350fieldType = Field type 351returnType = Return type 352name = Name 353argumentTypes = Argument types 354 355commentsTip = \ 356 Optionally add a comment for this option in the configuration file. 357accessTip = \ 358 <html>Optionally place constraints on the access modifiers of this element.<br>\ 359 E.g. only match public elements.</html> 360requiredTip = \ 361 The access modifier has to be set. 362notTip = \ 363 The access modifier must not be set. 364dontCareTip = \ 365 The access modifier is irrelevant. 366annotationTip = \ 367 <html>Optionally require the given annotation to be present on this element.<br>\ 368 E.g. only match elements that have an annotation <code>myPackage.MyAnnotation</code>.<br>\ 369 <i>This is an advanced option.</i></html> 370classTip = \ 371 The name of the class or interface. 372extendsImplementsAnnotationTip = \ 373 <html>Optionally require the given annotation to be present on the<br>\ 374 extended or implemented class or interface.<br>\ 375 E.g. only match classes that extend a class that has an annotation<br>\ 376 <code>myPackage.MyAnnotation</code>.<br>\ 377 <i>This is an advanced option.</i></html> 378extendsImplementsClassTip = \ 379 <html>Optionally require the class to implement or extend the given class or interface.<br>\ 380 E.g. only match classes that implement an interface <code>myPackage.MyInterface</code>.</html> 381classMembersTip = \ 382 <html>Optionally keep fields and methods as entry points in the matching class or classes.<br>\ 383 E.g. keep all public '<code>get*</code>' methods as entry points.</html> 384 385fieldTypeTip = The field type. 386returnTypeTip = The method return type, if any. 387nameTip = The name. 388argumentTypesTip = The method argument types, if any. 389 390classNameTip = \ 391 <html>The class name, e.g. <code>myPackage.MyClass</code><br>\ 392 Possible wildcards:\ 393 <ul>\ 394 <li><code>?</code> for any single character, except the package separator.\ 395 <li><code>*</code> for any number of any characters, except the package separator.\ 396 <li><code>**</code> for any number of any characters.\ 397 </ul></html> 398classNamesTip = \ 399 <html>A regular expression to further constrain the class names,<br>\ 400 e.g. <code>myPackage1.MyClass,myPackage2.**</code><br>\ 401 Possible wildcards:\ 402 <ul>\ 403 <li><code>?</code> for any single character, except the package separator.\ 404 <li><code>*</code> for any number of any characters, except the package separator.\ 405 <li><code>**</code> for any number of any characters.\ 406 </ul>\ 407 The negator <code>!</code> is also supported.</html> 408typeTip = \ 409 <html>The type, e.g. <code>int</code>, or <code>java.lang.String[]</code><br>\ 410 Possible wildcards:\ 411 <ul>\ 412 <li><code>%</code> for any primitive type.\ 413 <li><code>?</code> for any single character, except the package separator.\ 414 <li><code>*</code> for any number of any characters, except the package separator.\ 415 <li><code>**</code> for any number of any characters.\ 416 <li><code>***</code> (or empty) for any type.\ 417 </ul></html> 418fieldNameTip = \ 419 <html>The field name, e.g. <code>myField</code><br>\ 420 Possible wildcards:\ 421 <ul>\ 422 <li><code>?</code> for any single character.\ 423 <li><code>*</code> for any number of any characters.\ 424 </ul></html> 425methodNameTip = \ 426 <html>The method name, e.g. <code>myMethod</code><br>\ 427 Possible wildcards:\ 428 <ul>\ 429 <li><code>?</code> for any single character.\ 430 <li><code>*</code> for any number of any characters.\ 431 </ul></html> 432argumentTypes2Tip = \ 433 <html>The comma-separated list of argument types,<br>\ 434 e.g. <code>java.lang.String[],int,boolean</code><br>\ 435 Possible wildcards:\ 436 <ul>\ 437 <li><code>%</code> for any primitive type.\ 438 <li><code>?</code> for any single character, except the package separator.\ 439 <li><code>*</code> for any number of any characters, except the package separator.\ 440 <li><code>**</code> for any number of any characters.\ 441 <li><code>***</code> for any type.\ 442 <li><code>...</code> for any number of any arguments.\ 443 </ul></html> 444 445# 446# Titles and labels corresponding to optimization options. 447# 448selectOptimizations = Select optimizations... 449 450field = Field 451method = Method 452code = Code 453 454class_marking_finalTip = \ 455 Mark classes as final, whenever possible. 456class_merging_verticalTip = \ 457 Merge classes vertically in the class hierarchy, whenever possible. 458class_merging_horizontalTip = \ 459 Merge classes horizontally in the class hierarchy, whenever possible. 460field_removal_writeonlyTip = \ 461 Remove write-only fields. 462field_marking_privateTip = \ 463 Mark fields as private, whenever possible. 464field_propagation_valueTip = \ 465 Propagate the values of fields across methods. 466method_marking_privateTip = \ 467 Mark methods as private, whenever possible (devirtualization). 468method_marking_staticTip = \ 469 Mark methods as static, whenever possible (devirtualization). 470method_marking_finalTip = \ 471 Mark methods as final, whenever possible. 472method_removal_parameterTip = \ 473 Remove unused method parameters. 474method_propagation_parameterTip = \ 475 Propagate the values of method parameters from method invocations to \ 476 the invoked methods. 477method_propagation_returnvalueTip = \ 478 Propagate the values of method return values from methods to their \ 479 invocations. 480method_inlining_shortTip = \ 481 Inline short methods. 482method_inlining_uniqueTip = \ 483 Inline methods that are only called once. 484method_inlining_tailrecursionTip = \ 485 Simplify tail recursion calls, whenever possible. 486code_mergingTip = \ 487 Merge identical blocks of code by modifying branch targets. 488code_simplification_variableTip = \ 489 Perform peephole optimizations for variable loading and storing. 490code_simplification_arithmeticTip = \ 491 Perform peephole optimizations for arithmetic instructions. 492code_simplification_castTip = \ 493 Perform peephole optimizations for casting operations. 494code_simplification_fieldTip = \ 495 Perform peephole optimizations for field loading and storing. 496code_simplification_branchTip = \ 497 Perform peephole optimizations for branch instructions. 498code_simplification_advancedTip = \ 499 Simplify code based on control flow analysis and data flow analysis. 500code_removal_advancedTip = \ 501 Remove dead code based on control flow analysis and data flow analysis. 502code_removal_simpleTip = \ 503 Remove dead code based on a simple control flow analysis. 504code_removal_variableTip = \ 505 Remove unused variables from the local variable frame. 506code_removal_exceptionTip = \ 507 Remove exceptions with empty catch blocks. 508code_allocation_variableTip = \ 509 Optimize variable allocation on the local variable frame. 510 511 512# 513# File selection titles. 514# 515selectConfigurationFile = Select a configuration file... 516saveConfigurationFile = Save configuration... 517selectUsageFile = Select a usage output file... 518selectPrintMappingFile = Select an output mapping file... 519selectApplyMappingFile = Select an input mapping file... 520selectObfuscationDictionaryFile = Select an obfuscation dictionary... 521selectSeedsFile = Select a seeds output file... 522selectDumpFile = Select a class dump file... 523selectStackTraceFile = Select a stack trace file... 524 525cantOpenConfigurationFile = Can''t open the configuration file [{0}] 526cantParseConfigurationFile = Can''t parse the configuration file [{0}] 527cantSaveConfigurationFile = Can''t save the configuration file [{0}] 528cantOpenStackTraceFile = Can''t open the stack trace file [{0}] 529 530jarWarEarZipExtensions = *.jar, *.war, *.ear, *.zip (archives and directories) 531proExtension = *.pro (ProGuard configurations) 532 533addJars = Add one or more jars or directories... 534chooseJars = Choose different jars or directories... 535enterFilter = Optionally filter the file names contained in the selected entries. 536 537filters = Filters 538nameFilter = File name filter 539jarNameFilter = Jar name filter 540warNameFilter = War name filter 541earNameFilter = Ear name filter 542zipNameFilter = Zip name filter 543 544outputFileTip = The optional output file. 545inputFileTip = The input file. 546 547nameFilterTip = A filter on plain class file names and resource file names. 548jarNameFilterTip = A filter on jar file names. 549warNameFilterTip = A filter on war file names. 550earNameFilterTip = A filter on ear file names. 551zipNameFilterTip = A filter on zip file names. 552 553# 554# Simple button texts. 555# 556previous = Previous 557next = Next 558browse = Browse... 559advanced = Advanced options 560basic = Basic options 561selectAll = Select all 562selectNone = Select none 563ok = Ok 564cancel = Cancel 565 566add = Add... 567addInput = Add input... 568addOutput = Add output... 569edit = Edit... 570filter = Filter... 571remove = Remove 572moveUp = Move up 573moveDown = Move down 574 575moveToLibraries = Move to libraries 576moveToProgram = Move to program 577 578addField = Add field... 579addMethod = Add method... 580 581select = Select... 582 583loadConfiguration = Load configuration... 584viewConfiguration = View configuration 585saveConfiguration = Save configuration... 586loadStackTrace = Load stack trace... 587process = Process! 588reTrace = ReTrace! 589 590advancedTip = Toggle between showing basic options and advanced options. 591 592addInputTip = Add an input jar, war, ear, zip, or directory. 593addOutputTip = Add an output jar, war, ear, zip, or directory. 594addTip = Add an entry. 595editTip = Edit the selected entries. 596filterTip = Put filters on the contents of the selected entries. 597removeTip = Remove the selected entries. 598moveUpTip = Move the selected entries up in the list. 599moveDownTip = Move the selected entries down in the list. 600 601moveToLibrariesTip = Move to selected entries to the libraries. 602moveToProgramTip = Move to selected entries to the program. 603 604addFieldTip = Add a field to the specification. 605addMethodTip = Add a method to the specification. 606 607loadConfigurationTip = Optionally load an initial configuration. 608viewConfigurationTip = View the current configuration. 609saveConfigurationTip = Save the current configuration. 610loadStackTraceTip = Load a stack trace from a file. 611processTip = Start processing, based on the current configuration. 612reTraceTip = De-obfuscate the given stack trace. 613 614# 615# Progress messages and error messages. 616# 617warning = Warning 618outOfMemory = Out of memory 619outOfMemoryInfo = \n\ 620 You should run the ProGuard GUI with a larger java heap size, \ 621 with a command like\ 622 \n\n\t\ 623 java -Xms128m -Xmx192m -jar proguardgui.jar {0}\ 624 \n\n\ 625 or you can try running ProGuard from the command line. \ 626 with a command like\ 627 \n\n\t\ 628 java -jar proguard.jar @{0} 629sampleConfigurationFileName = configuration.pro 630errorProcessing = Error during processing 631errorReTracing = Error during retracing 632