Clean your Windows computer
AppCleaner 3 Freeware removes obsolete files on your computer including temporary files, history, cookies, internet logs and many more from 2000 software programs - more than any other cleaner. Frees up disk space and optimizes overall performance. Give it a try!
It optimizes computer performance and is easy to use on a daily basis.
Adding a new language to AppCleaner

You can easily add new languages to AppCleaner. All text that appears in the user interface is defined in UTF-8 encoded text files. A number of these configuration files are already built into AppCleaner. You can export these files by calling Cleaner.Win.exe with the -x parameter. This will dump the built-in language files into the current working directory.

To add another language to AppCleaner, add a subfolder called Lang to the AppCleaner folder and copy the embedded en-us.txt file you dumped using the -x command line parameter there. Rename this file to xx.txt where xx is the ISO 639-1 language identifier for your target language and start replacing the values on the right hand side of each line with the translation into your target language. This is what the text file looks like:

LanguageName: "English"
Analyze: "&Analyze"
Clean: "&Clean"
OK: "OK"
Cancel: "Cancel"
Back: "Back"

Each line starts with a keyword separated from the text value by a colon. The text value is enclosed in double quotes and can span multiple lines. If the text value includes a double quote character, it must be escaped with two double quote characters. Do not translate the keywords.

The key "LanguageName" defines the name of the language as it shown in the dropdown on the options page. Please stick to the convention "English Language Name (Native Language Name)", e.g. "German (Deutsch)". AppCleaner automatically picks up all *.txt files in the Lang folder, so you can immediately check out what your language file looks like in AppCleaner.

Some strings contain an ampersand character. This is to define the keyboard shortcut character for the corresponding command.

Some values contain formatting strings like {0} or {1}. These are replaced at runtime by a computed value, such as the number of items or a file name, e.g. "{0} items" might be shown as "14 items".

Comments start with a number sign character (#) and extend to the end of the line.

In addition to the strings in the en-us.txt you might also want to translate some of the strings from the Tasks.conf described below. They contain the text in the tabs ("Cleaner", "Tools", "Options", "Apps", etc.) and all the descriptions next to the check boxes in the left pane. In a nutshell, you can take any string that's used as a key in Tasks.conf and put it in your translation file (e.g. "Options: Optionen" to change the title of the Options tab to the German equivalent). Take a look at the de.txt file which has some additional translations.

If you have created a language file, please send it to us at support at and we'll consider it for inclusion in the next version of AppCleaner. Thanks.

Help us add new programs to AppCleaner

AppCleaner allows you to add new programs and override the ones that are built in to AppCleaner. The AppCleaner cleaning process is driven by a configuration file. You can take a look at the built-in configuration file by calling Cleaner.Win.exe with the -x command line parameter. This will produce a file called Tasks.conf in the current working directory.

If you modify this file and place it in the same folder as Cleaner.Win.Exe, it will override the built-in cleaning definitions. You can add new definitions to the built-in definitions by placing a file called Tasks.add.conf in the same folder as Cleaner.Win.exe.

AppCleaner builds upon three hierarchically organized concepts (top-down):

  1. Task Areas: These are represented by the tabs such as "Apps", "Browsers", and "Registry".
  2. Task Groups: Within a task area, you have a number of groups such as the "Multimedia" group within the "Apps" area.
  3. Tasks: These are the low-level building blocks that contain the definitions for a single program, e.g. "Paint.NET".

The .conf file format

The .conf file format is a text format that contains UTF-8 encoded text. The format is similar to JSON. Here's an example:

Apps: {
    Applications: {
        .NET Reflector: {
            DetectPattern: "%LocalAppData%\Red Gate\.NET Reflector 6\Reflector.cfg"
            Default: false
            FilePattern: [
                "%LocalAppData%\Red Gate\.NET Reflector 6\Cache\**\*"
                "%LocalAppData%\Red Gate\.NET Reflector 6\Reflector.cfg"

The file format is made up of a small number of basic types:

  • Object: A number of key value pairs within braces. The keys are strings that may omit the quotes. If the key contains a colon, the quotes must be present. Individual key value pairs are separated by white space.
  • Array: A number of values between brackets. Individual values are separated by white space.
  • Boolean: true and false
  • String: A number of characters between double quotes. If the quote character is contained within a string, it must be encoded as two quotes in a row: """Nice"", he said."

In the example, "Apps" is the name of the task area, "Applications" is the task group, and ".NET Reflector" is the name of a task. The task object contains the definition of the task. The following keys can be used to define a task:

  • DetectPattern: This is evaluated at startup to determine whether this taks is shown in the GUI or not. This test should yield a result if and only if the program is installed on the computer as there is no point in showing tasks for programs that are not installed on the computer. The value contains a file pattern that identifies a file (or files) that, when present, indicate that the program is installed. The pattern can be a glob. Also, it may contain known folder ids such as %LocalAppData%. To avoid repeating the same pattern on all tasks within the same task group, you can set this key at the task group level. It will then be inherited by all tasks in the group.
  • Detect: Like DetectPattern, only it identifies a registry key or value that must exist when the program is installed. The registry key and value are separated by the pipe symbol (|). Like DetectPattern, this key can also appear at the task group level.
  • DetectOS: Shows the task only if the operating system has the specified version. It's a string value that includes the version optionally prefixed by a boolean operator such as ">". If no operator is given, it defaults to ">=". For example, "6.0" indicates Windows Vista or higher, while "<6.0" indicates Windows XP or lower. More here: Windows version numbers
  • FilePattern: This can be an array of string values or a single string value. It determines the files that should be deleted. This can contain the same patterns as DetectPattern.
  • IgnoreFiles: Glob that represents the files to be ignored. This is useful in a case where you want to delete all files from a folder but keep just a few files. Can be a single value or an array.
  • RegKey: This can be an array or a single value. It determines the registry keys and values that should be deleted. It does not support patterns. Registry key and value are separated by the pipe symbol.
  • Default: true or false (false if not given). Determines whether the task is checked by default.
  • Regex: This allows you to replace or delete content from files. The value is an object that contains 3 key value pairs:
    • File: A glob that represents the files whose contents you want to modify. Can be a single value or an array.
    • Pattern: The regular expression patterns to search for in the files. The regular expression dialect is that implemented by the .NET Framework Regex class. This can a single value or an array.
    • Replacement: The replacements for the matches found. If this is an array each replacement is carried out for the match corresponding to the pattern at the same position in the array, i.e. replacement 1 is for pattern 1, replacement 2 is for pattern 2 etc. The replacement strings can contain literal characters (specifically the empty string to delete content) or substitutions.
  • SQLite: This allows you to perform queries in SQLite databases. The value is an object with 2 key value pairs:
    • db: A glob that represents the databases. Can be a single value or an array.
    • sql: The SQL query or queries.

If you have created a definition for a public application and want to share it, please send it to us at support at and we'll consider it for inclusion in the next version of AppCleaner. Thanks.

Latest updates Bookmark this page Twitter Facebook