"It scans and cleans very thoroughly compared with other cleaners. I now only use AppCleaner!" — Christoph V.
Clean your Windows computer with this Freeware.
Contributing to AppCleaner
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.
Exporting language files
You can export the built-in language files by calling Cleaner.Win.exe with the -x parameter. This will dump the built-in language files into the current working directory.
Creating a new language file
To add another language to AppCleaner:
- Add a subfolder called
Langto the AppCleaner folder - Copy the embedded
en-us.txtfile you dumped using the-xcommand line parameter - Rename this file to
xx.txtwherexxis the ISO 639-1 language identifier for your target language - Replace 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" ...
File format rules
- Each line starts with a keyword separated from the text value by a colon
- Text values are 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
- Comments start with a number sign character (
#) and extend to the end of the line
Special formatting
- LanguageName: Defines the name of the language as shown in the dropdown on the options page. Please use the convention "English Language Name (Native Language Name)", e.g. "German (Deutsch)"
- Ampersand (&): Some strings contain an ampersand character to define the keyboard shortcut character for the corresponding command
- Placeholders: Some values contain formatting strings like
{0}or{1}. These are replaced at runtime by computed values, such as the number of items or a file name. For example, "{0} items" might be shown as "14 items"
Advanced translations
In addition to the strings in en-us.txt, you might also want to translate some of the strings from Tasks.conf (described below). They contain the text in the tabs ("Cleaner", "Tools", "Options", "Apps", etc.) and all the descriptions next to the checkboxes in the left pane.
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 for examples of additional translations.
AppCleaner automatically picks up all *.txt files in the Lang folder, so you can immediately check out what your language file looks like.
If you have created a language file, please send it to us at support@updatestar.com 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. The cleaning process is driven by a configuration file.
Accessing the configuration file
You can view 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.
- To override the built-in definitions: modify
Tasks.confand place it in the same folder asCleaner.Win.exe - To add to the built-in definitions: create a file called
Tasks.add.confin the same folder asCleaner.Win.exe
Configuration hierarchy
AppCleaner builds upon three hierarchically organized concepts (top-down):
- Task Areas: Represented by the tabs such as "Apps", "Browsers", and "Registry"
- Task Groups: Within a task area, you have a number of groups such as the "Multimedia" group within the "Apps" area
- Tasks: 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 contains UTF-8 encoded text 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"
]
}
}
}
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:
trueandfalse - 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
Task definition keys
In the example above, "Apps" is the task area, "Applications" is the task group, and ".NET Reflector" is the task name. The following keys can be used to define a task:
- DetectPattern
- Evaluated at startup to determine whether this task is shown in the GUI. This test should yield a result if and only if the program is installed on the computer. The value contains a file pattern that identifies files that, when present, indicate that the program is installed. The pattern can be a glob and may contain known folder IDs such as
%LocalAppData%. Can be set at the task group level to avoid repetition. - Detect
- Like DetectPattern, but 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 (
|). 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. - FilePattern
- Can be an array of string values or a single string value. Determines the files that should be deleted. This can contain the same patterns as DetectPattern.
- IgnoreFiles
- Glob pattern representing the files to be ignored. This is useful when you want to delete all files from a folder but keep just a few files. Can be a single value or an array.
- RegKey
- Can be an array or a single value. Determines the registry keys and values that should be deleted. Does not support patterns. Registry key and value are separated by the pipe symbol.
- Default
trueorfalse(defaults tofalseif not given). Determines whether the task is checked by default.- Regex
- Allows you to replace or delete content from files. The value is an object that contains 3 key-value pairs:
File,Pattern,Replacement. - SQLite
- Allows you to perform queries in SQLite databases. The value is an object with 2 key-value pairs:
dbandsql.
If you have created a definition for a public application and want to share it, please send it to us at support@updatestar.com and we'll consider it for inclusion in the next version of AppCleaner. Thanks!