├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── dependencies └── NSIS │ ├── nsis-2.46.5-Unicode-setup.exe │ └── nsis-2.46.5-Unicode-src.zip ├── dist2 ├── conf │ ├── backup │ │ ├── readme.txt │ │ ├── tikione-steam-cleaner_config.ini │ │ ├── tikione-steam-cleaner_custom-folders.ini │ │ ├── tikione-steam-cleaner_log4j.properties │ │ ├── tikione-steam-cleaner_patterns.ini │ │ └── tikione-steam-cleaner_unchecked-items.ini │ ├── i18n │ │ ├── de.ini │ │ ├── en.ini │ │ ├── encoding.ini │ │ ├── es.ini │ │ ├── flags │ │ │ ├── de.png │ │ │ ├── en.png │ │ │ ├── es.png │ │ │ ├── fi.png │ │ │ ├── fr.png │ │ │ ├── hu.png │ │ │ ├── it.png │ │ │ ├── nl.png │ │ │ ├── pl.png │ │ │ ├── pt.png │ │ │ ├── ru.png │ │ │ ├── ua.png │ │ │ ├── where to find additional flag icons.txt │ │ │ ├── zh-cn.png │ │ │ └── zh-hk.png │ │ ├── fr.ini │ │ ├── hu.ini │ │ ├── it.ini │ │ ├── nl.ini │ │ ├── pl.ini │ │ ├── pt.ini │ │ ├── ru.ini │ │ ├── ua.ini │ │ ├── zh-cn.ini │ │ └── zh-hk.ini │ └── tikione-steam-cleaner_dangerous-items.ini ├── license │ ├── LICENSE-commons-io.txt │ ├── LICENSE-log4j.txt │ ├── LICENSE-tikione-ini.txt │ └── LICENSE-tikione-steam-cleaner.txt ├── news.txt ├── readme.txt ├── tikione-steam-cleaner-NoJRE.nsi ├── tikione-steam-cleaner-portable-debug.bat ├── tikione-steam-cleaner-portable.bat ├── tikione-steam-cleaner.bat ├── tikione-steam-cleaner.ico ├── tikione-steam-cleaner.nsi └── tikione-steam-cleaner.png ├── misc ├── logo_apache.png ├── logo_intellij.png ├── logo_java.png ├── logo_maven.png └── logo_netbeans.png ├── pom.xml ├── src └── main │ ├── java │ └── fr │ │ └── tikione │ │ ├── ini │ │ ├── Config.java │ │ ├── InfinitiveLoopException.java │ │ ├── Ini.java │ │ ├── package-info.java │ │ └── util │ │ │ ├── AbstractLineReader.java │ │ │ ├── FileHelper.java │ │ │ ├── IniHelper.java │ │ │ ├── InputstreamLineReader.java │ │ │ ├── MapHelper.java │ │ │ ├── StringHelper.java │ │ │ └── package-info.java │ │ └── steam │ │ └── cleaner │ │ ├── Main.java │ │ ├── Version.java │ │ ├── gui │ │ └── dialog │ │ │ ├── JDialogAbout.form │ │ │ ├── JDialogAbout.java │ │ │ ├── JDialogCheckForUpdates.form │ │ │ ├── JDialogCheckForUpdates.java │ │ │ ├── JDialogDeletionDirect.form │ │ │ ├── JDialogDeletionDirect.java │ │ │ ├── JDialogOptionsTabs.form │ │ │ ├── JDialogOptionsTabs.java │ │ │ ├── JFrameMain.form │ │ │ └── JFrameMain.java │ │ └── util │ │ ├── CountryLanguage.java │ │ ├── FileComparator.java │ │ ├── FileUtils.java │ │ ├── GraphicsUtils.java │ │ ├── Log.java │ │ ├── Redist.java │ │ ├── RedistTableModel.java │ │ ├── Translation.java │ │ ├── UpdateManager.java │ │ └── conf │ │ ├── Config.java │ │ ├── CustomFolders.java │ │ ├── DangerousItems.java │ │ ├── I18nEncoding.java │ │ ├── Patterns.java │ │ ├── RemotePatterns.java │ │ └── UncheckedItems.java │ └── resources │ ├── fr.tikione.ini.properties │ ├── fr │ └── tikione │ │ └── steam │ │ └── cleaner │ │ └── gui │ │ ├── icons │ │ ├── famfamfam_btn_about.png │ │ ├── famfamfam_btn_add_folder.png │ │ ├── famfamfam_btn_clean.png │ │ ├── famfamfam_btn_del_folder.png │ │ ├── famfamfam_btn_help.png │ │ ├── famfamfam_btn_options.png │ │ ├── famfamfam_btn_search.png │ │ ├── famfamfam_btn_update.png │ │ ├── famfamfam_stop_search.png │ │ ├── patreon_text.png │ │ ├── paypal_donate_btn.png │ │ ├── social_facebook.png │ │ ├── social_github.png │ │ ├── social_googleplus.png │ │ ├── social_reddit.png │ │ ├── social_twitter.png │ │ ├── tikione-steam-cleaner-icon-small.png │ │ └── tikione-steam-cleaner-icon.png │ │ └── tikione-steam-cleaner.png │ └── version.properties ├── tikione-steam-cleaner-banner.png └── uc ├── README.md ├── latest_version.txt ├── redist_patterns_base.ini └── redist_patterns_xp.ini /.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /dist/ 3 | /dist2/.tikione/ 4 | /dist2/lib/ 5 | /dist2/tikione-steam-cleaner.jar 6 | nbproject/private/private.xml 7 | nbproject/private/config.properties 8 | nbproject/private/private.properties 9 | /target/ 10 | nbactions.xml 11 | nb-configuration.xml 12 | /.idea/ 13 | *.iml -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | matrix: 2 | include: 3 | - os: linux 4 | jdk: openjdk8 5 | - os: linux 6 | jdk: openjdk11 7 | - os: linux 8 | jdk: openjdk13 9 | 10 | allow_failures: 11 | - jdk: openjdk13 12 | 13 | language: java 14 | 15 | sudo: false # faster builds 16 | 17 | script: "mvn clean package" 18 | 19 | git: 20 | depth: 3 21 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2017 Jonathan Lermitage 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | :fire: Due to a lack of free time and interest, this project is over. Feel free to start a fork. 2 | 3 |

4 | TikiOne Steam Cleaner 5 |

6 |

7 | 8 | 9 | 10 | 11 | 12 | Code Quality: Java 13 | Total Alerts 14 |

15 | 16 | :cat: **To fix font rendering on hdpi screens, please try JRE11 (Java 11 JVM), it seems to work.** See [v3.0.7-jre11.0.1.13 pre-release](https://github.com/jonathanlermitage/tikione-steam-cleaner/releases/tag/v3.0.7-jre11.0.1.13). 17 | 18 | _The best companion of Steam users - [Download latest version **here**](https://github.com/jonathanlermitage/tikione-steam-cleaner/releases)_ 19 | 20 | Tikione Steam Cleaner is an open source and free software written in Java 8 and helps you to find and remove all games's redistribuable packages downloaded by **Steam** (http://store.steampowered.com). For MS Windows only. 21 | 22 | **GOG** (GalaxyClient) and Electronic Arts **Origin** are supported. 23 | 24 | ![Screenshot](https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/master/tikione-steam-cleaner-banner.png) 25 | 26 | ## Download installer or ZIP package 27 | 28 | TikiOne Steam Cleaner installers and ZIP packages are hosted on [GitHub releases](https://github.com/jonathanlermitage/tikione-steam-cleaner/releases). 29 | 30 | ## Build, test and package 31 | 32 | *(Saturday, April 16, 2016 Warning: I just migrated from Ant to Maven build system)* 33 | 34 | TikiOne Steam Cleaner is currently built with [NetBeans](http://netbeans.org), Maven and the latest version of Oracle JDK8. 35 | 36 | To build the project: 37 | 38 | * load the project with NetBeans and a Java 8 compatible JDK (I use the latest version of NetBeans and Oracle JDK8) 39 | * set the working directory to the "dist2" folder. It contains additional configuration files used by base application. Also, the build output targets this directory. 40 | 41 | You can now build and run the project. 42 | 43 | The packaged application is in the "dist2" folder. 44 | 45 | To bundle a JVM (version 8 or better), copy it as a "jre" subfolder in the "dist2" directory and launch the NSIS script: it will package TikiOne steam Cleaner with the provided JVM into an EXE installer based on NSIS-Unicode (Nullsoft Scriptable Install System, Unicode version: I use version 2.46-5 from [Google Code](http://code.google.com/p/unsis/downloads/list)). 46 | Nota: since Google Code is shutting down, I have uploaded [latest NSIS version here](https://github.com/jonathanlermitage/tikione-steam-cleaner/tree/master/dependencies/NSIS). 47 | 48 | ## Author 49 | * Jonathan Lermitage () 50 | 51 | ## Contributors 52 | * Dmitry Bolotov (Дмитрий Болотов): Russian and Ukrainian translations 53 | * Boris Klein: German translation 54 | * Ulli Kunz: German translation 55 | * Hauwertlhaufn: German translation 56 | * Zsolt Brechler: Hungarian translation 57 | * Piotr Swat: Polish translation 58 | * Pedro Henrique Viegas Diniz: Portuguese translation 59 | * "[poutros](https://github.com/poutros)": Portuguese translation 60 | * "ZoSH": Spanish translation 61 | * "wbsdty331": Simplified Chinese translation 62 | * "[tsk12](https://github.com/tsk12)": Traditional Chinese translation 63 | * "[tskonetwo](https://github.com/tskonetwo)": Traditional Chinese translation 64 | * Davide Crucitti: Italian translation 65 | * "[xDarkWolf](https://github.com/xDarkWolf)": Italian translation 66 | * "[gizmo3399](https://github.com/gizmo3399)": Dutch translation 67 | * Petr Kudlička: redist detection improvements 68 | * Brian Huqueriza: redist detection improvements 69 | * "snowman": redist detection improvements, GOG and Origin support 70 | * "[voltagex](https://github.com/voltagex)": Steam and GOG protection improvements 71 | * "[mariosumd](https://github.com/mariosumd)": Steam and GOG protection improvements 72 | * Members of the [CanardPC forum](http://forum.canardpc.com), for their support and cheerfulness 73 | 74 | ## History 75 | 76 | I'm working on this software since Janurary 2012. Here is the full [changelog](https://github.com/jonathanlermitage/tikione-steam-cleaner/blob/master/CHANGELOG.md). 77 | 78 | ## License 79 | 80 | MIT License. In other words, you can do what you want: this project is entirely OpenSource, Free and Gratis. 81 | 82 | ## Alternative 83 | 84 | Andrew Sampson is the developper of an excellent alternative based on Microsoft *.NET* technology. Check his repository: [Codeusa/SteamCleaner](https://github.com/Codeusa/SteamCleaner). 85 | He is also the author of the famous *Borderless Gaming* software: [Codeusa/Borderless-Gaming](https://github.com/Codeusa/Borderless-Gaming). 86 | 87 | ## Security 88 | 89 | You may think that *Java* is not secure. I won't blame you, but please keep in mind that if the *Java _plugin_* (which is dead now) was a giant security hole, the *Java _VM_* (that runs TikiOne Steam Cleaner) is secure and is used by many major companies to run servers (for Google, Amazon...), desktop applications (like JetBrains IDEs), TVs, IoT, Android smartphones, etc. In other words, Java is everywhere and it works fine ;-) 90 | 91 | ## Tools 92 | 93 | I maintain TikiOne Steam Cleaner thanks to these products: 94 | 95 | |Apache libraries (Apache Log4j and Apache Commons IO)| 96 | |:--| 97 | |[![Apache](https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/master/misc/logo_apache.png)](https://www.apache.org)| 98 | 99 | |Apache Maven build tool| 100 | |:--| 101 | |[![Maven](https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/master/misc/logo_maven.png)](https://maven.apache.org)| 102 | 103 | |Oracle JRE and JDK| 104 | |:--| 105 | |[![JDK](https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/master/misc/logo_java.png)](http://www.oracle.com/technetwork/java/javase/downloads/index.html)| 106 | 107 | |Currently developed with Oracle NetBeans IDE| 108 | |:--| 109 | |[![NetBeans](https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/master/misc/logo_netbeans.png)](https://netbeans.org)| 110 | -------------------------------------------------------------------------------- /dependencies/NSIS/nsis-2.46.5-Unicode-setup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dependencies/NSIS/nsis-2.46.5-Unicode-setup.exe -------------------------------------------------------------------------------- /dependencies/NSIS/nsis-2.46.5-Unicode-src.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dependencies/NSIS/nsis-2.46.5-Unicode-src.zip -------------------------------------------------------------------------------- /dist2/conf/backup/readme.txt: -------------------------------------------------------------------------------- 1 | Here are the original versions of user configuration files. 2 | 3 | Your actual configuration files are stored in the "%USERPROFILE%/.tikione/" folder. 4 | 5 | To reset configuration, simply quit the program, delete the "%USERPROFILE%/.tikione/" folder and restart 6 | the program : the original versions will be automatically copied to the "%USERPROFILE%/.tikione/" folder. 7 | -------------------------------------------------------------------------------- /dist2/conf/backup/tikione-steam-cleaner_config.ini: -------------------------------------------------------------------------------- 1 | [STEAM_FOLDERS] 2 | possibleSteamPaths={drive_letter}Program Files (x86)/Steam/;\ 3 | {drive_letter}Program Files/Steam/;\ 4 | {drive_letter}Steam/ 5 | latestSteamPath= 6 | maxDepth=6 7 | [LANG] 8 | selected= 9 | [UPDATE_CENTER] 10 | latestVersionUrl=http://steamcleaner.tikione.fr/steamcleaner_latestversion.txt 11 | [MAIN_WINDOW_UI] 12 | latestLength=785 13 | latestHeight=470 14 | state=0 15 | [MISC] 16 | saveLogToFile=true 17 | debug=true 18 | checkForUpdatesAtStartup=true 19 | -------------------------------------------------------------------------------- /dist2/conf/backup/tikione-steam-cleaner_custom-folders.ini: -------------------------------------------------------------------------------- 1 | [CUSTOM_FOLDERS] 2 | itemList= 3 | -------------------------------------------------------------------------------- /dist2/conf/backup/tikione-steam-cleaner_log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=ERROR, console 2 | 3 | log4j.logger.fr.tikione.steam.cleaner.log.info=INFO, messages 4 | 5 | log4j.appender.messages=org.apache.log4j.RollingFileAppender 6 | log4j.appender.messages.Append=true 7 | log4j.appender.messages.File=log/messages.log 8 | log4j.appender.messages.MaxFileSize=50KB 9 | log4j.appender.messages.MaxBackupIndex=1 10 | log4j.appender.messages.layout=org.apache.log4j.PatternLayout 11 | log4j.appender.messages.layout.ConversionPattern=%d{dd/MM/yy HH:mm:ss} %-5p %m%n 12 | 13 | log4j.appender.console=org.apache.log4j.ConsoleAppender 14 | log4j.appender.console.layout=org.apache.log4j.PatternLayout 15 | log4j.appender.console.layout.ConversionPattern=%d{dd/MM/yy HH:mm:ss} %-5p %m%n 16 | -------------------------------------------------------------------------------- /dist2/conf/backup/tikione-steam-cleaner_patterns.ini: -------------------------------------------------------------------------------- 1 | [REDISTRIBUTABLE_PACKAGES_PATTERNS] 2 | redistFilePatterns="^gfwlivesetup\.exe$"MS Games For Windows Live"\ 3 | "^(vcredist){1}.*(\.exe)$"MS Visual C++ Redist"\ 4 | "^(physx){1}.+(systemsoftware.exe){1}$"NVidia PhysX"\ 5 | "^(arcadeinstallfull){1}.*(\.exe)$"GameSpy Arcade"\ 6 | "^gamespyinstaller220std\.exe$"GameSpy Arcade"\ 7 | "^(xna){1}.*(\.msi)$"MS XNA Framework Redist"\ 8 | "^xnafx40_redist\.msi$"MS XNA Framework Redist"\ 9 | "^(dotnet).*(setup\.exe)$"MS .NET Framework Redist"\ 10 | "^(dotnet).*(x86_x64\.exe)$"MS .NET Framework Redist (64-bit)"\ 11 | "^dotnetfx35\.exe$"MS .NET Framework Redist"\ 12 | "^openalweax\.exe$"OpenAL"\ 13 | "^dxwebsetup\.exe$"MS DirectX Web Installer"\ 14 | "^ndP451-kb2872776-x86-x64-allos-enu\.exe$"Takedown Red Sabre Redist"\ 15 | "^(rapture3d_){1}.*(game\.exe)$"Rapture 3D"\ 16 | "^amd_dcoptsetup\.exe$"AMD Dual-Core Optimizer"\ 17 | "^amd_dcoptsetup\.ex$"AMD Dual-Core Optimizer"\ 18 | "^msxml4-kb954430-enu\.exe$"MS XML Redist"\ 19 | "^msxml4-kb973688-enu\.exe$"MS XML Redist"\ 20 | "^wic_x64_enu\.exe$"MS .NET Framework Redist"\ 21 | "^wic_x86_enu\.exe$"MS .NET Framework Redist"\ 22 | "^xpsepsc-amd64-en-us\.exe$"MS .NET Framework Redist (64-bit)"\ 23 | "^xpsepsc-x86-en-us\.exe$"MS .NET Framework Redist"\ 24 | "^dotnetfx40_client_x86_x64\.exe$"MS .NET Framework Redist (64-bit)"\ 25 | "^netfx35_ia64\.exe$"MS .NET Framework Redist (Itanium)"\ 26 | "^netfx35_x64\.exe$"MS .NET Framework Redist (64-bit)"\ 27 | "^netfx35_x86\.exe$"MS .NET Framework Redist"\ 28 | "^setup_battleyearma2\.exe$"BattlEye Anti-Cheat Engine" 29 | redistFolderPatterns="^directx$"MS DirectX"\ 30 | "^dxredist$"MS DirectX"\ 31 | "^directx_redist$"MS DirectX"\ 32 | "^dx_redist_install$"MS DirectX"\ 33 | "^directxredist$"MS DirectX"\ 34 | "^dx\p{Space}redist$"MS DirectX"\ 35 | "^directx_jun_2010$"MS DirectX"\ 36 | "^directx_aug_2009$"MS DirectX"\ 37 | "^msvcrt$"MS Visual C++ Redist(s)"\ 38 | "^vcredist$"MS Visual C++ Redist(s)"\ 39 | "^g4w$"MS Games For Windows Live"\ 40 | "^dependencies$"Many redistributables"\ 41 | "^prerequisite(s)?$"Many redistributables"\ 42 | "^installer(s)?$"Many redistributables"\ 43 | "^redist(s)?$"Many redistributables"\ 44 | ".*_redist(s)?$"Many redistributables"\ 45 | ".*_installer(s)?$"Many redistributables"\ 46 | "^_commonredist(s)?$"Many redistributables"\ 47 | "^(_)+redist(s)?$"Many redistributables"\ 48 | "^ue3redist?$"Many UE3 redistributables"\ 49 | "^redistributable(s)?$"Many redistributables" 50 | enableExperimentalPatterns=false 51 | experimentalRedistFilesPatterns= 52 | experimentalRedistFolderPatterns="^directx9c$"(EXPERIMENTAL!!) MS DirectX (9.c)"\ 53 | "^commonredist$"(EXPERIMENTAL!!) Many redistributables"\ 54 | "^3rd$"(EXPERIMENTAL!!) Many redistributables"\ 55 | "^ea\p{Space}help$"(EXPERIMENTAL!!) Help files"\ 56 | "^support$"(EXPERIMENTAL!!) Help and EULA files"\ 57 | "^install$"(EXPERIMENTAL!!) Many redistributables" 58 | -------------------------------------------------------------------------------- /dist2/conf/backup/tikione-steam-cleaner_unchecked-items.ini: -------------------------------------------------------------------------------- 1 | [UNCHECKED_REDIST_ITEMS] 2 | itemList= 3 | -------------------------------------------------------------------------------- /dist2/conf/i18n/de.ini: -------------------------------------------------------------------------------- 1 | name=German (de) 2 | translator=Ulli Kunz, Boris Klein, Hauwertlhaufn 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Schließen 8 | frameTitle=Über TikiOne Steam Cleaner 9 | dep1=Dieses Produkt enthält von der The Apache Software Foundation (http://www.apache.org) entwickelte Software. 10 | dev=Entwickelt mit NetBeans 8 (http://netbeans.org) und Java 8 (http://www.java.com). 11 | website2=Blog des Entwicklers: https://github.com/jonathanlermitage 12 | website1=TikiOne-website: https://github.com/jonathanlermitage 13 | author=Autor: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Dem Programmierer mit einer Spende helfen? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Eine neuere Version ist verfügbar: {0} >> 19 | error.find.steamDir=(Kann das Steam-Verzeichnis nicht finden) 20 | label.steamDir=Steam-Verzeichnis: 21 | menu.about=Über TikiOne Steam Cleaner 22 | menu.checkForUpdates=Nach Updates suchen 23 | menu.help=Hilfe 24 | menu.tools=Werkzeuge 25 | menu.options=Optionen 26 | menu.exit=Verlassen 27 | menu.file=Datei 28 | button.removeSelectedItems=Ausgewählte Elemente löschen 29 | button.locateSteam=Steam automatisch lokalisieren 30 | button.locateSteamManually=... 31 | button.search.working=Suche... 32 | button.search=Suche 33 | redistList.item.folders=Verzeichnisse 34 | redistList.item.folderUppercase=VERZEICHNIS 35 | redistList.item.folder=Verzeichnis 36 | redistList.item.files=Dateien 37 | redistList.item.fileUpperCase=DATEI 38 | redistList.item.file=Datei 39 | redistList.title=Redistributable-Paket gefunden: 40 | redistTable.col.title.title=Titel 41 | redistTable.col.title.size=Größe (MB) 42 | redistTable.col.title.path=Pfad 43 | redistTable.col.title.select=Auswählen 44 | listing.step2.folders.details=UNTERSUCHEN (VERZEICHNISSE) 45 | listing.step2.files.details=UNTERSUCHEN (DATEIEN) 46 | listing.step1.details=AUFLISTUNG 47 | listing.step1=AUFLISTUNG (SCHRITT 1/2) 48 | button.add.custom.folder=Ordner hinzufügen 49 | button.rem.custom.folder=Ordner entfernen 50 | label.custom.folders.list=Benutzerdefinierte Ordner-Liste: 51 | icon.social.googleplus=Google+ Profil von TikiOne's Autor 52 | icon.social.facebook=TikiOne's Facebook Seite 53 | version.title={0} release 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Optionen 59 | button.close=Schließen 60 | button.validate=OK 61 | button.downloadRedist=Download definition files 62 | label.downloadRedist=Redist definition files (one URL per line): 63 | tab.options=Optionen 64 | tab.experimental=Experimentell 65 | tab.expWarning=Achtung: experimentelle Funktionen. Mit Vorsicht zu behandeln! 66 | optionLine.language=Programmsprache: 67 | optionLine.searchMaxDepth=Maximale Suchtiefe: 68 | optionLine.definitionFiles=Redist definition files (one URL per line): 69 | optionLine.saveLogToFile=Liste der gelöschten Pakete in einer Datei loggen (in /log/) 70 | optionLine.enableDebug=Fehler und Warnungen in einer Datei speichern (in /log/) 71 | optionLine.checkForUpdatesAtStartup=Nach Updates bei Programmstart suchen 72 | optionLine.listOnlyFromVDF=Pakete nur auflisten, wenn es sich um VDF-Dateien handelt 73 | optionLine.includeExpRedistPatterns=Experimentelle Redist-Pakete-Muster in Suche aufnehmen 74 | notice.language=Für Sprachwechsel muss das Programm neu gestartet werden. 75 | notice.searchMaxDepth=Ein höherer Wert bedeutet effektivere Suche bei längerer Suchzeit. Der Minimal-Wert 3 bietet bei der Suche nach Redist-Paketen eine bessere Performanz. 76 | notice.saveLogToFile=Speichert die Namen der gelöschten Pakete in eine Logdatei (zu finden im Unterordner "log"). 77 | notice.enableDebug=Speichert die Fehlermeldungen und Warnung in eine Datei. Nur für Debugzwecke hilfreich. 78 | notice.listOnlyFromVDF=Steam-Spiele haben für gewöhnlich eine Reihe an Redistributale-Paketen zur Installation vorrätig. Diese in in einigen VDF-Dateien vorgemerkt. Mit "Ja" werden die Redist-Pakete nur gefunden, wenn diese in VDF-Dateien aufgeführt wurden. 79 | notice.checkForUpdatesAtStartup=Automatische Suche nach neuen Versionen. Diese Suche wird beim Programmstart vollzogen und fügt eine Notiz zum Hauptmenü hinzu, um kein störendes Popup zu generieren. Die Abfrage wird im Hintergrund abgearbeitet und verlangsamt das Programm nicht. 80 | notice.includeExpRedistPatterns=Experimentelle Vorgaben können mehr Redist-Pakete aufspüren, allerdings auf die Gefahr hin, falsch positive Ergebnisse anzuzeigen. Nach der Aktivierung dieser Option sollten die Suchresultate genauestens überprüft werden. (Gefundene Dateien und Verzeichnisse werden in der Beschreibung mit "(EXPERIMENTAL!)" gekennzeichnet, beispielsweise "(EXPERIMENTAL!)") MS DirectX (9.c) ")." 81 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 82 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 83 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 84 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 85 | download.warningbox.title.remoteRedistDefFiles=Warning 86 | download.complete=Download complete 87 | yes=Ja 88 | no=Nein 89 | 90 | 91 | [W_DELETE] 92 | title=Ausgewählte Redist-Pakete entfernen 93 | info.deleteFolder=Ordner gelöscht: {0} ... 94 | info.error=FEHLER 95 | info.success=OK 96 | info.deleteFile=Dateien gelöscht: {0} ... 97 | button.close=Schließen 98 | button.deleteNow=Ausgewählte Redist-Pakete löschen (nicht umkehrbar)! 99 | button.deleteNow.finished=Gelöscht! 100 | info.title=(Log-Datei): 101 | info.spaceSaved=Sie haben {0} MB freigeräumt 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Nach Updates suchen 106 | button.downloadLatestVersion=Neueste Version herunterladen 107 | button.close=Schließen 108 | info.updateAvailable=Diese Version kann aktualisiert werden. 109 | info.alreadyUpToDate=Dies ist bereits die aktuellste Version. 110 | error.contact.url=Fehler: Kann Webseite nicht kontaktieren 111 | info.latestVersion=Die neueste Version lautet: {0} 112 | info.yourVersion=Die aktuelle Version ist: {0} 113 | info.check.working=Suche nach Updates... 114 | button.changelog=Changelog 115 | button.download=Lade aktuellste Version herunter. 116 | dialog.cantdownload.message.part1=Automatisches Update fehlgeschlagen. 117 | dialog.cantdownload.message.part2=Sie werden zur SourceForge.net Website weitergeleitet. 118 | dialog.cantdownload.title=Bitte laden Sie den SteamCleaner manuell herunter. 119 | dialog.downloadok.message=Programm aktualisiert. Bitte starten Sie den SteamCleaner neu, um das Update anzuwenden. 120 | dialog.downloadok.title=Neue Version heruntergeladen 121 | -------------------------------------------------------------------------------- /dist2/conf/i18n/en.ini: -------------------------------------------------------------------------------- 1 | name=English (en) 2 | translator=Jonathan Lermitage 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Close 8 | frameTitle=About TikiOne Steam Cleaner 9 | dep1=This product includes software developed by The Apache Software Foundation (http://www.apache.org). 10 | dev=Developed with NetBeans 8 (http://netbeans.org) and Java 8 (http://www.java.com). 11 | website2=Personal DevBlog: https://github.com/jonathanlermitage 12 | website1=TikiOne WebSite: https://github.com/jonathanlermitage 13 | author=Author: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Help the developer with a donation? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< A new version is available: {0} >> 19 | error.find.steamDir=(Cannot find Steam directory) 20 | label.steamDir=Steam folder: 21 | menu.about=About TikiOne Steam Cleaner 22 | menu.checkForUpdates=Check for updates 23 | menu.help=Help 24 | menu.tools=Tools 25 | menu.options=Options 26 | menu.exit=Exit 27 | menu.file=File 28 | button.removeSelectedItems=Remove selected items from disk 29 | button.locateSteam=Try to locate Steam automatically 30 | button.locateSteamManually=... 31 | button.search.working=Searching... 32 | button.search=Search 33 | redistList.item.folders=folders 34 | redistList.item.folderUppercase=FOLDER 35 | redistList.item.folder=folder 36 | redistList.item.files=files 37 | redistList.item.fileUpperCase=FILE 38 | redistList.item.file=file 39 | redistList.title=Redistributable packages found: 40 | redistTable.col.title.title=Title 41 | redistTable.col.title.size=Size (MB) 42 | redistTable.col.title.path=Path 43 | redistTable.col.title.select=Select 44 | listing.step2.folders.details=EXAM (FOLDERS) 45 | listing.step2.files.details=EXAM (FILES) 46 | listing.step1.details=LISTING 47 | listing.step1=LISTING (STEP 1/2) 48 | button.add.custom.folder=Add to list... 49 | button.rem.custom.folder=Remove from list 50 | label.custom.folders.list=Custom folders list: 51 | icon.social.googleplus=Google+ profile of TikiOne's author 52 | icon.social.facebook=TikiOne's Facebook page 53 | version.title={0} release 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Options 59 | button.close=Cancel 60 | button.validate=OK 61 | button.downloadRedist=Download definition files 62 | label.downloadRedist=Redist definition files (one URL per line): 63 | tab.options=Options 64 | tab.experimental=Experimental 65 | tab.expWarning=Warning: experimental functionalities. Use them with caution! 66 | optionLine.language=Program language: 67 | optionLine.definitionFiles=Redist definition files (one URL per line): 68 | optionLine.searchMaxDepth=Search maximum depth: 69 | optionLine.saveLogToFile=Save the list of deleted redistributable packages to a logfile (into /log/) 70 | optionLine.enableDebug=Save the program errors and warnings to a logfile (into /log/) 71 | optionLine.checkForUpdatesAtStartup=Check for program updates at startup 72 | optionLine.listOnlyFromVDF=List redist packages only if they are in VDF files 73 | optionLine.includeExpRedistPatterns=Include experimental redist package patterns in search 74 | notice.language=You will have to restart the application to apply a new language. 75 | notice.searchMaxDepth=A higher value means that search will be more effective but longer. The minimum value of 3 offers better performance, while detecting the majority of redistributable packages. 76 | notice.saveLogToFile=Will save the list of redistributable packages you delete to a logfile (into the "log" subdirectory). 77 | notice.enableDebug=Save the errors and warnings that the program messages could generate. Useful only for debugging purposes. 78 | notice.listOnlyFromVDF=Steam games usually have a list of redistributable packages to install. This list is stored into some VDF files. Set this options to "yes" to detect redist packages only if they appear in VDF files. 79 | notice.checkForUpdatesAtStartup=Automatically find the new versions. This search is performed at program startup and only inserts a note in the title of the main window (so as not to disturb you by displaying a pop-up). Task performed in the background, not slowing down the program. 80 | notice.includeExpRedistPatterns=Experimental designs can detect more redistributable packages, at the risk of displaying false positives. If you decide to activate this option, take the time to verify the results found by the search (files and folders found using this option are marked "(EXPERIMENTAL!!)" in their description, eg "(EXPERIMENTAL!!) MS DirectX (9.c) "). 81 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 82 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 83 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 84 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 85 | download.warningbox.title.remoteRedistDefFiles=Warning 86 | download.complete=Download complete 87 | yes=yes 88 | no=no 89 | 90 | 91 | [W_DELETE] 92 | title=Delete selected redistributable packages 93 | info.deleteFolder=Delete folder: {0} ... 94 | info.error=ERROR 95 | info.success=OK 96 | info.deleteFile=Delete file: {0} ... 97 | button.close=Close 98 | button.deleteNow=Delete selected redistributable packages (not undoable!) 99 | button.deleteNow.finished=Deleted! 100 | info.title=(logfile): 101 | info.spaceSaved=You saved {0} MB 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Check for updates 106 | button.downloadLatestVersion=Download the latest version 107 | button.close=Close 108 | info.updateAvailable=You could update your version. 109 | info.alreadyUpToDate=You already have the latest version. 110 | error.contact.url=error, cannot contact website 111 | info.latestVersion=The latest version is: {0} 112 | info.yourVersion=Your version is: {0} 113 | info.check.working=Checking for updates... 114 | button.changelog=Changelog 115 | button.download=Download the latest version 116 | dialog.cantdownload.message.part1=Cannot download the update automatically. 117 | dialog.cantdownload.message.part2=You will be redirected to the SourceForge.net website. 118 | dialog.cantdownload.title=Please download manually 119 | dialog.downloadok.message=Update file downloaded. Please restart the application to apply upgrade. 120 | dialog.downloadok.title=New version downloaded 121 | -------------------------------------------------------------------------------- /dist2/conf/i18n/encoding.ini: -------------------------------------------------------------------------------- 1 | de=UTF-8 2 | en=UTF-8 3 | es=UTF-8 4 | fr=UTF-8 5 | hu=UTF-8 6 | it=UTF-8 7 | nl=UTF-8 8 | pt=UTF-8 9 | ru=UTF-8 10 | ua=UTF-8 11 | zh-cn=UTF-8 12 | zh-hk=UTF-8 -------------------------------------------------------------------------------- /dist2/conf/i18n/es.ini: -------------------------------------------------------------------------------- 1 | name=Spanish (es) 2 | translator=ZoSH 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Cerrar 8 | frameTitle=Acerca de TikiOne Steam Cleaner 9 | dep1=Este producto incluye software desarrollado por The Apache Software Foundation (http://www.apache.org). 10 | dev=Desarrollado con NetBeans 8 (http://netbeans.org) y Java 8 (http://www.java.com). 11 | website2=DevBlog personal: https://github.com/jonathanlermitage 12 | website1=Sitio web de TikiOne: https://github.com/jonathanlermitage 13 | author=Autor: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=¿Ayuda al desarrollador con una donación? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Una nueva versión está disponible: {0} >> 19 | error.find.steamDir=(No fue posible encontrar la Carpeta de Steam) 20 | label.steamDir=Carpeta de Steam: 21 | menu.about=Acerca de TikiOne Steam Cleaner 22 | menu.checkForUpdates=Comprobar actualizaciones 23 | menu.help=Ayuda 24 | menu.tools=Herramientas 25 | menu.options=Opciones 26 | menu.exit=Salir 27 | menu.file=Archivo 28 | button.removeSelectedItems=Borrar los elementos seleccionados del disco 29 | button.locateSteam=Intentar localizar la carpeta de Steam automáticamente 30 | button.locateSteamManually=... 31 | button.search.working=Buscando... 32 | button.search=Buscar 33 | redistList.item.folders=carpetas 34 | redistList.item.folderUppercase=CARPETAS 35 | redistList.item.folder=carpeta 36 | redistList.item.files=archivos 37 | redistList.item.fileUpperCase=ARCHIVO 38 | redistList.item.file=archivo 39 | redistList.title=Paquetes redistribuibles encontrados: 40 | redistTable.col.title.title=Título 41 | redistTable.col.title.size=Tamaño (MB) 42 | redistTable.col.title.path=Ruta de acceso 43 | redistTable.col.title.select=Seleccionar 44 | listing.step2.folders.details=EXAMEN (CARPETAS) 45 | listing.step2.files.details=EXAMEN (ARCHIVOS) 46 | listing.step1.details=BUSCANDO 47 | listing.step1=BUSCANDO (PASO 1/2) 48 | button.add.custom.folder=Añadir a la lista... 49 | button.rem.custom.folder=Eliminar de la lista 50 | label.custom.folders.list=Carpetas añadidas: 51 | icon.social.googleplus=Perfil de Google+ de TikiOne 52 | icon.social.facebook=Página de Facebook de TikiOne 53 | version.title=versión {0} 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Opciones 59 | button.close=Cancelar 60 | button.validate=Aceptar 61 | button.downloadRedist=Descarga archivos de definiciones 62 | label.downloadRedist=Archivos de definicion de Redist (una URL por linea): 63 | tab.options=Opciones 64 | tab.experimental=Experimental 65 | tab.expWarning=Advertencia: Funcionalidades experimentales. Usar con precaución! 66 | optionLine.language=Idioma: 67 | optionLine.searchMaxDepth=Profundidad máxima de búsqueda: 68 | optionLine.definitionFiles=Redist definition files (one URL per line): 69 | optionLine.saveLogToFile=Guardar la lista de paquetes redistribuibles eliminados en un archivo de registro (en /log/) 70 | optionLine.enableDebug=Guardar errores del programa y advertencias en un archivo de registro (en /log/) 71 | optionLine.checkForUpdatesAtStartup=Comprobar actualizaciones al abrir el programa 72 | optionLine.listOnlyFromVDF=Listar paquetes redistribuibles sólo si están en archivos VDF 73 | optionLine.includeExpRedistPatterns=Incluir patrones experimentales de paquetes redistribuibles en la búsqueda 74 | notice.language=Tendrá que reiniciar la aplicación para aplicar un nuevo idioma. 75 | notice.searchMaxDepth=Un valor más alto significa que la búsqueda será más efectiva pero más larga. El valor mínimo de 3 ofrece el mayor rendimiento detectando la mayoría de los paquetes redistribuibles. 76 | notice.saveLogToFile=Guardará la lista de paquetes redistribuibles a eliminar en un archivo de registro (en el subdirectorio "log"). 77 | notice.enableDebug=Guardar los errores y advertencias que podrían generar los mensajes del programa. Útil sólo para fines de depuración. 78 | notice.listOnlyFromVDF=Los juegos de Steam suelen tener una lista de paquetes redistribuibles para instalar. Esta lista se almacena en algunos archivos VDF. Establezca esta opción en "Sí" para detectar paquetes redistribuibles sólo si aparecen en archivos VDF. 79 | notice.checkForUpdatesAtStartup=Buscar automáticamente nuevas versiones. Esta búsqueda se realiza al inicio del programa y sólo inserta una nota en el título de la ventana principal sin mostrar ninguna ventana emergente. La tarea se realiza en segundo plano, sin ralentizar el programa. 80 | notice.includeExpRedistPatterns=Los patrones experimentales pueden detectar más paquetes redistribuibles, con el riesgo de mostrar falsos positivos. Si decides activar esta opción, tómate el tiempo para verificar los resultados encontrados por la búsqueda (los archivos y carpetas encontrados utilizando esta opción están marcados con "(EXPERIMENTAL!)" en su descripción, por ejemplo "(EXPERIMENTAL!) MS DirectX (9.c) "). 81 | notice.registerRemoteRedistDefFiles=Mejora el rendimiento de Steam Cleaner añadiendo las URL que contienen archivos con patrones de nombres de redistribuibles. 82 | notice.downloadRemoteRedistDefFiles=Descargar archivos remotos que contienen patrones de paquetes redistribuibles. 83 | download.errormsg.remoteRedistDefFiles=No se pudo descargar archivo remoto de definiciones '{0}' 84 | download.warningbox.remoteRedistDefFiles=No se puede descargar o procesar algunos archivos, seran ignorados: 85 | download.warningbox.title.remoteRedistDefFiles=Advertencia 86 | download.complete=Descarga completa 87 | yes=Sí 88 | no=No 89 | 90 | 91 | [W_DELETE] 92 | title=Eliminar paquetes redistribuibles seleccionados 93 | info.deleteFolder=Eliminar carpeta: {0} ... 94 | info.error=ERROR 95 | info.success=OK 96 | info.deleteFile=Eliminar archivo: {0} ... 97 | button.close=Cerrar 98 | button.deleteNow=Eliminar paquetes redistribuibles seleccionados (no se puede deshacer!) 99 | button.deleteNow.finished=Eliminado! 100 | info.title=(Archivo de Registro): 101 | info.spaceSaved=Se han eliminado {0} MB 102 | [W_CHECKFORUPDATES] 103 | frameTitle=Buscar actualizaciones 104 | button.downloadLatestVersion=Descargar la versión más reciente 105 | button.close=Cerrar 106 | info.updateAvailable=Hay una actualización disponible. 107 | info.alreadyUpToDate=Ya tienes la versión más reciente. 108 | error.contact.url=error, no puede ponerse en contacto con el sitio Web 109 | info.latestVersion=La versión más reciente es: {0} 110 | info.yourVersion=Tu versión es: {0} 111 | info.check.working=Comprobando actualizaciones... 112 | button.changelog=Changelog 113 | button.download=Descargar la versión más reciente 114 | dialog.cantdownload.message.part1=No se pudo descargar la actualización automáticamente. 115 | dialog.cantdownload.message.part2=Serás redirigido al sitio web de Sourceforge.net. 116 | dialog.cantdownload.title=Por favor descarga manualmente el programa. 117 | dialog.downloadok.message=Nueva actualización descargada. Por favor reinicia el programa para aplicar la actualización. 118 | dialog.downloadok.title=Nueva versión descargada 119 | -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/de.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/en.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/es.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/fi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/fi.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/fr.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/hu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/hu.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/it.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/nl.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/pl.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/pt.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/ru.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/ua.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/where to find additional flag icons.txt: -------------------------------------------------------------------------------- 1 | Flag icons come from http://code.google.com/p/famfamfam/ -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/zh-cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/zh-cn.png -------------------------------------------------------------------------------- /dist2/conf/i18n/flags/zh-hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/conf/i18n/flags/zh-hk.png -------------------------------------------------------------------------------- /dist2/conf/i18n/fr.ini: -------------------------------------------------------------------------------- 1 | name=French (fr) 2 | translator=Jonathan Lermitage 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Fermer 8 | frameTitle=A propos de TikiOne Steam Cleaner 9 | dep1=Ce produit inclut un logiciel développé par The Apache Software Foundation (http://www.apache.org). 10 | dev=Développé avec NetBeans 8 (http://netbeans.org) et Java 8 (http://www.java.com). 11 | website2=DevBlog personnel : https://github.com/jonathanlermitage 12 | website1=Site Web TikiOne : https://github.com/jonathanlermitage 13 | author=Auteur : Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Aider le développeur avec un don ? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Une nouvelle version est disponible : {0} >> 19 | error.find.steamDir=(Impossible de trouver le répertoire Steam) 20 | label.steamDir=Dossier de Steam : 21 | menu.about=A propos de TikiOne Steam Cleaner 22 | menu.checkForUpdates=Rechercher des mises à jour 23 | menu.help=Aide 24 | menu.tools=Outils 25 | menu.options=Options 26 | menu.exit=Quitter 27 | menu.file=Fichier 28 | button.removeSelectedItems=Supprimer les éléments sélectionnés 29 | button.locateSteam=Essayer de localiser Steam auto. 30 | button.locateSteamManually=... 31 | button.search.working=Recherche... 32 | button.search=Chercher 33 | redistList.item.folders=dossiers 34 | redistList.item.folderUppercase=DOSSIER 35 | redistList.item.folder=dossier 36 | redistList.item.files=fichiers 37 | redistList.item.fileUpperCase=FICHIER 38 | redistList.item.file=fichier 39 | redistList.title=Paquetages redistribuables trouvés : 40 | redistTable.col.title.title=Titre 41 | redistTable.col.title.size=Taille (Mo) 42 | redistTable.col.title.path=Chemin 43 | redistTable.col.title.select=Sel. 44 | listing.step2.folders.details=EXAM (DOSSIERS) 45 | listing.step2.files.details=EXAM (FICHIERS) 46 | listing.step1.details=LISTING 47 | listing.step1=LISTING (ETAPE 1/2) 48 | button.add.custom.folder=Ajouter à la liste... 49 | button.rem.custom.folder=Retirer de la liste 50 | label.custom.folders.list=Liste de dossiers custom : 51 | icon.social.googleplus=Profil Google+ de l'auteur de TikiOne 52 | icon.social.facebook=Page Facebook de TikiOne 53 | version.title=version {0} 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Options 59 | button.close=Annuler 60 | button.validate=OK 61 | button.downloadRedist=Télécharger les fchiers distants 62 | label.downloadRedist=Définitions distantes de paquetages redisribuables (une URL par ligne): 63 | tab.options=Options 64 | tab.experimental=Expérimental 65 | tab.expWarning=Attention : fonctionnalités expérimentales. Utilisez-les avec précaution ! 66 | optionLine.language=Langue du programme : 67 | optionLine.searchMaxDepth=Profondeur max. de recherche : 68 | optionLine.definitionFiles=Fichiers de définitions (une URL par ligne): 69 | optionLine.saveLogToFile=Sauvegarder dans un fichier (dans /log/) la liste des paquetages redist. supprimés 70 | optionLine.enableDebug=Sauvegarder dans un fichier (dans /log/) les erreurs et avertissements générés par le programme 71 | optionLine.checkForUpdatesAtStartup=Vérifier les mises à jour au lancement du programme 72 | optionLine.listOnlyFromVDF=Ne lister les paquetages redist. que s'ils sont référencés dans les fichiers VDF 73 | optionLine.includeExpRedistPatterns=Inclure les schémas expérimentaux dans la liste des paquetages redist. à chercher 74 | notice.language=Vous devrez redémarrer le programme pour appliquer un changement de langue. 75 | notice.searchMaxDepth=Une valeur supérieure signifie que la recherche sera plus efficace mais plus longue. La valeur minimale de 3 offre de meilleures performances, tout en détectant l'immense majorité des paquetages redistribuables. 76 | notice.saveLogToFile=Sauvegarder la liste des paquetages redistribuables supprimés dans un fichier journal (dans le sous-dossier "log"). 77 | notice.enableDebug=Sauvegarder les erreurs et messages d'avertissements que le programme pourrait générer. Utile seulement à des fins de débogage. 78 | notice.listOnlyFromVDF=Les jeux Steam ont souvent une liste référençant les paquetages redistribuables à installer. Cette liste est stockée dans des fichiers VDF. Mettez cette option à "oui" pour ne lister que ceux qui sont présents dans les fichiers VDF. 79 | notice.checkForUpdatesAtStartup=Rechercher automatiquement la disponibilité de nouvelles versions. Cette recherche s'effectue au lancement du programme et insère seulement une note dans la titre de la fenêtre principale (afin de ne pas vous déranger en affichant une fenêtre pop-up). Tâche effectuée en arrière-plan, ne ralentissant pas le programme. 80 | notice.includeExpRedistPatterns=Les schémas expérimentaux permettent de détecter davantage de paquetages redistribuables, au risque d'afficher des faux-positifs. Si vous décidez d'activer cette option, prenez le temps de vérifier les résultats trouvés par la recherche (les fichiers et dossiers trouvés via cette option portent la mention "(EXPERIMENTAL!!)" dans leur description, par exemple : "(EXPERIMENTAL!!) MS DirectX (9.c)"). 81 | notice.registerRemoteRedistDefFiles=Améliorer l'efficacité de Steam Cleaner en ajoutant l'URL de fichiers contenant des définitions de paquetages redistribuables. 82 | notice.downloadRemoteRedistDefFiles=Télécharger des définitions distantes de paquetages redisribuables. 83 | download.errormsg.remoteRedistDefFiles=impossible de télécharger le fichier distant '{0}' 84 | download.warningbox.remoteRedistDefFiles=Impossible de télécharger certans fichiers. Sont ignorés: 85 | download.warningbox.title.remoteRedistDefFiles=Attention 86 | download.complete=Téléchargement terminé 87 | yes=oui 88 | no=non 89 | 90 | 91 | [W_DELETE] 92 | title=Supprimer les paquetages redistribuables 93 | info.deleteFolder=Suppression du dossier : {0} ... 94 | info.error=ERREUR 95 | info.success=OK 96 | info.deleteFile=Suppression du fichier : {0} ... 97 | button.close=Fermer 98 | button.deleteNow=Supprimer les paquetages redistribuables (non annulable !) 99 | button.deleteNow.finished=Supprimé(s) ! 100 | info.title=(journal) : 101 | info.spaceSaved=Vous avez économisé {0} Mo 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Rechercher des mises à jour 106 | button.downloadLatestVersion=Télécharger la dernière version 107 | button.close=Fermer 108 | info.updateAvailable=Vous pouvez mettre à jour votre version. 109 | info.alreadyUpToDate=Vous avez déjà la dernière version. 110 | error.contact.url=erreur, impossible de contacter le site Web 111 | info.latestVersion=La dernière version est : {0} 112 | info.yourVersion=Votre version est : {0} 113 | info.check.working=Recherche des mises à jour... 114 | button.changelog=Changelog 115 | button.download=Télécharger la dernière version 116 | dialog.cantdownload.message.part1=Impossible de télécharger la mise à jour automatiquement. 117 | dialog.cantdownload.message.part2=Vous allez être redirigé vers le site SourceForge.net. 118 | dialog.cantdownload.title=Merci de faire le téléchargement manuellement 119 | dialog.downloadok.message=Mise à jour téléchargée. Veuillez redémarrer l'application pour l'appliquer. 120 | dialog.downloadok.title=Mise à jour téléchargée 121 | -------------------------------------------------------------------------------- /dist2/conf/i18n/hu.ini: -------------------------------------------------------------------------------- 1 | name=Hungarian (hu) 2 | translator=Zsolt "lostprophet" Brechler 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Bezár 8 | frameTitle=A TikiOne Steam Cleaner névjegye 9 | dep1=Ez a termék a The Apache Software Foundation szoftverét tartalmazza (http://www.apache.org). 10 | dev=NetBeans 8-ben (http://netbeans.org) és Java 8-ben (http://www.java.com) fejlesztve. 11 | website2=Személyes fejlesztői blog: https://github.com/jonathanlermitage 12 | website1=TikiOne honlap: https://github.com/jonathanlermitage 13 | author=Fejlesztő: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Segíts a fejlesztőnek az adománnyal 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Új verzió érhető el: {0} >> 19 | error.find.steamDir=(Nem találom a Steam könyvtárat) 20 | label.steamDir=Steam könyvtár: 21 | menu.about=TikiOne Steam Cleaner névjegye 22 | menu.checkForUpdates=Frissítések keresése 23 | menu.help=Súgó 24 | menu.tools=Eszközök 25 | menu.options=Beállítások 26 | menu.exit=Kilépés 27 | menu.file=Fájl 28 | button.removeSelectedItems=Kiválasztott elemek eltávolítása a merevlemezről 29 | button.locateSteam=Steam automatikus keresése 30 | button.locateSteamManually=... 31 | button.search.working=Keresés... 32 | button.search=Keres 33 | redistList.item.folders=könyvtár 34 | redistList.item.folderUppercase=KÖNYVTÁR 35 | redistList.item.folder=könyvtár 36 | redistList.item.files=fájl 37 | redistList.item.fileUpperCase=FÁJL 38 | redistList.item.file=fájl 39 | redistList.title=Talált terjeszthető összetevők: 40 | redistTable.col.title.title=Név 41 | redistTable.col.title.size=Méret (MB) 42 | redistTable.col.title.path=Útvonal 43 | redistTable.col.title.select=Kiválaszt 44 | listing.step2.folders.details=VIZSGÁLAT (KÖNYVTÁRAK) 45 | listing.step2.files.details=VIZSGÁLAT (FÁJLOK) 46 | listing.step1.details=LISTÁZÁS 47 | listing.step1=LISTÁZÁS (1/2. LÉPÉS) 48 | button.add.custom.folder=Hozzáad a listához... 49 | button.rem.custom.folder=Eltávolít a listáról 50 | label.custom.folders.list=Egyéni mappák listája: 51 | icon.social.googleplus=A TikiOne szerzőjének Google+ profilja 52 | icon.social.facebook=A TikiOne Facebook oldala 53 | version.title={0} release 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Beállítások 59 | button.close=Mégse 60 | button.validate=Rendben 61 | button.downloadRedist=Download definition files 62 | label.downloadRedist=Redist definition files (one URL per line): 63 | tab.options=Beállítások 64 | tab.experimental=Kísérleti 65 | tab.expWarning=Figyelem: kísérleti beállítások. Óvatosan használandó! 66 | optionLine.language=Program nyelve: 67 | optionLine.searchMaxDepth=Maximum keresési mélység: 68 | optionLine.definitionFiles=Redist definition files (one URL per line): 69 | optionLine.saveLogToFile=A törölt terjeszthető csomagok listájának mentése egy naplófájlba (/log/ könyvtárba) 70 | optionLine.enableDebug=Programhibák és figyelmeztetések mentése egy naplófájlba (/log/ könyvtárba) 71 | optionLine.checkForUpdatesAtStartup=Programfrissítések keresése indításkor 72 | optionLine.listOnlyFromVDF=Terjeszthető csomagok listázása csak akkor, ha VDF fájlokban vannak 73 | optionLine.includeExpRedistPatterns=Kísérleti terjeszthető csomagminták hozzáadása a kereséshez 74 | notice.language=Újra kell indítanod a programot az új nyelv használatához. 75 | notice.searchMaxDepth=A magasabb érték hatékonyabb keresést tesz lehetővé, de tovább is tart. A minimum értéke a 3, amely jobb teljesítményt tesz lehetővé és a terjeszthető csomagok legnagyobb részét is észleli. 76 | notice.saveLogToFile=Elmenti a törölt terjeszthető csomagok listáját egy naplófájlba (a "log" alkönyvtárba). 77 | notice.enableDebug=Elmenti a programhibák és a felugró figyelmeztetéseket egy naplófájlba. Tesztelési célokra használatos. 78 | notice.listOnlyFromVDF=A Steames játékok általában rendelkeznek egy listával a telepíteni kívánt terjeszthető csomagokról. Ez a lista néhány VDF fájlban található meg. Ezt a beállítást "igen"-re állítva csak azokat a terjeszthető csomagokat észleli, amelyek megtalálhatóak a VDF fájlokban. 79 | notice.checkForUpdatesAtStartup=Új verziók automatikus keresése. Ez a keresés a program indulásakor hajtódik végre és csak egy szöveget ír ki a főablak fejlécébe (hogy ne zavarjon meg egy felugró ablakkal). A művelet a háttérben végződik el, nem lassítja a programot. 80 | notice.includeExpRedistPatterns=A kísérleti beállításokkal több terjeszthető csomagot találhat, de hibás érzékelés is történhet. Ha úgy döntesz, bekapcsolod ezt a lehetőséget, ne sajnáld az időt az eredmény átvizsgálására a keresés után (a beállítással talált fájlok és könyvtárak "(EXPERIMENTAL!!)" jelzést tartalmaznak a leírásukban, pl.: "(EXPERIMENTAL!!) MS DirectX (9.c) "). 81 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 82 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 83 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 84 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 85 | download.warningbox.title.remoteRedistDefFiles=Warning 86 | download.complete=Download complete 87 | yes=igen 88 | no=nem 89 | 90 | 91 | [W_DELETE] 92 | title=Kiválasztott terjeszthető összetevők törlése 93 | info.deleteFolder=Könyvtár törlése: {0} ... 94 | info.error=HIBA 95 | info.success=Rendben 96 | info.deleteFile=Fájl törlése: {0} ... 97 | button.close=Bezár 98 | button.deleteNow=Kiválasztott terjeszthető összetevők törlése (nem visszavonható!) 99 | button.deleteNow.finished=Törölve! 100 | info.title=(naplófájl): 101 | info.spaceSaved=Visszaszereztél {0} MB helyet 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Frissítések keresése 106 | button.downloadLatestVersion=Legfrissebb verzió letöltése 107 | button.close=Bezár 108 | info.updateAvailable=Frissítheted a verziódat. 109 | info.alreadyUpToDate=Már rendelkezel a legfrissebb verzióval. 110 | error.contact.url=hiba, nem sikerült a kapcsolódás a honlaphoz 111 | info.latestVersion=A legfrissebb verzió: {0} 112 | info.yourVersion=A te verziód: {0} 113 | info.check.working=Frissítések keresése... 114 | button.changelog=Frissítési napló 115 | button.download=A legfrissebb verzió letöltése 116 | dialog.cantdownload.message.part1=Nem sikerült automatikusan letölteni a frissítést. 117 | dialog.cantdownload.message.part2=Most átirányításra kerülsz a SourceForge.net weboldalra. 118 | dialog.cantdownload.title=Kérlek töltsd le manuálisan 119 | dialog.downloadok.message=Frissítő fájl letöltve. Kérlek indítsd újra az alkalmazást a frissítés érvénybe lépéséhez. 120 | dialog.downloadok.title=Új verzió letöltve 121 | -------------------------------------------------------------------------------- /dist2/conf/i18n/it.ini: -------------------------------------------------------------------------------- 1 | name=Italiano (it) 2 | translator=Davide Crucitti 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Chiudi 8 | frameTitle=Riguardo TikiOne Steam Cleaner 9 | dep1=Questo prodotto include software sviluppati da The Apache Software Foundation (http://www.apache.org). 10 | dev=Sviluppato con NetBeans 8 (http://netbeans.org) e Java 8 (http://www.java.com). 11 | website2=DevBlog personale: https://github.com/jonathanlermitage 12 | website1=Sito di TikiOne: https://github.com/jonathanlermitage 13 | author=Autore: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Perché non aiutare lo sviluppatore con una donazione? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< è disponibile una nuova versione: {0} >> 19 | error.find.steamDir=(Non è possibile trovare la cartella di Steam) 20 | label.steamDir=Cartella di Steam: 21 | menu.about=Riguardo TikiOne Steam Cleaner 22 | menu.checkForUpdates=Controlla aggiornamenti 23 | menu.help=Aiuto 24 | menu.tools=Strumenti 25 | menu.options=Opzioni 26 | menu.exit=Esci 27 | menu.file=File 28 | button.removeSelectedItems=Cancella i file selezionati 29 | button.locateSteam=Trova cartella automaticamente 30 | button.locateSteamManually=... 31 | button.search.working=Controllando... 32 | button.search=Controlla 33 | redistList.item.folders=cartelle 34 | redistList.item.folderUppercase=CARTELLA 35 | redistList.item.folder=cartella 36 | redistList.item.files=files 37 | redistList.item.fileUpperCase=FILE 38 | redistList.item.file=file 39 | redistList.title=Trovati ridistribuibili: 40 | redistTable.col.title.title=Nome 41 | redistTable.col.title.size=Dimensione (MB) 42 | redistTable.col.title.path=Percorso 43 | redistTable.col.title.select=Seleziona 44 | listing.step2.folders.details=EXAM (CARTELLE) 45 | listing.step2.files.details=EXAM (FILES) 46 | listing.step1.details=LISTING 47 | listing.step1=LISTING (PASSO 1/2) 48 | button.add.custom.folder=Aggiungi alla lista... 49 | button.rem.custom.folder=Rimuovi dalla lista 50 | label.custom.folders.list=Lista di cartelle personalizzate: 51 | icon.social.googleplus=Google+ Profilo dell'autore di TikiOne 52 | icon.social.facebook=Pagina Facebook di TikiOne 53 | version.title=versione {0} 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Opzioni 59 | button.close=Annulla 60 | button.validate=OK 61 | button.downloadRedist=Scarica librerie 62 | label.downloadRedist=Librerie dei ridistribuibili (un URL per linea): 63 | tab.options=Opzioni 64 | tab.experimental=Sperimentale 65 | tab.expWarning=Attenzione: Funzionalità sperimentali. Da utilizzare con cognizione! 66 | optionLine.language=Lingua: 67 | optionLine.definitionFiles=Librerie dei ridistribuibili (un URL per linea): 68 | optionLine.searchMaxDepth=Sottocartelle da controllare: 69 | optionLine.saveLogToFile=Salva la lista dei ridistribuibili eliminati in un file di log(into /log/) 70 | optionLine.enableDebug=Salva gli errori e gli avvertimenti del programma in un file di log (into /log/) 71 | optionLine.checkForUpdatesAtStartup=Controlla aggiornamenti all'avvio 72 | optionLine.listOnlyFromVDF=Mostra i ridistribuibile solo se in formato VDF 73 | optionLine.includeExpRedistPatterns=Includi ridistribuibili sperimentali nella ricerca 74 | notice.language=Devi riavviare il programma per cambiare la lingua. 75 | notice.searchMaxDepth=Un valore maggiore corrisponde a ricerche più accurate ma più lunghe. Il valore minimo di 3 offre la migliore velocità e individua la maggior parte dei ridistribuibili. 76 | notice.saveLogToFile=Salverà la lista dei pacchetti redistribuibili che cancellerai in un file log (dentro la sottocartella "log"). 77 | notice.enableDebug=Salva gli errori e gli avvertimenti che il programma potrebbe generare. Utile solo per il debugging. 78 | notice.listOnlyFromVDF=I giochi di Steam hanno solitamente una lista di ridistribuibili da installare. Questa lista è contenuta in dei file VDF. Selezionando questa opzione verranno rilevati solo i ridistribuibile che appaiono nei file VDF. 79 | notice.checkForUpdatesAtStartup=Cerca automaticamente nuove versioni. Questa ricerca avviene all'avvio del programma ed inserisce solamente una nota nel titolo della finestra (Così da non disturbare con un popup). L'operazione avviene in background e non rallenta il computer. 80 | notice.includeExpRedistPatterns=Le librerie sperimentali possono individuare più ridistribuibili, a rischio di trovare falsi positivi. Se attivi questa opzione ricorda di controllare i risultati della ricerca (File e cartelle trovati attraverso questa opzione sono chiamati "(EXPERIMENTAL!!)" nella loro descrizione, es. "(EXPERIMENTAL!!) MS DirectX (9.c) "). 81 | notice.registerRemoteRedistDefFiles=Migliora la pulizia aggiungendo URL di files che contengono schemi dei ridistribuibili. 82 | notice.downloadRemoteRedistDefFiles=Scarica files che contengono schemi dei ridistribuibili. 83 | download.errormsg.remoteRedistDefFiles=Non posso scaricare gli schemi dei ridistribuibili'{0}' 84 | download.warningbox.remoteRedistDefFiles=Alcuni files non possono essere scaricati, verranno ignorati: 85 | download.warningbox.title.remoteRedistDefFiles=Attenzione 86 | download.complete=Download completato 87 | yes=si 88 | no=no 89 | 90 | 91 | [W_DELETE] 92 | title=Elimina i ridistribuibili selezionati 93 | info.deleteFolder=Elimina cartella: {0} ... 94 | info.error=ERRORE 95 | info.success=OK 96 | info.deleteFile=Elimina file: {0} ... 97 | button.close=Chiudi 98 | button.deleteNow=Elimina i ridistribuibili selezionati (Non si può annullare!) 99 | button.deleteNow.finished=Eliminati! 100 | info.title=(logfile): 101 | info.spaceSaved=Hai liberato {0} MB 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Controlla gli aggiornamenti 106 | button.downloadLatestVersion=Scarica l'ultima versione 107 | button.close=Chiudi 108 | info.updateAvailable=Sono disponibili degli aggiornamenti. 109 | info.alreadyUpToDate=Hai l'ultima versione del programma. 110 | error.contact.url=Errore, impossibile contattare il webserver 111 | info.latestVersion=L'ultima versione è la: {0} 112 | info.yourVersion=La tua versione è la: {0} 113 | info.check.working=Cercando aggiornamenti... 114 | button.changelog=Changelog 115 | button.download=Scarica l'ultima versione 116 | dialog.cantdownload.message.part1=Impossibile scaricare l'aggiornamento. 117 | dialog.cantdownload.message.part2=Sarai reindirizzato al sito di SourceForge.net. 118 | dialog.cantdownload.title=Per favore, scarica il programma manualmente. 119 | dialog.downloadok.message=Aggiornamento scaricato, riavvia il programma per applicarlo. 120 | dialog.downloadok.title=Nuova versione scaricata 121 | -------------------------------------------------------------------------------- /dist2/conf/i18n/nl.ini: -------------------------------------------------------------------------------- 1 | name=Dutch (nl) 2 | translator=Nicky Ernste 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Sluiten 8 | frameTitle=Over TikiOne Steam Cleaner 9 | dep1=Dit product bevat software dat ontwikkeld is door The Apache Software Foundation (http://www.apache.org). 10 | dev=Ontwikkeld met NetBeans 8 (http://netbeans.org) en Java 8 (http://www.java.com). 11 | website2=Personlijk ontwikkel blog: https://github.com/jonathanlermitage 12 | website1=TikiOne web site: https://github.com/jonathanlermitage 13 | author=Auteur: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Wilt u de ontwikkelaar steunen met een donatie? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Er is een nieuwe versie beschikbaar: {0} >> 19 | error.find.steamDir=(Kan de Steam installatie map niet vinden) 20 | label.steamDir=Steam map: 21 | menu.about=Over TikiOne Steam Cleaner 22 | menu.checkForUpdates=Controleer op nieuwe versies 23 | menu.help=Help 24 | menu.tools=Gereedshap 25 | menu.options=Opties 26 | menu.exit=Afsluiten 27 | menu.file=Bestand 28 | button.removeSelectedItems=Verwijder de geselecteerde items van de schijf. 29 | button.locateSteam=Probeer steam automatisch te vinden. 30 | button.locateSteamManually=... 31 | button.search.working=Searching... 32 | button.search=Zoek 33 | redistList.item.folders=mappen 34 | redistList.item.folderUppercase=MAP 35 | redistList.item.folder=map 36 | redistList.item.files=bestanden 37 | redistList.item.fileUpperCase=BESTAND 38 | redistList.item.file=bestand 39 | redistList.title=Herdistribueerbare paketten gevonden: 40 | redistTable.col.title.title=Titel 41 | redistTable.col.title.size=Grootte (MB) 42 | redistTable.col.title.path=Pad 43 | redistTable.col.title.select=Selecteer 44 | listing.step2.folders.details=EXAM (FOLDERS) 45 | listing.step2.files.details=EXAM (FILES) 46 | listing.step1.details=VERMELDING 47 | listing.step1=VERMELDING (STAP 1/2) 48 | button.add.custom.folder=Aan lijst toevoegen... 49 | button.rem.custom.folder=Van lijst verwijderen 50 | label.custom.folders.list=Aangepaste mappen lijst: 51 | icon.social.googleplus=Google+ profiel van TikiOne's auteur 52 | icon.social.facebook=TikiOne's Facebook pagina 53 | version.title={0} release 54 | errmsg.cantfindsteamdir=Kan de steam map niet vinden. 55 | 56 | 57 | [W_OPTIONS] 58 | title=Opties 59 | button.close=Annuleren 60 | button.validate=OK 61 | button.downloadRedist=Download definitie bestanden 62 | label.downloadRedist=Herdistribueerbare definitie bestanden (één URL per regel): 63 | tab.options=Opties 64 | tab.experimental=Experimenteel 65 | tab.expWarning=Waarschuwing: experimentele functionaliteiten. Gebruik op eigen risico! 66 | optionLine.language=Programa taal: 67 | optionLine.definitionFiles=Herdistribueerbare definitie bestanden (één URL per regel): 68 | optionLine.searchMaxDepth=Maximale zoek diepte: 69 | optionLine.saveLogToFile=Sla de lijst van verwijderde herdistribueerbare paketten op in een log bestand (in /log/) 70 | optionLine.enableDebug=Sla programma fouten en waarschuwingen op in een log bestand (in /log/) 71 | optionLine.checkForUpdatesAtStartup=Controleer voor nieuwe versies tijdens het opstarten 72 | optionLine.listOnlyFromVDF=Laat herdistribueerbare paketten alleen zien als ze voorkomen in VDF bestanden 73 | optionLine.includeExpRedistPatterns=Voeg experimentele herdistribueerbare pakket zoek patronen toe aan de zoek actie 74 | notice.language=De applicatie moet opnieuw worden opgestart om de nieuwe taal te activeren. 75 | notice.searchMaxDepth=Een hogere waarde betekend dat het zoeken effectiever is maar langer zal duren. De minimum waarde van 3 geeft betere prestaties, en zal de meeste herdistribueerbare paketten vinden. 76 | notice.saveLogToFile=Sla de lijst van de verwijderde herdistribueerbare paketten op in een log bestand (in de "log" submap). 77 | notice.enableDebug=Sla de fouten en waarschuwingen die het programma genereerd. Alleen bruikbaar voor debug doeleinden. 78 | notice.listOnlyFromVDF=Spellen van Steam hebben normaal gesproken een lijst van de herdistribueerbare paketten die geïnstalleerd worden. Deze lijst wordt opgeslagen in een paar VDF bestanden. Stel deze optie in op "Ja" om alleen herdistribueerbare paketten te detecteren als deze voorkomen in de VDF bestanden. 79 | notice.checkForUpdatesAtStartup=Zoek automatisch naar nieuwe versies. Deze zoekactie wordt uitgevoerd tijdens het opstarten van het programma, en zal alleen een notitie toevoegen aan de titelbalk van het hoofdscherm (Het programma zal je niet storen met een pop-up). Deze taak wordt op de achtergrond uitgevoerd, zodat deze het programma niet vertraagd. 80 | notice.includeExpRedistPatterns=Experimentele ontwerpen kunnen meer herdistribueerbare paketten herkennen, met het risico dat er valse waardes worden weergegeven. Als je deze optie activeert, neem dan de tijd om de resultaten te controleren (bestanden en mappen die gemarkeerd zijn met "(EXPERIMENTEEL!!)") in de beschrijving, bijv: "(EXPERIMENTEEL!!) MS DirectX (9.c) ". 81 | notice.registerRemoteRedistDefFiles=Verbeter de Steam Cleaner prestaties door URL's toe te voegen van bestanden die patronen van herdistribueerbare paketten bevatten. 82 | notice.downloadRemoteRedistDefFiles=Download bestanden die patronen voor herdistribueerbare paketten bevatten. 83 | download.errormsg.remoteRedistDefFiles=Fout bij het downloaden van herdistribueerbare definitie bestand '{0}' 84 | download.warningbox.remoteRedistDefFiles=Fout bij het downloaden of verwerken van bestanden, deze worden genegeerd: 85 | download.warningbox.title.remoteRedistDefFiles=Waarschuwing 86 | download.complete=Download voltooid 87 | yes=ja 88 | no=nee 89 | 90 | 91 | [W_DELETE] 92 | title=Verwijder geselecteerde herdistribueerbare paketten 93 | info.deleteFolder=Verwijder map: {0} ... 94 | info.error=ERROR 95 | info.success=OK 96 | info.deleteFile=Verwijder bestand: {0} ... 97 | button.close=Sluiten 98 | button.deleteNow=Verwijder geselecteerde herdistribueerbare paketten (kan niet ongedaan worden!) 99 | button.deleteNow.finished=Verwijderd! 100 | info.title=(logbestand): 101 | info.spaceSaved=Je hebt {0} MB bespaart 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Controleren op updates 106 | button.downloadLatestVersion=Download de nieuwste versie 107 | button.close=Sluiten 108 | info.updateAvailable=Je kunt een nieuwere versie downloaden. 109 | info.alreadyUpToDate=Je hebt de nieuwste versie. 110 | error.contact.url=er is een fout opgetreden tijdens het communiceren met de website. 111 | info.latestVersion=De nieuwste versie is: {0} 112 | info.yourVersion=Jouw versie is: {0} 113 | info.check.working=Controleren op updates... 114 | button.changelog=Lijst met veranderingen 115 | button.download=Download de nieuwste versie 116 | dialog.cantdownload.message.part1=Kon de update niet automatisch downloaden 117 | dialog.cantdownload.message.part2=Je wordt automatisch doorgestuurd naar de GitHub website. 118 | dialog.cantdownload.title=Download de update alsjeblieft handmatig. 119 | dialog.downloadok.message=Update gedownload. Start de applicatie opnieuw om de update toe te passen. 120 | dialog.downloadok.title=Nieuwe versie gedownload. -------------------------------------------------------------------------------- /dist2/conf/i18n/pl.ini: -------------------------------------------------------------------------------- 1 | name=Polish (pl) 2 | translator=Piotr Swat 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Zamknij 8 | frameTitle=O TikiOne Steam Cleaner 9 | dep1=Ten produkt zawiera oprogramowanie wyprodukowane przez firmę Apache Software Foundation (http://www.apache.org) 10 | dev=Opracowny z NetBeans 8 (http://netbeans.org) oraz Java 8 (http://www.java.com). 11 | website2=Personalny DevBlog: https://github.com/jonathanlermitage 12 | website1=Strona TikiOne: https://github.com/jonathanlermitage 13 | author=Autor: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Wspomóż dewelopera mają dotacją? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Nowa wersja jest dostępna: {0} >> 19 | error.find.steamDir=(Nie można znaleźć folderu Steam) 20 | label.steamDir=Folder Steam: 21 | menu.about=O TikiOne Steam Cleaner 22 | menu.checkForUpdates=Sprawdź aktualizacje 23 | menu.help=Pomoc 24 | menu.tools=Narzędzia 25 | menu.options=Opcje 26 | menu.exit=Wyjście 27 | menu.file=Plik 28 | button.removeSelectedItems=Usuń zaznaczone z dysku 29 | button.locateSteam=Zlokalizuj folder automatycznie 30 | button.locateSteamManually=... 31 | button.search.working=Searching... 32 | button.search=Szukaj 33 | redistList.item.folders=foldery 34 | redistList.item.folderUppercase=FOLDER 35 | redistList.item.folder=folder 36 | redistList.item.files=pliki 37 | redistList.item.fileUpperCase=FILE 38 | redistList.item.file=file 39 | redistList.title=Znalezionych paczek Redistributable: 40 | redistTable.col.title.title=Nazwa 41 | redistTable.col.title.size=Rozmiar (MB) 42 | redistTable.col.title.path=Ścieżka 43 | redistTable.col.title.select=Wybierz 44 | listing.step2.folders.details=SPRAWDZANIE (FOLDERY) 45 | listing.step2.files.details=SPRAWDZANIE (PLIKI) 46 | listing.step1.details=LISTOWANIE 47 | listing.step1=LISTOWANIE (Etap 1/2) 48 | button.add.custom.folder=Dodaj do listy... 49 | button.rem.custom.folder=Usuń z listy 50 | label.custom.folders.list=Inne foldery: 51 | icon.social.googleplus=Profil Google+ autora TikiOne 52 | icon.social.facebook=Strona Facebook TikiOne 53 | version.title={0} wersja 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=Opcje 59 | button.close=Anuluj 60 | button.validate=OK 61 | button.downloadRedist=Download definition files 62 | label.downloadRedist=Redist definition files (one URL per line): 63 | tab.options=Opcje 64 | tab.experimental=Eksperymentalne 65 | tab.expWarning=Uwaga: funkcje eksperymentalne. Używaj z ostrożnością! 66 | optionLine.language=Język programu: 67 | optionLine.searchMaxDepth=Maksymalna głębokość szukania: 68 | optionLine.definitionFiles=Redist definition files (one URL per line): 69 | optionLine.saveLogToFile=Zapisz listę usuniętych paczek do pliku log (w folderze /log/) 70 | optionLine.enableDebug=Zapisz błędy i ostrzeżenia do pliku log(w folderze /log/) 71 | optionLine.checkForUpdatesAtStartup=Sprawdzaj dostępność aktualizacji przy uruchomieniu 72 | optionLine.listOnlyFromVDF=Wyświetlaj paczki tylko jeżeli są w pliku VDF 73 | optionLine.includeExpRedistPatterns=Włącz eksperymentalne przeszukiwanie 74 | notice.language=Musisz zresetować program, aby wyświetlić nowy język. 75 | notice.searchMaxDepth=Większa wartość oznacza, że przeszukiwanie będzie dokładniejsze, ale dłuższe. Minimalna wartość 3 oferuję najlepszą wydajność, gdy wykrywanie paczek będzie mniejsza. 76 | notice.saveLogToFile=Zapisze listę usuniętych paczek do pliki log (w folderze /log/). 77 | notice.enableDebug=Zapisz błędy i ostrzeżenia, które wystąpiły. Przydatne tylko do debugu. 78 | notice.listOnlyFromVDF=Gry Steam zazwyczaj mają listę paczek do zainstalowania. Ta lista jest zapisana w niektórych plikach VDF. Włącz tą opcję, aby wykrywać paczki tylko, jeżeli pojawiają się w pliku VDF. 79 | notice.checkForUpdatesAtStartup=Automatycznie wyszukuj nowych wersji. Wyszukiwanie jest wykonywane przy odpalaniu programu i tylko dodaję notkę do tytułu w głównym oknie programu (aby nie rozpraszać cię okienkiem pop-up). Jest to wykonywane w tyle, nie zwalniając programu. 80 | notice.includeExpRedistPatterns=Eksperymentalne przeszukiwanie może wykryć więcej paczek, ale też podawać fałszywe wyniki. Jeżeli się zdecydujesz włączyć tę opcję, zweryfikuj listę wyników (pliki i foldery znalezione tą opcją zą oznaczone jako "(EXPERIMENTAL!!)" w ich opisie, np. "(EXPERIMENTAL!!) MS DirectX (9.c) "). 81 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 82 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 83 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 84 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 85 | download.warningbox.title.remoteRedistDefFiles=Warning 86 | download.complete=Download complete 87 | yes=yes 88 | no=no 89 | 90 | 91 | [W_DELETE] 92 | title=Usuń zaznaczone paczki. 93 | info.deleteFolder=Usuń folder: {0} ... 94 | info.error=BŁĄD 95 | info.success=OK 96 | info.deleteFile=Usuń plik: {0} ... 97 | button.close=Zamknij 98 | button.deleteNow=Usuń zaznaczone paczki (nie da się cofnąć!) 99 | button.deleteNow.finished=Usunięte! 100 | info.title=(plik log): 101 | info.spaceSaved=Zaoszczędziłeś {0} MB 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=Sprawdź aktualizacje 106 | button.downloadLatestVersion=Pobierz najnowszą wersję 107 | button.close=Zamknij 108 | info.updateAvailable=Możesz zaktualizować swoją wersję. 109 | info.alreadyUpToDate=Posiadasz najnowszą wersję. 110 | error.contact.url=błąd, nie można skontaktować się ze stroną 111 | info.latestVersion=Najnowsza wersja to: {0} 112 | info.yourVersion=Twoja wersja to: {0} 113 | info.check.working=Sprawdzanie aktualizacji.. 114 | button.changelog=Changelog 115 | button.download=Pobierz najnowszą wersję 116 | dialog.cantdownload.message.part1=Nie można pobrać aktualizacji automatycznie. 117 | dialog.cantdownload.message.part2=Zostaniesz przeniesiony na stronę SourceForge.net. 118 | dialog.cantdownload.title=Proszę pobrać aktualizację ze strony. 119 | dialog.downloadok.message=Aktualizacja pobrana. Zrestartuj program, aby zaktualizować. 120 | dialog.downloadok.title=Pobrano nową wersję. -------------------------------------------------------------------------------- /dist2/conf/i18n/pt.ini: -------------------------------------------------------------------------------- 1 | name=Portuguese (pt) 2 | translator=Pedro Henrique Viegas Diniz, poutros 3 | 4 | [W_ABOUT] 5 | title=TikiOne Steam Cleaner 6 | button.close=Fechar 7 | frameTitle=Acerca do TikiOne Steam Cleaner 8 | dep1=Este produto contém software desenvolvido por The Apache Software Foundation (http://www.apache.org). 9 | dev=Desenvolvido com NetBeans 8 (http://netbeans.org) e Java 8 (http://www.java.com). 10 | website2=Devblog pessoal: https://github.com/jonathanlermitage 11 | website1=WebSite do TikiOne: https://github.com/jonathanlermitage 12 | author=Autor: Jonhathan Lermitage(jonathan.lermitage@gmail.com) 13 | icon.donate=Ajudar o desenvolvedor com uma doação? 14 | 15 | [W_MAIN] 16 | title.newVersionMsg=<< Nova versão disponível: {0} >> 17 | error.find.steamDir=(Impossível encontrar um diretório Steam) 18 | label.steamDir=Pasta do Steam: 19 | menu.about=Acerca de TikiOne Steam Cleaner 20 | menu.checkForUpdates=Procurar atualizações 21 | menu.help=Ajuda 22 | menu.tools=Ferramentas 23 | menu.options=Opções 24 | menu.exit=Sair 25 | menu.file=Ficheiro 26 | button.removeSelectedItems=Remover itens selecionados do disco 27 | button.locateSteam=Procurar a pasta do Steam automaticamente 28 | button.locateSteamManually=Localizar o Steam manualmente... 29 | button.search.working=A procurar... 30 | button.search=Procurar 31 | redistList.item.folders=pastas 32 | redistList.item.folderUppercase=PASTA 33 | redistList.item.folder=pasta 34 | redistList.item.files=ficheiros 35 | redistList.item.fileUpperCase=FICHEIRO 36 | redistList.item.file=ficheiro 37 | redistList.title=Pacotes redistribuíveis encontrados: 38 | redistTable.col.title.title=Título 39 | redistTable.col.title.size=Tamanho (MB) 40 | redistTable.col.title.path=Caminho 41 | redistTable.col.title.select=Selecionar 42 | listing.step2.folders.details=EXAMINAR (Pastas) 43 | listing.step2.files.details=EXAMINAR (Ficheiros) 44 | listing.step1.details=LISTAGEM 45 | listing.step1=LISTAGEM (Passo 1/2) 46 | button.add.custom.folder=Adicionar à lista... 47 | button.rem.custom.folder=Remover da lista 48 | label.custom.folders.list=Lista de pastas comuns: 49 | icon.social.googleplus=Perfil Google+ do autor do TikiOne 50 | icon.social.facebook=Página do Facebook do TikiOne 51 | version.title=Versão {0} 52 | errmsg.cantfindsteamdir= 53 | 54 | [W_OPTIONS] 55 | title=Opções 56 | button.close=Cancelar 57 | button.validate=OK 58 | button.downloadRedist=Descarregar ficheiros de definição 59 | label.downloadRedist=Ficheiros de definição redist (um link por linha): 60 | tab.options=Opções 61 | tab.experimental=Experimental 62 | tab.expWarning=Aviso: funcionalidades experimentais. Usar com cuidado! 63 | optionLine.language=Linguagem do programa: 64 | optionLine.searchMaxDepth=Profundidade de pastas na procura: 65 | optionLine.definitionFiles=Ficheiros de definição redist (um link por linha): 66 | optionLine.saveLogToFile=Guardar a lista dos pacotes apagados para um ficheiro de registo (para /log/) 67 | optionLine.enableDebug=Guardar os erros do programa para um ficheiro de registo (para /log/) 68 | optionLine.checkForUpdatesAtStartup=Verificar atualizações no início do programa 69 | optionLine.listOnlyFromVDF=Listar pacotes redist apenas se estiverem em ficheiros VDF. 70 | optionLine.includeExpRedistPatterns=Incluir códigos experimentais de pacotes redist na pesquisa. 71 | notice.language=Reinicia a aplicação para usares a nova linguagem. 72 | notice.searchMaxDepth=Um valor mais alto significa uma melhor procura mas um tempo mais lento. O valor mínimo de 3 oferece a melhor performance e ao mesmo tempo descobre a maioria dos pacotes. 73 | notice.saveLogToFile=Guarda os pacotes de ficheiro apagados para um ficheiro de registo (para a pasta "log"). 74 | notice.enableDebug=Guardar erros e avisos do programa. 75 | notice.listOnlyFromVDF=Os jogos do Steam normalmente têm uma lista de pacotes redistribuíveis para instalar. Esta lista é guardada em alguns ficheiros VDF. 76 | notice.checkForUpdatesAtStartup=Verificar atualizações automaticamente. 77 | notice.includeExpRedistPatterns=Podes detetar mais pacotes mas com o risco de falsos-positivos, por isso analisa todos aqueles marcados com "Experimental". 78 | notice.registerRemoteRedistDefFiles=Melhora a performance do Steam Cleaner ao fazer o download dos ficheiros de definição de pacotes. 79 | notice.downloadRemoteRedistDefFiles=Descarregar ficheiros remotos de definição de padrões de pacotes. 80 | download.errormsg.remoteRedistDefFiles=impossível descarregar ficheiro de definição remoto '{0}' 81 | download.warningbox.remoteRedistDefFiles=Impossível descarregar ou processar alguns ficheiros, a ignorá-los: 82 | download.warningbox.title.remoteRedistDefFiles=Aviso 83 | download.complete=Download completo 84 | yes=Sim 85 | no=Não 86 | 87 | [W_DELETE] 88 | title=Apagar os ficheiros selecionados 89 | info.deleteFolder=Apagar pasta: {0} ... 90 | info.error=ERRO 91 | info.success=OK 92 | info.deleteFile=Apagar ficheiro: {0} ... 93 | button.close=Fechar 94 | button.deleteNow=Apagar pacotes (impossível de desfazer!) 95 | button.deleteNow.finished=Apagado! 96 | info.title=(ficheiro de registo): 97 | info.spaceSaved=Recuperaste {0} MB 98 | 99 | [W_CHECKFORUPDATES] 100 | frameTitle=Verificar atualizações 101 | button.downloadLatestVersion=Atualizar 102 | button.close=Fechar 103 | info.updateAvailable=É sempre bom teres a última versão. 104 | info.alreadyUpToDate=Já tem a última versão. 105 | error.contact.url=Erro, servidor incontactável. 106 | info.latestVersion=A última versão é: {0} 107 | info.yourVersion=A sua versão é: {0} 108 | info.check.working=A procurar atualizações... 109 | button.changelog=Mudanças 110 | button.download=Atualizar 111 | dialog.cantdownload.message.part1=Impossível fazer download automaticamente. 112 | dialog.cantdownload.message.part2=Vai ser redirecionado para a página SourceForge.net para fazer o download da última versão. 113 | dialog.cantdownload.title=Por favor atualize manualmente 114 | dialog.downloadok.message=Atualizado. Reinicie a aplicação para aplicar as mudanças. 115 | dialog.downloadok.title=Nova versão descarregada 116 | -------------------------------------------------------------------------------- /dist2/conf/i18n/ru.ini: -------------------------------------------------------------------------------- 1 | name=Russian (ru) 2 | translator=Дмитрий Болотов 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Закрыть 8 | frameTitle=Информация о TikiOne Steam Cleaner 9 | dep1=Этот продукт включает в себя софт, разработанный Apache Software Foundation (http://www.apache.org). 10 | dev=Разработано с NetBeans 8 (http://netbeans.org) и Java 8 (http://www.java.com). 11 | website2=Блог: https://github.com/jonathanlermitage 12 | website1=Веб-сайт TikiOne: https://github.com/jonathanlermitage 13 | author=Автор: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Сделать пожертвование? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Доступна новая версия: {0} >> 19 | error.find.steamDir=(Не найдена папка Steam) 20 | label.steamDir=Папка Steam: 21 | menu.about=Информация о TikiOne Steam Cleaner 22 | menu.checkForUpdates=Проверить обновления 23 | menu.help=Помощь 24 | menu.tools=Инструменты 25 | menu.options=Настройки 26 | menu.exit=Выход 27 | menu.file=Файл 28 | button.removeSelectedItems=Очистить выбранные файлы 29 | button.locateSteam=Автоматически найти папку Steam 30 | button.locateSteamManually=... 31 | button.search.working=Поиск... 32 | button.search=Поиск 33 | redistList.item.folders=папки 34 | redistList.item.folderUppercase=ПАПКА 35 | redistList.item.folder=папок 36 | redistList.item.files=файлы 37 | redistList.item.fileUpperCase=ФАЙЛ 38 | redistList.item.file=файлов 39 | redistList.title=Найдено распространяемых пакетов: 40 | redistTable.col.title.title=Название 41 | redistTable.col.title.size=Размер (МБ) 42 | redistTable.col.title.path=Путь 43 | redistTable.col.title.select=Выбрать 44 | listing.step2.folders.details=СКАНИРОВАНИЕ (ПАПКИ) 45 | listing.step2.files.details=СКАНИРОВАНИЕ (ФАЙЛЫ) 46 | listing.step1.details=ПОИСК В 47 | listing.step1=ЛИСТИНГ (ШАГ 1/2) 48 | button.add.custom.folder=Добавить в список... 49 | button.rem.custom.folder=Удалить из списка... 50 | label.custom.folders.list=Пользовательские папки: 51 | button.add.custom.folder=Добавить в список... 52 | button.rem.custom.folder=Удалить из списка... 53 | label.custom.folders.list=Пользовательские папки: 54 | icon.social.googleplus=Профиль автора TikiOne в Google+ 55 | icon.social.facebook=Страница TikiOne в Facebook 56 | version.title=версия {0} 57 | errmsg.cantfindsteamdir= 58 | 59 | 60 | [W_OPTIONS] 61 | title=Настройки 62 | button.close=Отмена 63 | button.validate=ОК 64 | button.downloadRedist=Download definition files 65 | label.downloadRedist=Redist definition files (one URL per line): 66 | tab.options=Настройки 67 | tab.experimental=Особые 68 | tab.expWarning=Предупреждение: функции для опытных пользователей. Используйте их осторожно! 69 | optionLine.language=Язык программы: 70 | optionLine.searchMaxDepth=Максимальная глубина поиска: 71 | optionLine.definitionFiles=Redist definition files (one URL per line): 72 | optionLine.saveLogToFile=Сохранять список удаленных распространяемых пакетов в лог-файл (в /log/) 73 | optionLine.enableDebug=Сохранять ошибки и предупреждения программы в лог-файл (в /log/) 74 | optionLine.checkForUpdatesAtStartup=Проверять обновления при запуске 75 | optionLine.listOnlyFromVDF=Составить список распространяемых пакетов только, если они в VDF-файлах 76 | optionLine.includeExpRedistPatterns=Включить продвинутый поиск распространяемых пакетов 77 | notice.language=Вам нужно перезапустить программу после смены языка. 78 | notice.searchMaxDepth=Большее значение означает, что поиск будет происходит более эффективно, но дольше. Минимальное значение 3 обеспечивает высокую производительность, при обнаружении большого количества распространяемых пакетов. 79 | notice.saveLogToFile=Сохранять список удаленных распространяемых пакетов в лог-файл (в подкаталог "log"). 80 | notice.enableDebug=Сохранять ошибки и предупреждения, которые может сгенерировать программа. Полезно при отладке. 81 | notice.listOnlyFromVDF=Steam-игры обычно имеют список распространяемых пакетов. Он находится в некоторых VDF-файлах. Измените эту опцию на "да", чтобы находить распространяемые пакеты только в VDF-файлах. 82 | notice.checkForUpdatesAtStartup=Автоматически проверять обновления. Этот поиск осуществляется при запуске программы и только информирует в названии главного окна (чтобы не беспокоить вас всплывающим окном). Выполняется в фоновом режиме, не замедляя процесс программы. 83 | notice.includeExpRedistPatterns=Возможность обнаруживать больше распространяемых пакетов с риском отображения неправильных. Если вы решили активировать эту опцию, удостоверьтесь в найденных результатах (файлы и папки, найденные с помощью этой опции, помечены "(ОСОБОЕ!!)" в их описании, например "(ОСОБОЕ!!) MS DirectX (9.c) "). 84 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 85 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 86 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 87 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 88 | download.warningbox.title.remoteRedistDefFiles=Warning 89 | download.complete=Download complete 90 | yes=да 91 | no=нет 92 | 93 | 94 | [W_DELETE] 95 | title=Удалить выбранные распространяемые пакеты 96 | info.deleteFolder=Удалена папка: {0} ... 97 | info.error=ОШИБКА 98 | info.success=ОК 99 | info.deleteFile=Удалён файл: {0} ... 100 | button.close=Закрыть 101 | button.deleteNow=Удалить выбранные распространяемые пакеты (нельзя отменить!) 102 | button.deleteNow.finished=Удалено! 103 | info.title=(лог-файл): 104 | info.spaceSaved=Вы очистили {0} МБ 105 | 106 | 107 | [W_CHECKFORUPDATES] 108 | frameTitle=Проверить обновления 109 | button.downloadLatestVersion=Скачать последнюю версию 110 | button.close=Закрыть 111 | info.updateAvailable=Вы можете обновить программу. 112 | info.alreadyUpToDate=Вы используете последнюю версию. 113 | error.contact.url=ошибка, невозможно соединиться с веб-сайтом 114 | info.latestVersion=Последняя версия: {0} 115 | info.yourVersion=Ваша версия: {0} 116 | info.check.working=Проверка обновлений... 117 | button.changelog=Журнал изменений 118 | button.download=Скачать последнюю версию 119 | dialog.cantdownload.message.part1=Невозможно обновить автоматически. 120 | dialog.cantdownload.message.part2=Вы будете переадресованы на сайт SourceForge.net. 121 | dialog.cantdownload.title=Пожалуйста, скачайте вручную 122 | dialog.downloadok.message=Файл изменения загружен. Пожалуйста, перезапустите приложение, чтобы изменения вступили в силу. 123 | dialog.downloadok.title=Новая версия загружена 124 | 125 | -------------------------------------------------------------------------------- /dist2/conf/i18n/ua.ini: -------------------------------------------------------------------------------- 1 | name=Ukrainian (ua) 2 | translator=Дмитрий Болотов 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=Закрити 8 | frameTitle=Iнформація про TikiOne Steam Cleaner 9 | dep1=Цей продукт містить у собі софт, розроблений Apache Software Foundation (http://www.apache.org). 10 | dev=Розроблено з NetBeans 8 (http://netbeans.org) и Java 8 (http://www.java.com). 11 | website2=Блог: https://github.com/jonathanlermitage 12 | website1=Веб-сайт TikiOne: https://github.com/jonathanlermitage 13 | author=Автор: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=Зробити пожертву? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< Доступна нова версія: {0} >> 19 | error.find.steamDir=(Не знайдена папка Steam) 20 | label.steamDir=Папка Steam: 21 | menu.about=Iнформацiя о TikiOne Steam Cleaner 22 | menu.checkForUpdates=Перевірити оновлення 23 | menu.help=Допомога 24 | menu.tools=Iнструменти 25 | menu.options=Налаштування 26 | menu.exit=Вихiд 27 | menu.file=Файл 28 | button.removeSelectedItems=Очистити вибрані файли 29 | button.locateSteam=Автоматично знайти папку Steam 30 | button.locateSteamManually=... 31 | button.search.working=Пошук... 32 | button.search=Пошук 33 | redistList.item.folders=папки 34 | redistList.item.folderUppercase=ПАПКА 35 | redistList.item.folder=папок 36 | redistList.item.files=файли 37 | redistList.item.fileUpperCase=ФАЙЛ 38 | redistList.item.file=файлiв 39 | redistList.title=Знайдено розповсюджуваних пакетів: 40 | redistTable.col.title.title=Назва 41 | redistTable.col.title.size=Розмiр (МБ) 42 | redistTable.col.title.path=Шлях 43 | redistTable.col.title.select=Вибрати 44 | listing.step2.folders.details=СКАНУВАННЯ (ПАПКИ) 45 | listing.step2.files.details=СКАНУВАННЯ (ФАЙЛИ) 46 | listing.step1.details=ПОШУК В 47 | listing.step1=ЛIСТИНГ (КРОК 1/2) 48 | button.add.custom.folder=Додати в список... 49 | button.rem.custom.folder=Видалити зі списку... 50 | label.custom.folders.list=Користувальницькі папки: 51 | button.add.custom.folder=Додати в список... 52 | button.rem.custom.folder=Видалити зі списку... 53 | label.custom.folders.list=Користувальницькі папки: 54 | icon.social.googleplus=Профiль автора TikiOne в Google+ 55 | icon.social.facebook=Сторiнка TikiOne в Facebook 56 | version.title=версiя {0} 57 | errmsg.cantfindsteamdir= 58 | 59 | 60 | [W_OPTIONS] 61 | title=Налаштування 62 | button.close=Скасування 63 | button.validate=ОК 64 | button.downloadRedist=Download definition files 65 | label.downloadRedist=Redist definition files (one URL per line): 66 | tab.options=Налаштування 67 | tab.experimental=Особливі 68 | tab.expWarning=Попередження: функції для досвідчених користувачів. Використовуйте їх обережно! 69 | optionLine.language=Мова програми: 70 | optionLine.searchMaxDepth=Максимальна глибина пошуку: 71 | optionLine.definitionFiles=Redist definition files (one URL per line): 72 | optionLine.saveLogToFile=Зберігати список видалених розповсюджуваних пакетів в лог-файл (в /log/) 73 | optionLine.enableDebug=Зберігати помилки та попередження програми в лог-файл (в /log/) 74 | optionLine.checkForUpdatesAtStartup=Перевіряти оновлення при запуску 75 | optionLine.listOnlyFromVDF=Скласти список розповсюджуваних пакетів тільки, якщо вони в VDF-файлах 76 | optionLine.includeExpRedistPatterns=Включити просунутий пошук розповсюджуваних пакетів 77 | notice.language=Вам потрібно перезапустити програму після зміни мови. 78 | notice.searchMaxDepth=Більше значення означає, що пошук буде відбувається більш ефективно, але довше. Мінімальне значення 3 забезпечує високу продуктивність, при виявленні великої кількості розповсюджуваних пакетів. 79 | notice.saveLogToFile=Зберігати список видалених розповсюджуваних пакетів в лог-файл (в підкаталог "log"). 80 | notice.enableDebug=Зберігати помилки та попередження, які може згенерувати програма. Корисно при налагодженні. 81 | notice.listOnlyFromVDF=Steam-ігри зазвичай мають список розповсюджуваних пакетів. Він знаходиться в деяких VDF-файлах. Змініть цю опцію на "так", щоб знаходити поширювані пакети тільки в VDF-файлах. 82 | notice.checkForUpdatesAtStartup=Автоматично перевіряти оновлення. Цей пошук здійснюється при запуску програми і тільки інформує в назві головного вікна (щоб не турбувати вас спливаючим вікном). Виконується у фоновому режимі, не сповільнюючи процес програми. 83 | notice.includeExpRedistPatterns=Можливість виявляти більше розповсюджуваних пакетів з ризиком відображення неправильних. Якщо ви вирішили активувати цю опцію, упевніться в знайдених результатах (файли і папки, знайдені за допомогою цієї опції, помічені "(ОСОБОЕ!!)" В їх описі, наприклад "(ОСОБОЕ!!) MS DirectX (9.c)") . 84 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 85 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 86 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 87 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 88 | download.warningbox.title.remoteRedistDefFiles=Warning 89 | download.complete=Download complete 90 | yes=да 91 | no=немає 92 | 93 | 94 | [W_DELETE] 95 | title=Видалити вибрані поширювані пакети 96 | info.deleteFolder=Видалена папка: {0} ... 97 | info.error=ПОМИЛКА 98 | info.success=ОК 99 | info.deleteFile=Видалений файл: {0} ... 100 | button.close=Закрити 101 | button.deleteNow=Видалити вибрані поширювані пакети (не можна скасувати!) 102 | button.deleteNow.finished=Видалене! 103 | info.title=(лог-файл): 104 | info.spaceSaved=Ви очистили {0} МБ 105 | 106 | 107 | [W_CHECKFORUPDATES] 108 | frameTitle=Перевірити оновлення 109 | button.downloadLatestVersion=Скачати останню версію 110 | button.close=Закрити 111 | info.updateAvailable=Ви можете оновити програму. 112 | info.alreadyUpToDate=Ви використовуєте останню версію. 113 | error.contact.url=помилка, неможливо з'єднатися з веб-сайтом 114 | info.latestVersion=Остання версія: {0} 115 | info.yourVersion=Ваша версiя: {0} 116 | info.check.working=Перевірка оновлень... 117 | button.changelog=Журнал змін 118 | button.download=Скачати останню версію 119 | dialog.cantdownload.message.part1=Неможливо оновити автоматично. 120 | dialog.cantdownload.message.part2=Ви будете переадресовані на сайт SourceForge.ne. 121 | dialog.cantdownload.title=Будь ласка, скачайте вручну 122 | dialog.downloadok.message=Файл зміни завантажений. Будь ласка, перезапустіть пристрій, щоб зміни вступили в силу. 123 | dialog.downloadok.title=Нова версія завантажена 124 | 125 | -------------------------------------------------------------------------------- /dist2/conf/i18n/zh-cn.ini: -------------------------------------------------------------------------------- 1 | name=Simplified Chinese (简体中文) 2 | translator=wbsdty331 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=关闭 8 | frameTitle=关于Steam Cleaner 9 | dep1=This product includes software developed by The Apache Software Foundation (http://www.apache.org). 10 | dev=Developed with NetBeans 8 (http://netbeans.org) and Java 8 (http://www.java.com). 11 | website2=Personal DevBlog: https://github.com/jonathanlermitage 12 | website1=TikiOne WebSite: https://github.com/jonathanlermitage 13 | author=Author: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=想捐款支持开发者吗? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=<< 发现新版本: {0} >> 19 | error.find.steamDir=(找不到Steam安装目录) 20 | label.steamDir=Steam安装路径: 21 | menu.about=About TikiOne Steam Cleaner 22 | menu.checkForUpdates=检查更新 23 | menu.help=帮助 24 | menu.tools=工具 25 | menu.options=选项 26 | menu.exit=退出 27 | menu.file=文件 28 | button.removeSelectedItems=删除所有选择的项目 29 | button.locateSteam=自动搜索Steam安装目录 30 | button.locateSteamManually=... 31 | button.search.working=搜索中... 32 | button.search=搜索 33 | redistList.item.folders=个目录 34 | redistList.item.folderUppercase=目录 35 | redistList.item.folder=目录 36 | redistList.item.files=个文件 37 | redistList.item.fileUpperCase=文件 38 | redistList.item.file=文件 39 | redistList.title=寻找到可删除的文件: 40 | redistTable.col.title.title=标题 41 | redistTable.col.title.size=大小 (MB) 42 | redistTable.col.title.path=路径 43 | redistTable.col.title.select=选择 44 | listing.step2.folders.details=EXAM (FOLDERS) 45 | listing.step2.files.details=EXAM (FILES) 46 | listing.step1.details=LISTING 47 | listing.step1=列表中...(步骤1/2) 48 | button.add.custom.folder=加入列表 49 | button.rem.custom.folder=从列表中移除 50 | label.custom.folders.list=自定义目录: 51 | icon.social.googleplus=Google+ profile of TikiOne's author 52 | icon.social.facebook=TikiOne's Facebook 主页 53 | version.title={0} release 54 | errmsg.cantfindsteamdir= 55 | 56 | 57 | [W_OPTIONS] 58 | title=选项 59 | button.close=取消 60 | button.validate=确定 61 | button.downloadRedist=Download definition files 62 | label.downloadRedist=Redist definition files (one URL per line): 63 | tab.options=选项 64 | tab.experimental=实验性功能 65 | tab.expWarning=警告:这些实验性功能随时可能会更改、中止或取消。因此,使用前请三思! 66 | optionLine.language=语言选择: 67 | optionLine.searchMaxDepth=搜索目录深度: 68 | optionLine.definitionFiles=Redist definition files (one URL per line): 69 | optionLine.saveLogToFile=在程序的log目录保存日志文件 70 | optionLine.enableDebug=在程序的log目录保存日志文件 71 | optionLine.checkForUpdatesAtStartup=启动时检查程序更新 72 | optionLine.listOnlyFromVDF=List redist packages only if they are in VDF files 73 | optionLine.includeExpRedistPatterns=搜索更多的软件包(实验性功能) 74 | notice.language=语言更改之后,重新启动程序才能生效。 75 | notice.searchMaxDepth=设置搜索文件夹的深度(数值越大,搜索效果越好,但耗时会更长) 76 | notice.saveLogToFile=Will save the list of redistributable packages you delete to a logfile (into the "log" subdirectory). 77 | notice.enableDebug=Save the errors and warnings that the program messages could generate. Useful only for debugging purposes. 78 | notice.listOnlyFromVDF=Steam games usually have a list of redistributable packages to install. This list is stored into some VDF files. Set this options to "yes" to detect redist packages only if they appear in VDF files. 79 | notice.checkForUpdatesAtStartup=启动时检查程序更新,如果发现新版本会在标题栏显示。 80 | notice.includeExpRedistPatterns=Experimental designs can detect more redistributable packages, at the risk of displaying false positives. If you decide to activate this option, take the time to verify the results found by the search (files and folders found using this option are marked "(EXPERIMENTAL!!)" in their description, eg "(EXPERIMENTAL!!) MS DirectX (9.c) "). 81 | notice.registerRemoteRedistDefFiles=Improve Steam Cleaner performance by adding URL of files that contain redistribuable packages patterns. 82 | notice.downloadRemoteRedistDefFiles=Download remote files that contain redistribuable packages patterns. 83 | download.errormsg.remoteRedistDefFiles=cannot download remote redist definitions file '{0}' 84 | download.warningbox.remoteRedistDefFiles=Cannot download or process some files, ignoring them: 85 | download.warningbox.title.remoteRedistDefFiles=Warning 86 | download.complete=Download complete 87 | yes=是 88 | no=否 89 | 90 | 91 | [W_DELETE] 92 | title=删除所有选择的项目 93 | info.deleteFolder=删除目录: {0} ... 94 | info.error=Error 95 | info.success=OK 96 | info.deleteFile=删除文件: {0} ... 97 | button.close=关闭 98 | button.deleteNow=选择的文件已经全部删除! 99 | button.deleteNow.finished=已删除! 100 | info.title=(日志文件): 101 | info.spaceSaved=节约了 {0} MB空间 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=检查更新 106 | button.downloadLatestVersion=下载最新版本 107 | button.close=关闭 108 | info.updateAvailable=你可以更新到最新版本。 109 | info.alreadyUpToDate=你正在使用最新版本。 110 | error.contact.url=网络连接错误,请检查你的网络设置。 111 | info.latestVersion=最新版本是: {0} 112 | info.yourVersion=你使用的版本是: {0} 113 | info.check.working=正在检查更新... 114 | button.changelog=更新日志 115 | button.download=下载最新版本 116 | dialog.cantdownload.message.part1=无法自动下载文件。 117 | dialog.cantdownload.message.part2=你将被重定向到TikiOne的GitHub主页,请手动下载安装。 118 | dialog.cantdownload.title=请手动下载 119 | dialog.downloadok.message=升级文件已下载完毕,请重新启动来完成更新 120 | dialog.downloadok.title=新版本已下载 -------------------------------------------------------------------------------- /dist2/conf/i18n/zh-hk.ini: -------------------------------------------------------------------------------- 1 | name=Traditional Chinese(繁體中文) 2 | translator=based on version of wbsdty33/further edited by tskonetwo 3 | 4 | 5 | [W_ABOUT] 6 | title=TikiOne Steam Cleaner 7 | button.close=關閉 8 | frameTitle=關於TikiOne Steam Cleaner 9 | dep1=本程式採用GNU 寬通用公共許可證(LGPL2.1) 10 | dev=基於Eclipse(http://www.eclipse.org/)和Java 8 (http://www.java.com)開發 11 | website2=Personal DevBlog: https://github.com/jonathanlermitage 12 | website1=TikiOne WebSite: https://github.com/jonathanlermitage 13 | author=Author: Jonathan Lermitage (jonathan.lermitage@gmail.com) 14 | icon.donate=想捐款支持開發者嗎? 15 | 16 | 17 | [W_MAIN] 18 | title.newVersionMsg=[發現新版本: {0}] 19 | error.find.steamDir=(找不到Steam安裝目錄) 20 | label.steamDir=Steam安裝路徑: 21 | menu.about=About TikiOne Steam Cleaner 22 | menu.checkForUpdates=檢查更新 23 | menu.help=幫助 24 | menu.tools=工具 25 | menu.options=選項 26 | menu.exit=退出 27 | menu.file=文件 28 | button.removeSelectedItems=刪除所有選擇的項目 29 | button.locateSteam=自動搜索Steam安裝目錄 30 | button.locateSteamManually=... 31 | button.search.working=搜索中... 32 | button.search=搜索 33 | redistList.item.folders=個目錄 34 | redistList.item.folderUppercase=目錄 35 | redistList.item.folder=目錄 36 | redistList.item.files=個文件 37 | redistList.item.fileUpperCase=文件 38 | redistList.item.file=文件 39 | redistList.title=尋找到可刪除的檔: 40 | redistTable.col.title.title=標題 41 | redistTable.col.title.size=大小 (MB) 42 | redistTable.col.title.path=路徑 43 | redistTable.col.title.select=選擇 44 | listing.step2.folders.details=EXAM (FOLDERS) 45 | listing.step2.files.details=EXAM (FILES) 46 | listing.step1.details=LISTING 47 | listing.step1=列表中...(步驟1/2) 48 | button.add.custom.folder=加入列表 49 | button.rem.custom.folder=從列表中移除 50 | label.custom.folders.list=自訂目錄: 51 | icon.social.googleplus=Google+ profile of TikiOne's author 52 | icon.social.facebook=TikiOne's Facebook 主頁 53 | version.title={0} release 54 | errmsg.cantfindsteamdir= 55 | errmsg.notsteamdir=所選擇的資料夾不是Steam安裝目錄,請重新選擇! 56 | 57 | [W_OPTIONS] 58 | title=選項 59 | button.close=取消 60 | button.validate=確定 61 | button.downloadRedist=下載定義檔 62 | label.downloadRedist=定義檔更新連結(一行一個URL): 63 | tab.options=選項 64 | tab.experimental=實驗性功能 65 | tab.expWarning=警告:這些實驗性功能隨時可能會更改、中止或取消。因此,使用前請三思! 66 | optionLine.language=語言選擇: 67 | optionLine.searchMaxDepth=搜索目錄深度: 68 | optionLine.definitionFiles=定義檔更新連結(一行一個URL): 69 | optionLine.saveLogToFile=在程式的log目錄保存日誌檔 70 | optionLine.enableDebug=在程式的log目錄保存日誌檔 71 | optionLine.checkForUpdatesAtStartup=啟動時檢查程式更新 72 | optionLine.listOnlyFromVDF=列出在VDF文件中的可轉散發套件包 73 | optionLine.includeExpRedistPatterns=搜索更多的可轉散發套件包(實驗性功能) 74 | notice.language=語言更改之後,重新開機程式才能生效。 75 | notice.searchMaxDepth=設置搜索資料夾的深度(數值越大,搜索效果越好,但耗時會更長) 76 | notice.saveLogToFile=將保存你所刪除的可轉散發套件包於日誌文件中(在程式的log目錄)。 77 | notice.enableDebug=保存該程序可能會產生的錯誤和警告,以上功能僅適用於調試。 78 | notice.listOnlyFromVDF=Steam遊戲通常有可轉散發套件包的安裝列表。這個列表將被存儲到一些VDF文件之中。選擇“是”來檢測那些出現在VDF文件中的可轉散發套件包。 79 | notice.checkForUpdatesAtStartup=啟動時檢查程式更新,如果發現新版本會在標題列顯示。 80 | notice.includeExpRedistPatterns=實驗性功能可以檢測出更多的可轉散發套件包,但有誤報的風險。如果您決定開啟此選項,請花時間來驗證通過搜索找到的結果(使用此選項檢測出的文件和文件夾將在描述中被標記為“(實驗!)“如被標記為(”(實驗!)“MS DirectX( 9.C))。 81 | notice.registerRemoteRedistDefFiles=通過添加可辨識可轉散發套件的定義檔來改善本程式的效能。 82 | notice.downloadRemoteRedistDefFiles=下載可辨識可轉散發套件的定義檔。 83 | download.errormsg.remoteRedistDefFiles=無法下載的遠程定義檔的數目為 '{0}' 84 | download.warningbox.remoteRedistDefFiles=正在忽略一些無法下載或處理的文件: 85 | download.warningbox.title.remoteRedistDefFiles=警告! 86 | download.complete=下載完畢 87 | yes=是 88 | no=否 89 | 90 | 91 | [W_DELETE] 92 | title=刪除所有選擇的項目 93 | info.deleteFolder=刪除目錄: {0} ... 94 | info.error=Error 95 | info.success=OK 96 | info.deleteFile=刪除檔: {0} ... 97 | button.close=關閉 98 | button.deleteNow=選擇的檔已經全部刪除! 99 | button.deleteNow.finished=已刪除! 100 | info.title=(日誌檔): 101 | info.spaceSaved=節約了 {0} MB空間 102 | 103 | 104 | [W_CHECKFORUPDATES] 105 | frameTitle=檢查更新 106 | button.downloadLatestVersion=下載最新版本 107 | button.close=關閉 108 | info.updateAvailable=你可以更新到最新版本。 109 | info.alreadyUpToDate=你正在使用最新版本。 110 | error.contact.url=網路連接錯誤,請檢查你的網路設置。 111 | info.latestVersion=最新版本是: {0} 112 | info.yourVersion=你使用的版本是: {0} 113 | info.check.working=正在檢查更新... 114 | button.changelog=更新日誌 115 | button.download=下載最新版本 116 | dialog.cantdownload.message.part1=無法自動下載檔案。 117 | dialog.cantdownload.message.part2=你將被重定向到TikiOne的GitHub主頁,請手動下載安裝。 118 | dialog.cantdownload.title=請手動下載 119 | dialog.downloadok.message=升級檔已下載完畢,請重新啟動來完成更新 120 | dialog.downloadok.title=新版本已下載 121 | -------------------------------------------------------------------------------- /dist2/conf/tikione-steam-cleaner_dangerous-items.ini: -------------------------------------------------------------------------------- 1 | [AUTOEXCLUDE_PATTERNS] 2 | folderPatterns="^\p{Alpha}:\\windows.*"\ 3 | "^\p{Alpha}:\\users\\all\p{Space}users\\package\p{Space}cache.*"\ 4 | "^\p{Alpha}:\\program\p{Space}files\p{Space}\(x86\)\\microsoft.*"\ 5 | "^\p{Alpha}:\\program\p{Space}files\\microsoft.*"\ 6 | "^\p{Alpha}:\\programdata.*"\ 7 | "^\p{Alpha}:\\users\\all\p{Space}users.*"\ 8 | ".*appdata\\roaming.*"\ 9 | ".*appdata\\local.*"\ 10 | ".*steamapps\\downloading.*"\ 11 | ".*galaxyclient\\games.*"\ 12 | ".*steamapps\\common\\penumbra.*" 13 | -------------------------------------------------------------------------------- /dist2/news.txt: -------------------------------------------------------------------------------- 1 | 2 | The TikiOne website is alive thanks to your donations only 3 | (I won't introduce ads or toolbars like Ask.com: TikiOne is 4 | free and open source, I'll never make money with it). 5 | 6 | Check http://sourceforge.net/p/tikione/donate for PayPal donations. 7 | Thx! 8 | 9 | ~Jonathan Lermitage 10 | -------------------------------------------------------------------------------- /dist2/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | START PROGRAM 3 | ------------- 4 | Simply launch "tikione-steam-cleaner-portable.bat" to start TikiOne Steam Cleaner in portable mode. 5 | 6 | 7 | INFO ABOUT PORTABILITY 8 | ---------------------- 9 | Profile files will be stored in the subfolder ".tikione", so you can move the application 10 | everywhere you want, it's fully portable. 11 | 12 | 13 | IF YOU ALREADY HAVE JAVA ON YOUR SYSTEM 14 | --------------------------------------- 15 | Please note that if you already installed Java 8 (32-bits or 64-bits) or better, you can delete 16 | the "jre" subfolder of TikiOne Steam Cleaner. This way, it will use your version of Java. 17 | 18 | 19 | CUSTOM LISTS OF REDIST PATTERNS 20 | ------------------------------- 21 | Since version 3.0.0, you can use custom redist patterns. 22 | 23 | -> Go to the "Options/General" dialog and add the URL of a remote custom definition patterns file. 24 | 25 | -> To create a custom residt patterns files, look at the "tikione-steam-cleaner_patterns.ini" 26 | file and rework it. Host it on the Internet (on GitHub, BitBucket, Sourceforge, your website...) 27 | and share its url: users simply have to register its URL in TikiOne Steam Cleaner. 28 | 29 | 30 | 31 | Regards, 32 | Jonathan Lermitage 33 | -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner-NoJRE.nsi: -------------------------------------------------------------------------------- 1 | Name "TikiOne Steam Cleaner" 2 | OutFile "TikiOne Steam Cleaner Setup.exe" 3 | InstallDir "$PROGRAMFILES\TikiOne Steam Cleaner" 4 | InstallDirRegKey HKLM "Software\TikiOneSteamCleaner" "Install_Dir" 5 | RequestExecutionLevel admin 6 | 7 | Page Directory 8 | Page InstFiles 9 | UninstPage uninstConfirm 10 | UninstPage instfiles 11 | 12 | Section "install" 13 | setOutPath $INSTDIR 14 | delete "$INSTDIR\CHANGELOG.HTML" 15 | delete "$INSTDIR\news.txt" 16 | delete "$INSTDIR\tikione-steam-cleaner.bat" 17 | delete "$INSTDIR\tikione-steam-cleaner.ico" 18 | delete "$INSTDIR\tikione-steam-cleaner.jar" 19 | delete "$INSTDIR\tikione-steam-cleaner.png" 20 | rmDir /r "$INSTDIR\conf" 21 | rmDir /r "$INSTDIR\jre" 22 | rmDir /r "$INSTDIR\lib" 23 | rmDir /r "$INSTDIR\license" 24 | rmDir /r "$INSTDIR\log" 25 | file news.txt 26 | file tikione-steam-cleaner.bat 27 | file tikione-steam-cleaner.ico 28 | file tikione-steam-cleaner.jar 29 | file tikione-steam-cleaner.png 30 | file /r conf 31 | file /r lib 32 | file /r license 33 | createDirectory "$SMPROGRAMS\TikiOne Steam Cleaner" 34 | createShortCut "$SMPROGRAMS\TikiOne Steam Cleaner\TikiOne Steam Cleaner.lnk" "$INSTDIR\tikione-steam-cleaner.bat" "" "$INSTDIR\tikione-steam-cleaner.ico" 35 | WriteRegStr HKLM "Software\TikiOneSteamCleaner" "Install_Dir" "$\"$INSTDIR\uninstall.exe$\"" 36 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "DisplayName" "TikiOne Steam Cleaner" 37 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" 38 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "Publisher" "Jonathan Lermitage" 39 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "NoModify" 1 40 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "NoRepair" 1 41 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" 42 | writeUninstaller "$INSTDIR\uninstall.exe" 43 | createShortCut "$SMPROGRAMS\TikiOne Steam Cleaner\Uninstall.lnk" "$INSTDIR\uninstall.exe" 44 | SectionEnd 45 | 46 | Section "uninstall" 47 | DeleteRegKey HKLM "SOFTWARE\TikiOneSteamCleaner" 48 | DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" 49 | delete "$INSTDIR\news.txt" 50 | delete "$INSTDIR\tikione-steam-cleaner.bat" 51 | delete "$INSTDIR\tikione-steam-cleaner.ico" 52 | delete "$INSTDIR\tikione-steam-cleaner.jar" 53 | delete "$INSTDIR\tikione-steam-cleaner.png" 54 | rmDir /r "$INSTDIR\conf" 55 | rmDir /r "$INSTDIR\jre" 56 | rmDir /r "$INSTDIR\lib" 57 | rmDir /r "$INSTDIR\license" 58 | rmDir /r "$INSTDIR\log" 59 | delete "$SMPROGRAMS\TikiOne Steam Cleaner\TikiOne Steam Cleaner.lnk" 60 | delete "$SMPROGRAMS\TikiOne Steam Cleaner\Uninstall.lnk" 61 | rmDir "$SMPROGRAMS\TikiOne Steam Cleaner" 62 | delete "$INSTDIR\uninstall.exe" 63 | rmDir $INSTDIR 64 | SectionEnd 65 | -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner-portable-debug.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem --------------------------------------------------------------------------------------------------------------------------- 3 | rem TikiOne Steam Cleaner start-up script. 4 | rem Used to launch TikiOne Steam Cleaner with the bundled JVM (if exists) or the operating system's JVM. 5 | rem --------------------------------------------------------------------------------------------------------------------------- 6 | 7 | cd %~dp0% 8 | 9 | set "OPATH=%PATH%" 10 | set "PATH=%cd%\jre\bin\;%~dp0%\jre\bin\" 11 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre8\bin\" 12 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre9\bin\" 13 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre10\bin\" 14 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre\bin\" 15 | set "PATH=%PATH%;C:\Program Files\Java\jre8\bin\" 16 | set "PATH=%PATH%;C:\Program Files\Java\jre9\bin\" 17 | set "PATH=%PATH%;C:\Program Files\Java\jre10\bin\" 18 | set "PATH=%PATH%;C:\Program Files\Java\jre\bin\" 19 | set "PATH=%PATH%;%OPATH%" 20 | 21 | start "" "javaw.exe" "-jar" "-splash:tikione-steam-cleaner.png" "-Xms32m" "-Xmx512m" "-XX:-HeapDumpOnOutOfMemoryError" "-XX:HeapDumpPath=crashdump.hprof" "tikione-steam-cleaner.jar" "enablePortablemode" 22 | -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner-portable.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem --------------------------------------------------------------------------------------------------------------------------- 3 | rem TikiOne Steam Cleaner start-up script. 4 | rem Used to launch TikiOne Steam Cleaner with the bundled JVM (if exists) or the operating system's JVM. 5 | rem --------------------------------------------------------------------------------------------------------------------------- 6 | 7 | cd %~dp0% 8 | 9 | set "OPATH=%PATH%" 10 | set "PATH=%cd%\jre\bin\;%~dp0%\jre\bin\" 11 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre8\bin\" 12 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre9\bin\" 13 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre10\bin\" 14 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre\bin\" 15 | set "PATH=%PATH%;C:\Program Files\Java\jre8\bin\" 16 | set "PATH=%PATH%;C:\Program Files\Java\jre9\bin\" 17 | set "PATH=%PATH%;C:\Program Files\Java\jre10\bin\" 18 | set "PATH=%PATH%;C:\Program Files\Java\jre\bin\" 19 | set "PATH=%PATH%;%OPATH%" 20 | 21 | start "" "javaw.exe" "-jar" "-splash:tikione-steam-cleaner.png" "-Xms32m" "-Xmx512m" "tikione-steam-cleaner.jar" "enablePortablemode" 22 | -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem --------------------------------------------------------------------------------------------------------------------------- 3 | rem TikiOne Steam Cleaner start-up script. 4 | rem Used to launch TikiOne Steam Cleaner with the bundled JVM (if exists) or the operating system's JVM. 5 | rem --------------------------------------------------------------------------------------------------------------------------- 6 | 7 | cd %~dp0% 8 | 9 | set "OPATH=%PATH%" 10 | set "PATH=%cd%\jre\bin\;%~dp0%\jre\bin\" 11 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre8\bin\" 12 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre9\bin\" 13 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre10\bin\" 14 | set "PATH=%PATH%;C:\Program Files (x86)\Java\jre\bin\" 15 | set "PATH=%PATH%;C:\Program Files\Java\jre8\bin\" 16 | set "PATH=%PATH%;C:\Program Files\Java\jre9\bin\" 17 | set "PATH=%PATH%;C:\Program Files\Java\jre10\bin\" 18 | set "PATH=%PATH%;C:\Program Files\Java\jre\bin\" 19 | set "PATH=%PATH%;%OPATH%" 20 | 21 | start "" "javaw.exe" "-jar" "-splash:tikione-steam-cleaner.png" "-Xms32m" "-Xmx512m" "tikione-steam-cleaner.jar" 22 | -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/tikione-steam-cleaner.ico -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner.nsi: -------------------------------------------------------------------------------- 1 | Name "TikiOne Steam Cleaner" 2 | OutFile "TikiOne Steam Cleaner Setup.exe" 3 | InstallDir "$PROGRAMFILES\TikiOne Steam Cleaner" 4 | InstallDirRegKey HKLM "Software\TikiOneSteamCleaner" "Install_Dir" 5 | RequestExecutionLevel admin 6 | 7 | Page Directory 8 | Page InstFiles 9 | UninstPage uninstConfirm 10 | UninstPage instfiles 11 | 12 | Section "install" 13 | setOutPath $INSTDIR 14 | delete "$INSTDIR\CHANGELOG.HTML" 15 | delete "$INSTDIR\news.txt" 16 | delete "$INSTDIR\tikione-steam-cleaner.bat" 17 | delete "$INSTDIR\tikione-steam-cleaner.ico" 18 | delete "$INSTDIR\tikione-steam-cleaner.jar" 19 | delete "$INSTDIR\tikione-steam-cleaner.png" 20 | rmDir /r "$INSTDIR\conf" 21 | rmDir /r "$INSTDIR\jre" 22 | rmDir /r "$INSTDIR\lib" 23 | rmDir /r "$INSTDIR\license" 24 | rmDir /r "$INSTDIR\log" 25 | file news.txt 26 | file tikione-steam-cleaner.bat 27 | file tikione-steam-cleaner.ico 28 | file tikione-steam-cleaner.jar 29 | file tikione-steam-cleaner.png 30 | file /r conf 31 | file /r jre 32 | file /r lib 33 | file /r license 34 | createDirectory "$SMPROGRAMS\TikiOne Steam Cleaner" 35 | createShortCut "$SMPROGRAMS\TikiOne Steam Cleaner\TikiOne Steam Cleaner.lnk" "$INSTDIR\tikione-steam-cleaner.bat" "" "$INSTDIR\tikione-steam-cleaner.ico" 36 | WriteRegStr HKLM "Software\TikiOneSteamCleaner" "Install_Dir" "$\"$INSTDIR\uninstall.exe$\"" 37 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "DisplayName" "TikiOne Steam Cleaner" 38 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" 39 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "Publisher" "Jonathan Lermitage" 40 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "NoModify" 1 41 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "NoRepair" 1 42 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" 43 | writeUninstaller "$INSTDIR\uninstall.exe" 44 | createShortCut "$SMPROGRAMS\TikiOne Steam Cleaner\Uninstall.lnk" "$INSTDIR\uninstall.exe" 45 | SectionEnd 46 | 47 | Section "uninstall" 48 | DeleteRegKey HKLM "SOFTWARE\TikiOneSteamCleaner" 49 | DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TikiOneSteamCleaner" 50 | delete "$INSTDIR\news.txt" 51 | delete "$INSTDIR\tikione-steam-cleaner.bat" 52 | delete "$INSTDIR\tikione-steam-cleaner.ico" 53 | delete "$INSTDIR\tikione-steam-cleaner.jar" 54 | delete "$INSTDIR\tikione-steam-cleaner.png" 55 | rmDir /r "$INSTDIR\conf" 56 | rmDir /r "$INSTDIR\jre" 57 | rmDir /r "$INSTDIR\lib" 58 | rmDir /r "$INSTDIR\license" 59 | rmDir /r "$INSTDIR\log" 60 | delete "$SMPROGRAMS\TikiOne Steam Cleaner\TikiOne Steam Cleaner.lnk" 61 | delete "$SMPROGRAMS\TikiOne Steam Cleaner\Uninstall.lnk" 62 | rmDir "$SMPROGRAMS\TikiOne Steam Cleaner" 63 | delete "$INSTDIR\uninstall.exe" 64 | rmDir $INSTDIR 65 | SectionEnd 66 | -------------------------------------------------------------------------------- /dist2/tikione-steam-cleaner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/dist2/tikione-steam-cleaner.png -------------------------------------------------------------------------------- /misc/logo_apache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/misc/logo_apache.png -------------------------------------------------------------------------------- /misc/logo_intellij.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/misc/logo_intellij.png -------------------------------------------------------------------------------- /misc/logo_java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/misc/logo_java.png -------------------------------------------------------------------------------- /misc/logo_maven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/misc/logo_maven.png -------------------------------------------------------------------------------- /misc/logo_netbeans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/misc/logo_netbeans.png -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 4.0.0 5 | 6 | fr.tikione 7 | steamcleaner 8 | jar 9 | 10 | 3.0.8 11 | Steam Cleaner 12 | 13 | 14 | 1.8 15 | 1.8 16 | 1.8 17 | UTF-8 18 | UTF-8 19 | 20 | 21 | 22 | 23 | 24 | commons-io 25 | commons-io 26 | 2.6 27 | 28 | 29 | 30 | log4j 31 | log4j 32 | 1.2.17 33 | 34 | 35 | 36 | org.projectlombok 37 | lombok 38 | 1.18.2 39 | provided 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | org.apache.maven.plugins 49 | maven-jar-plugin 50 | 2.6 51 | 52 | 53 | 54 | fr.tikione.steam.cleaner.Main 55 | true 56 | lib/ 57 | 58 | 59 | tikione-steam-cleaner 60 | dist2 61 | 62 | 63 | 64 | 65 | org.apache.maven.plugins 66 | maven-dependency-plugin 67 | 2.10 68 | 69 | 70 | install 71 | 72 | copy-dependencies 73 | 74 | 75 | dist2/lib 76 | provided 77 | 78 | 79 | 80 | 81 | 82 | 83 | org.apache.maven.plugins 84 | maven-clean-plugin 85 | 3.0.0 86 | 87 | true 88 | 89 | 90 | 91 | 92 | org.apache.maven.plugins 93 | maven-install-plugin 94 | 2.5.2 95 | 96 | true 97 | 98 | 99 | 100 | 101 | org.apache.maven.plugins 102 | maven-compiler-plugin 103 | 3.6.0 104 | 105 | true 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/InfinitiveLoopException.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.ini; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Indicates an infinitive loop. It can be a pair of shortcuts that calls them one another, that could initiate an infinitive loop. 7 | */ 8 | public class InfinitiveLoopException 9 | extends Exception 10 | implements Serializable { 11 | 12 | /** Serial version UID. */ 13 | private static final long serialVersionUID = 4052546955101609848L; 14 | 15 | /** 16 | * Constructs an instance of InfinitiveLoopException with the specified detail message. 17 | * 18 | * @param msg the detail message. 19 | */ 20 | public InfinitiveLoopException(String msg) { 21 | super(msg); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Provides main classes to work with INI files. 3 | */ 4 | package fr.tikione.ini; 5 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/util/AbstractLineReader.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.ini.util; 2 | 3 | import java.io.Closeable; 4 | import java.io.IOException; 5 | 6 | /** 7 | * This class provides a wrapper for readers, with line reading support. Therefore, this wrapper is able to detect the doubtless new line 8 | * character(s): Carriage Return and/or Line Feed. 9 | */ 10 | public abstract class AbstractLineReader implements Closeable { 11 | 12 | /** Initial average line length (in bytes). */ 13 | private static final int AVG_LINE_LEN = 512; 14 | 15 | private final StringBuilder buffer = new StringBuilder(AVG_LINE_LEN); 16 | 17 | /** Carriage Return characters counter. */ 18 | private int nbCR = 0; 19 | 20 | /** Line Feed characters counter. */ 21 | private int nbLF = 0; 22 | 23 | /** The first character read after the latest new line. */ 24 | private char nextLineFirstChar; 25 | 26 | /** Indicate if the first character after the latest new line is already read. */ 27 | private boolean isFirstCharRead = false; 28 | 29 | /** Indicate a sequence of two consecutive carriage return characters. */ 30 | private boolean secondCR = false; 31 | 32 | /** 33 | * Close the input stream given with the constructor. 34 | * 35 | * @throws IOException if an I/O error occurs while closing the input stream. 36 | */ 37 | @Override 38 | public abstract void close() 39 | throws IOException; 40 | 41 | /** 42 | * Return the new line characters combination CR (Carriage Return), LF (Line Feed) or CRLF according to the InputStream 43 | * object given to the current AbstractLineReader object. It is based on the number of apparition of each new line 44 | * character.
45 | * If CR and LF have appears the same number of times, the result is CRLF, otherwise the most used character is returned.
46 | * This method needs the {@link #readLine()} method to be called enough times in order to calculate the right number of each new 47 | * line characters apparition.
48 | * If this method has not been called, the result is the platform's new line characters. 49 | * 50 | * @return the new line character(s) according to the current LineReader object. 51 | */ 52 | public String getNewLineStr() { 53 | String newLineStr; 54 | if (0 == nbCR && 0 == nbLF) { 55 | newLineStr = FileHelper.getPlatformNewLine(); 56 | } else if (nbCR == nbLF) { 57 | newLineStr = "\r\n"; 58 | } else if (nbCR > nbLF) { 59 | newLineStr = "\r"; 60 | } else { 61 | newLineStr = "\n"; 62 | } 63 | return newLineStr; 64 | } 65 | 66 | /** 67 | * Read a single character. 68 | * 69 | * @return The character read, as an integer in the range 0 to 65535 (0x00-0xffff), or -1 if the end of the stream has 70 | * been reached. 71 | * @throws IOException If an I/O error occurs. 72 | */ 73 | protected abstract int read() 74 | throws IOException; 75 | 76 | /** 77 | * Read a line of text. 78 | * 79 | * @return A String containing the contents of the line, not including any line-termination characters, or null if the end of the 80 | * stream has been reached. 81 | * @throws IOException if an I/O error occurs. 82 | */ 83 | @SuppressWarnings("NestedAssignment") 84 | public String readLine() 85 | throws IOException { 86 | int rchar; 87 | boolean charRead = false; 88 | boolean readLine = false; 89 | if (secondCR) { 90 | charRead = true; 91 | secondCR = false; 92 | } else { 93 | if (isFirstCharRead) { 94 | buffer.append(nextLineFirstChar); 95 | isFirstCharRead = false; 96 | } 97 | while (!readLine && (rchar = read()) != -1) { 98 | char crchar = (char) rchar; 99 | charRead = true; 100 | if ((char) rchar == StringHelper.LINE_FEED) { 101 | nbLF++; 102 | readLine = true; 103 | } else if (crchar == StringHelper.CARRIAGE_RETURN) { 104 | nbCR++; 105 | readLine = true; 106 | int nextChar = read(); 107 | char cnextChar = (char) nextChar; 108 | if (StringHelper.LINE_FEED == cnextChar) { 109 | nbLF++; 110 | isFirstCharRead = false; 111 | } else { 112 | nextLineFirstChar = cnextChar; 113 | isFirstCharRead = true; 114 | } 115 | } else { 116 | buffer.append(crchar); 117 | } 118 | } 119 | } 120 | String resLine = charRead || isFirstCharRead ? buffer.toString() : null; 121 | buffer.delete(0, buffer.length()); 122 | return resLine; 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/util/FileHelper.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.ini.util; 2 | 3 | /** 4 | * This class offers many usual file operations. 5 | */ 6 | public class FileHelper { 7 | 8 | /** Suppresses default constructor, ensuring non-instantiability. */ 9 | private FileHelper() { 10 | } 11 | 12 | /** 13 | * Get platform's default new line character(s), usually CR, LF, or CR+LF. 14 | * 15 | * @return new line character(s). 16 | */ 17 | public static String getPlatformNewLine() { 18 | return System.getProperty("line.separator"); 19 | } 20 | 21 | /** 22 | * Get platform's default file encoding. 23 | * 24 | * @return encoding. 25 | */ 26 | public static String getPlatformEncoding() { 27 | return System.getProperty("file.encoding"); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/util/IniHelper.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.ini.util; 2 | 3 | /** 4 | * Utility class for INI parsing. 5 | */ 6 | public class IniHelper { 7 | 8 | /** Suppresses default constructor, ensuring non-instantiability. */ 9 | private IniHelper() { 10 | } 11 | 12 | /** 13 | * Gets the key name and value in a key affectation line. 14 | * 15 | * @param line the INI line. 16 | * @param affectation characters used to separate keys from values. 17 | * @return a table of two strings: the first contains the key name, the second contains the key value. If it is an invalid 18 | * affectation line (no affectation symbol), null is returned. 19 | */ 20 | public static String[] extractKeyNameAndValueFromLine(String line, String[] affectation) { 21 | String[] res = null; 22 | String affectationFound = StringHelper.mostLeft(line, affectation); 23 | if (affectationFound != null) { 24 | int affectationPos = line.indexOf(affectationFound); 25 | String key = StringHelper.tTrim(line.substring(0, affectationPos)); 26 | String value = StringHelper.tTrim(line.substring(affectationPos + affectationFound.length())); 27 | res = new String[]{key, value}; 28 | } 29 | return res; 30 | } 31 | 32 | /** 33 | * Gets the section name from a section declaration line (typically in "[section]", "section" is returned). 34 | * 35 | * @param line the line. 36 | * @param sectionStart characters used to represent a section starting. 37 | * @param sectionEnd characters used to represent a section ending. 38 | * @return the section name. If it is an invalid section line (no section declaration), null is returned. 39 | */ 40 | public static String extractSectionNameFromLine(String line, String[] sectionStart, String[] sectionEnd) { 41 | String res = null; 42 | String tline = StringHelper.tTrim(line); 43 | if (2 < tline.length() && StringHelper.strStartsWith(tline, sectionStart) && StringHelper.strEndsWith(tline, sectionEnd)) { 44 | String secStartFound = StringHelper.mostLeft(tline, sectionStart); 45 | String secEndFound = StringHelper.mostRight(tline, sectionEnd); 46 | int start = tline.indexOf(secStartFound); 47 | int end = tline.indexOf(secEndFound); 48 | res = StringHelper.tTrim(tline.substring(start + 1, end)); 49 | } 50 | return res; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/util/InputstreamLineReader.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.ini.util; 2 | 3 | import java.io.IOException; 4 | import java.io.InputStream; 5 | import java.io.InputStreamReader; 6 | import java.io.UnsupportedEncodingException; 7 | 8 | /** 9 | * This class provides a wrapper for java.io.InputStream reader, with line reading support. Therefore, this wrapper is able to 10 | * detect the doubtless new line characters: Carriage Return and/or Line Feed. 11 | */ 12 | public class InputstreamLineReader extends AbstractLineReader { 13 | 14 | /** Wrapped input stream. */ 15 | private final InputStream inputStream; 16 | 17 | /** Wrapped input stream reader. */ 18 | private final InputStreamReader reader; 19 | 20 | /** 21 | * Create an InputstreamLineReader so that it uses InputStream as its input stream. 22 | * 23 | * @param inputStream input stream. 24 | * @param encoding file encoding. 25 | * @throws UnsupportedEncodingException if file encoding is not supported. 26 | */ 27 | public InputstreamLineReader(InputStream inputStream, String encoding) 28 | throws UnsupportedEncodingException { 29 | super(); 30 | this.inputStream = inputStream; 31 | reader = new InputStreamReader(inputStream, encoding); 32 | } 33 | 34 | @Override 35 | public void close() 36 | throws IOException { 37 | reader.close(); 38 | inputStream.close(); 39 | } 40 | 41 | @Override 42 | protected int read() 43 | throws IOException { 44 | return reader.read(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/util/MapHelper.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.ini.util; 2 | 3 | import java.util.Map; 4 | import java.util.Map.Entry; 5 | import java.util.Set; 6 | import java.util.regex.Pattern; 7 | 8 | /** 9 | * Utility class for Map manipulations. 10 | */ 11 | public class MapHelper { 12 | 13 | /** Suppresses default constructor, ensuring non-instantiability. */ 14 | private MapHelper() { 15 | } 16 | 17 | /** 18 | * Add all the content of the second map to the first one, with a deep copy of the entries. This is like 19 | * the Map.addAll method, with a deep copy of the entries objects instead of a simple 20 | * copy of their reference. 21 | * 22 | * @param copy the destination map to copy the original map's content. 23 | * @param original the map to copy content. 24 | */ 25 | public static void deepCopyMapBooleans(Map copy, Map original) { 26 | for (Entry entry : original.entrySet()) { 27 | copy.put(entry.getKey(), entry.getValue().booleanValue()); 28 | } 29 | } 30 | 31 | /** 32 | * Add all the content of the second map to the first one, with a deep copy of the entries. This is like 33 | * the Map.addAll method, with a deep copy of the entries objects instead of a simple 34 | * copy of their reference. 35 | * 36 | * @param copy the destination map to copy the original map's content. 37 | * @param original the map to copy content. 38 | */ 39 | public static void deepCopyMapIntegers(Map copy, Map original) { 40 | for (Entry entry : original.entrySet()) { 41 | copy.put(entry.getKey(), entry.getValue().intValue()); 42 | } 43 | } 44 | 45 | /** 46 | * Add all the content of the second map to the first one, with a deep copy of the entries. This is like 47 | * the Map.addAll method, with a deep copy of the entries objects instead of a simple 48 | * copy of their reference. 49 | * 50 | * @param copy the destination map to copy the original map's content. 51 | * @param original the map to copy content. 52 | */ 53 | public static void deepCopyMapFloats(Map copy, Map original) { 54 | for (Entry entry : original.entrySet()) { 55 | copy.put(entry.getKey(), entry.getValue().floatValue()); 56 | } 57 | } 58 | 59 | /** 60 | * Add all the content of the second map to the first one, with a deep copy of the entries. This is like 61 | * the Map.addAll method, with a deep copy of the entries objects instead of a simple 62 | * copy of their reference. 63 | * 64 | * @param copy the destination map to copy the original map's content. 65 | * @param original the map to copy content. 66 | */ 67 | public static void deepCopyMapStringTables(Map copy, Map original) { 68 | for (Entry entry : original.entrySet()) { 69 | copy.put(entry.getKey(), entry.getValue().clone()); 70 | } 71 | } 72 | 73 | /** 74 | * Add all the content of the second map to the first one, with a deep copy of the entries. This is like 75 | * the Map.addAll method, with a deep copy of the entries objects instead of a simple 76 | * copy of their reference. 77 | * 78 | * @param copy the destination map to copy the original map's content. 79 | * @param original the map to copy content. 80 | */ 81 | public static void deepCopyMapPatterns(Map copy, Map original) { 82 | for (Entry entry : original.entrySet()) { 83 | copy.put(entry.getKey(), Pattern.compile(entry.getValue().pattern())); 84 | } 85 | } 86 | 87 | /** 88 | * Indicate if two Map<String, String[]> are equivalent. 89 | * 90 | * @param map1 the first map. 91 | * @param map2 the second map. 92 | * @return true if the two maps have the same content, regardless of their keys order. Otherwise false. 93 | */ 94 | public static boolean mapsStringTablesEqual(Map map1, Map map2) { 95 | boolean equals = true; 96 | if (map1.keySet().equals(map2.keySet())) { 97 | Set> set1 = map1.entrySet(); 98 | CHECK_ENTRIES: 99 | for (Entry entry1 : set1) { 100 | String[] table1 = entry1.getValue(); 101 | String[] table2 = map2.get(entry1.getKey()); 102 | if (table1.length == table2.length) { 103 | for (int nStr = 0; nStr < table1.length; nStr++) { 104 | if (!table1[nStr].equals(table2[nStr])) { 105 | equals = false; 106 | break CHECK_ENTRIES; 107 | } 108 | } 109 | } else { 110 | equals = false; 111 | break CHECK_ENTRIES; 112 | } 113 | } 114 | } else { 115 | equals = false; 116 | } 117 | return equals; 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/ini/util/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Provides utility classes. 3 | */ 4 | package fr.tikione.ini.util; 5 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/Main.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.steam.cleaner.gui.dialog.JFrameMain; 5 | import fr.tikione.steam.cleaner.util.Log; 6 | 7 | import javax.swing.*; 8 | import java.io.File; 9 | import java.io.IOException; 10 | import java.nio.charset.StandardCharsets; 11 | import java.util.Arrays; 12 | import java.util.Locale; 13 | 14 | /** 15 | * Application launcher. 16 | */ 17 | public class Main { 18 | 19 | public static final String CONF_ENCODING = StandardCharsets.UTF_8.name(); 20 | public static final String CONF_NEWLINE = "\r\n"; 21 | public static boolean ARG_PORTABLE; 22 | 23 | /** 24 | * The application launcher. Starts GUI. 25 | * 26 | * @param args command-line arguments. 27 | */ 28 | public static void main(String[] args) { 29 | 30 | // Detect portable mode. 31 | ARG_PORTABLE = Arrays.asList(args).contains("enablePortablemode"); 32 | 33 | // Detect bundled JVM. 34 | File jre = new File("./jre/"); 35 | boolean bundledJvm = jre.isDirectory() && jre.exists(); 36 | 37 | Log.info("-------------------------------------------------"); 38 | Log.info("Application started; version is " + Version.VERSION 39 | + "; default encoding is " + CONF_ENCODING 40 | + "; default locale is " + Locale.getDefault().toString() 41 | + "; portableMode " + (ARG_PORTABLE ? "enabled" : "disabled") 42 | + "; bundledJVM " + (bundledJvm ? "present" : "not found, will use system JVM")); 43 | try { 44 | javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); 45 | } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { 46 | Log.error(e); 47 | } 48 | try { 49 | new JFrameMain().setVisible(true); 50 | } catch (IOException | InfinitiveLoopException ex) { 51 | Log.error(ex); 52 | } 53 | } 54 | 55 | /** Suppresses default constructor, ensuring non-instantiability. */ 56 | private Main() { 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/Version.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner; 2 | 3 | public class Version { 4 | 5 | public static final int MAJOR = 3; 6 | public static final int MINOR = 0; 7 | public static final int PATCH = 8; 8 | public static final String VERSION = MAJOR + "." + MINOR + "." + PATCH; 9 | 10 | private Version() { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/gui/dialog/JDialogCheckForUpdates.form: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/gui/dialog/JDialogDeletionDirect.form: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/CountryLanguage.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * UI language handler. 8 | */ 9 | @AllArgsConstructor 10 | @Getter 11 | public class CountryLanguage { 12 | 13 | /** Language code. */ 14 | private final String code; 15 | 16 | /** Language name. */ 17 | private final String desc; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/FileComparator.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import java.io.File; 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | /** 8 | * This class performs analysis on files. 9 | */ 10 | public class FileComparator { 11 | 12 | private final List files; 13 | 14 | private final List redistsPatterns; 15 | 16 | private final List checkedFiles; 17 | 18 | private final boolean onFiles; 19 | 20 | public FileComparator(List files, List redistsPatterns, List checkedFiles, boolean onFiles) { 21 | this.files = Collections.unmodifiableList(files); 22 | this.redistsPatterns = Collections.unmodifiableList(redistsPatterns); 23 | this.checkedFiles = checkedFiles; 24 | this.onFiles = onFiles; 25 | } 26 | 27 | public final void start() 28 | throws InterruptedException { 29 | int nbfiles = files.size(); 30 | //Log.info("debug: FileComparator >> number of files or folders to check: " + nbfiles); 31 | if (nbfiles > 0) { 32 | int startIdx = 0; 33 | int endIdx = nbfiles - 1; 34 | //Log.info("debug: FileComparator >> startIdx=" + startIdx + ", endIdx=" + endIdx); 35 | for (int pos = startIdx; pos <= endIdx; pos++) { 36 | Redist candidate = FileUtils.checkFile(files.get(pos), redistsPatterns); 37 | if (candidate != null) { 38 | if (onFiles ? candidate.getFile().isFile() : candidate.getFile().isDirectory()) { 39 | if (!checkedFiles.contains(candidate)) { 40 | checkedFiles.add(candidate); 41 | } 42 | } 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/FileUtils.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import fr.tikione.ini.util.StringHelper; 4 | import fr.tikione.steam.cleaner.gui.dialog.JFrameMain; 5 | import java.io.File; 6 | import java.io.IOException; 7 | import java.util.Collection; 8 | import java.util.List; 9 | import java.util.regex.Pattern; 10 | import javax.swing.*; 11 | 12 | /** 13 | * File utilities. 14 | */ 15 | public class FileUtils { 16 | 17 | /** Suppresses default constructor, ensuring non-instantiability. */ 18 | private FileUtils() { 19 | } 20 | 21 | /** 22 | * List all files and folders of a specific folder with a recursive search. 23 | * 24 | * @param jframe the frame to show progress. 25 | * @param files the collection of files and folder to complete with results. 26 | * @param folders the base paths to initiate research from. 27 | * @param depth the recursive search depth. 28 | * @param dangerousFolders list of folders patterns to exclude. 29 | */ 30 | public static void listDir(JFrame jframe, Collection files, Collection folders, int depth, 31 | final List dangerousFolders) { 32 | String frameTitle = jframe.getTitle(); 33 | try { 34 | for (File folder : folders) { 35 | Log.info("Folder to scan: '" + folder.getAbsolutePath() + '\''); 36 | try { 37 | if (!folder.exists()) { 38 | Log.info("Skipped path: '" + folder.getAbsolutePath() + "', this path doesn't exist"); 39 | continue; 40 | } 41 | if (!folder.isDirectory()) { 42 | Log.info("Skipped path: '" + folder.getAbsolutePath() + "', this path is not a directory"); 43 | continue; 44 | } 45 | files.addAll(org.apache.commons.io.FileUtils.listFiles(folder, null, false)); 46 | File[] subFolders; 47 | subFolders = folder.listFiles((File pathname) -> { 48 | boolean accept; 49 | if (pathname.isDirectory()) { 50 | accept = true; 51 | for (Pattern dangerousPatt : dangerousFolders) { 52 | if (StringHelper.checkRegex(pathname.getAbsolutePath(), dangerousPatt)) { 53 | accept = false; 54 | Log.info("Skipped hazardous place: '" + pathname + "'"); 55 | break; 56 | } 57 | } 58 | } else { 59 | accept = false; 60 | } 61 | return accept; 62 | }); 63 | if (depth > 0 && subFolders != null) { 64 | for (File subFolder : subFolders) { 65 | if (JFrameMain.isCLOSING_APP()) { 66 | break; 67 | } 68 | files.add(subFolder); 69 | listDirNoRecount(jframe, files, subFolder, depth - 1, dangerousFolders); // FIXME needs optimization (duplicated code: listDirNoRecount) 70 | } 71 | } 72 | } catch (Exception ex) { 73 | Log.error(ex); 74 | } 75 | } 76 | } finally { 77 | jframe.setTitle(frameTitle); 78 | } 79 | } 80 | 81 | /** 82 | * List all files and folders of a specific folder with a recursive search. 83 | * 84 | * @param files the collection of files and folder to complete with results. 85 | * @param folder the base path to initiate research from. 86 | * @param depth the recursive search depth. 87 | * @param dangerousFolders list of folders patterns to exclude. 88 | */ 89 | private static void listDirNoRecount(final JFrame jframe, Collection files, File folder, int depth, 90 | final List dangerousFolders) { 91 | jframe.setTitle(folder.getAbsolutePath() + File.separatorChar); 92 | files.addAll(org.apache.commons.io.FileUtils.listFiles(folder, null, false)); 93 | File[] subFolders = folder.listFiles((File pathname) -> { 94 | boolean accept; 95 | if (pathname.isDirectory()) { 96 | accept = true; 97 | for (Pattern dangerousPatt : dangerousFolders) { 98 | if (StringHelper.checkRegex(pathname.getAbsolutePath(), dangerousPatt)) { 99 | accept = false; 100 | Log.info("Skipped hazardous place: '" + pathname + "'"); 101 | break; 102 | } 103 | } 104 | } else { 105 | accept = false; 106 | } 107 | return accept; 108 | }); 109 | if (depth > 0 && subFolders != null) { 110 | for (File subFolder : subFolders) { // FIXED avoid NPE on (protected) subFolders if custom dir. 111 | if (JFrameMain.isCLOSING_APP()) { 112 | break; 113 | } 114 | files.add(subFolder); 115 | listDirNoRecount(jframe, files, subFolder, depth - 1, dangerousFolders); 116 | } 117 | } 118 | } 119 | 120 | /** 121 | * Check if a file-name verifies one of the patterns in the patterns-collection. 122 | * 123 | * @param file the file to check. 124 | * @param redistsPatterns the patterns-collection. 125 | * @return the file if it verifies a pattern, otherwise null. 126 | */ 127 | public static Redist checkFile(File file, List redistsPatterns) { 128 | Redist checkedFiles = null; 129 | for (Redist redist : redistsPatterns) { 130 | Pattern pattern = redist.getCompiledPattern(); 131 | String fileName = file.getName(); 132 | if (pattern.matcher(fileName).find()) { 133 | checkedFiles = new Redist(file, redist.getDescription()); 134 | break; 135 | } 136 | } 137 | return checkedFiles; 138 | } 139 | 140 | /** 141 | * Delete a folder on the hard-drive. 142 | * 143 | * @param folder the folder to delete. 144 | * @return true if deletion is successful, otherwise false. 145 | */ 146 | public static boolean deleteFolder(File folder) { 147 | boolean deleted; 148 | try { 149 | if (folder.exists()) { 150 | org.apache.commons.io.FileUtils.deleteDirectory(folder); 151 | } 152 | deleted = true; 153 | } catch (IOException ex) { 154 | Log.error(ex); 155 | deleted = false; 156 | } 157 | return deleted; 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/GraphicsUtils.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import java.awt.*; 4 | 5 | /** 6 | * GUI utilities. 7 | */ 8 | public class GraphicsUtils { 9 | 10 | private static final Toolkit DEFAULT_TOOLKIT = Toolkit.getDefaultToolkit(); 11 | 12 | /** Suppresses default constructor, ensuring non-instantiability. */ 13 | private GraphicsUtils() { 14 | } 15 | 16 | /** 17 | * Center a frame. 18 | * 19 | * @param window the frame to center. 20 | */ 21 | public static void setFrameCentered(Window window) { 22 | Dimension screenSize = DEFAULT_TOOLKIT.getScreenSize(); 23 | final int screenWidth = screenSize.width; 24 | final int screenHeight = screenSize.height; 25 | int posX = (screenWidth / 2) - (window.getWidth() / 2); 26 | int posY = (screenHeight / 2) - (window.getHeight() / 2); 27 | window.setBounds(posX, posY, window.getWidth(), window.getHeight()); 28 | } 29 | 30 | /** 31 | * Set a frame's icon. 32 | * 33 | * @param window the frame to set icon. 34 | */ 35 | public static void setIcon(Window window) { 36 | window.setIconImage(DEFAULT_TOOLKIT.createImage(GraphicsUtils.class.getResource( 37 | "/fr/tikione/steam/cleaner/gui/icons/tikione-steam-cleaner-icon.png"))); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/Log.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import fr.tikione.steam.cleaner.util.conf.Config; 4 | import org.apache.log4j.Logger; 5 | import org.apache.log4j.PropertyConfigurator; 6 | 7 | import java.io.File; 8 | import java.io.FileReader; 9 | import java.io.IOException; 10 | import java.util.Properties; 11 | 12 | /** 13 | * Log file handler. 14 | */ 15 | public class Log { 16 | 17 | /** Default logger. */ 18 | private static Logger messagesLogger; 19 | 20 | static { 21 | try { 22 | Properties conf = new Properties(); 23 | File backupLog4j = new File("conf/backup/tikione-steam-cleaner_log4j.properties"); 24 | File userprofile = new File(Config.getProfilePath()); 25 | //noinspection ResultOfMethodCallIgnored 26 | userprofile.mkdirs(); 27 | File userLog4j = new File(userprofile.getAbsolutePath() + "/tikione-steam-cleaner_log4j.properties"); 28 | if (!userLog4j.exists()) { 29 | org.apache.commons.io.FileUtils.copyFile(backupLog4j, userLog4j); 30 | } 31 | conf.load(new FileReader(userLog4j)); 32 | conf.setProperty("log4j.appender.messages.File", Config.getProfilePath() + "/log/steamcleaner_messages.log"); 33 | PropertyConfigurator.configure(conf); 34 | messagesLogger = Logger.getLogger("fr.tikione.steam.cleaner.log.info"); 35 | } catch (IOException ex) { 36 | throw new RuntimeException("Cannot instantiate Log4j", ex); 37 | } 38 | } 39 | 40 | /** Suppresses default constructor, ensuring non-instantiability. */ 41 | private Log() { 42 | } 43 | 44 | /** 45 | * Log a message object with the INFO Level. 46 | * 47 | * @param message the emssage to log. 48 | */ 49 | public static void info(String message) { 50 | messagesLogger.info(message); 51 | } 52 | 53 | /** 54 | * Log a message object with the ERROR Level. 55 | * 56 | * @param ex the exception to log. 57 | */ 58 | public static void error(Throwable ex) { 59 | messagesLogger.error("", ex); 60 | } 61 | 62 | /** 63 | * Log a message object with the ERROR Level. 64 | * 65 | * @param message the emssage to log. 66 | * @param ex the exception to log. 67 | */ 68 | public static void error(String message, Throwable ex) { 69 | messagesLogger.error(message, ex); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/Redist.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import lombok.EqualsAndHashCode; 4 | import lombok.Getter; 5 | 6 | import java.io.File; 7 | import java.util.regex.Pattern; 8 | 9 | /** 10 | * A description of a redistributable package file or folder found on the system storage -OR- 11 | * a file or folder name pattern that represents a single or a set of redistributable packages. 12 | */ 13 | @Getter 14 | @EqualsAndHashCode(exclude = {"description", "compiledPattern"}) 15 | public class Redist { 16 | 17 | private final String description; 18 | 19 | private Pattern compiledPattern; 20 | 21 | private File file; 22 | 23 | /** 24 | * Define a file or folder name pattern that represents a single or a set of redistributable packages. Used to find 25 | * redistributable packages files and folders on the system storage. 26 | * 27 | * @param pattern the pattern (a regular expression) that represents the redistributable package. 28 | * @param description a description of the redistributable package. 29 | */ 30 | public Redist(String pattern, String description) { 31 | this.description = description; 32 | this.compiledPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); 33 | } 34 | 35 | /** 36 | * Define description of a redistributable package file or folder found on the system storage. 37 | * 38 | * @param file the redistributable package found on the system storage. 39 | * @param description a description of the redistributable package. 40 | */ 41 | public Redist(File file, String description) { 42 | this.file = file; 43 | this.description = description; 44 | } 45 | 46 | public double getSize() { 47 | long fsize; 48 | if (file.isFile()) { 49 | fsize = org.apache.commons.io.FileUtils.sizeOf(file); 50 | } else if (file.isDirectory()) { 51 | fsize = org.apache.commons.io.FileUtils.sizeOfDirectory(file); 52 | } else { 53 | fsize = 0; 54 | } 55 | double floatSize = fsize; 56 | floatSize /= (1024.0 * 1024.0); 57 | return floatSize; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/RedistTableModel.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import javax.swing.table.DefaultTableModel; 4 | 5 | /** 6 | * A table model for redistributable packages found on the hard drive. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class RedistTableModel extends DefaultTableModel { 10 | 11 | /** Table columns type. */ 12 | @SuppressWarnings({"unchecked", "rawtypes"}) 13 | private final Class[] types = new Class[]{Boolean.class, String.class, Double.class, String.class}; 14 | 15 | /** Indicates if table columns are editable. */ 16 | private final boolean[] canEdit = new boolean[]{true, false, false, false}; 17 | 18 | @Override 19 | public Class getColumnClass(int columnIndex) { 20 | return types[columnIndex]; 21 | } 22 | 23 | @Override 24 | public boolean isCellEditable(int rowIndex, int columnIndex) { 25 | return canEdit[columnIndex]; 26 | } 27 | 28 | /** 29 | * Table model for redistributable packages found. 30 | * 31 | * @param translation messages translation handler. 32 | */ 33 | public RedistTableModel(Translation translation) { 34 | super(new Object[][]{}, new String[]{ 35 | translation.getString("W_MAIN", "redistTable.col.title.select"), 36 | translation.getString("W_MAIN", "redistTable.col.title.path"), 37 | translation.getString("W_MAIN", "redistTable.col.title.size"), 38 | translation.getString("W_MAIN", "redistTable.col.title.title")}); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/Translation.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.ini.Ini; 5 | import fr.tikione.steam.cleaner.Main; 6 | import fr.tikione.steam.cleaner.util.conf.I18nEncoding; 7 | 8 | import java.io.CharConversionException; 9 | import java.io.File; 10 | import java.io.IOException; 11 | import java.util.ArrayList; 12 | import java.util.List; 13 | import java.util.regex.PatternSyntaxException; 14 | 15 | /** 16 | * Translation handler. 17 | */ 18 | public class Translation { 19 | 20 | private static final String DEFAULT_LANGCODE = "en"; 21 | 22 | private static final String CONF_BASEPATH = "conf/i18n/"; 23 | 24 | public static final String CONF_BASEPATH_FLAGS = CONF_BASEPATH + "flags/"; 25 | 26 | private static final String CONF_EXT = ".ini"; 27 | 28 | private Ini iniLang; 29 | 30 | public static final String SEC_WMAIN = "W_MAIN"; 31 | 32 | public static final String SEC_WABOUT = "W_ABOUT"; 33 | 34 | public static final String SEC_WCHECKFORUPDATES = "W_CHECKFORUPDATES"; 35 | 36 | public static final String SEC_DELETE = "W_DELETE"; 37 | 38 | public static final String SEC_OPTIONS = "W_OPTIONS"; 39 | 40 | public Translation(String localeCode) { 41 | try { 42 | iniLang = new Ini(); 43 | String lngEncoding = I18nEncoding.getInstance().getLngEncoding(localeCode); 44 | iniLang.load(new File(CONF_BASEPATH + localeCode + ".ini"), lngEncoding); 45 | Log.info("Loaded language '" + localeCode + "' with " + lngEncoding + " encoding"); 46 | } catch (IOException | PatternSyntaxException | InfinitiveLoopException ex) { 47 | Log.error(ex); 48 | } 49 | } 50 | 51 | /** 52 | * Get a translated string denoted by an identifier and a section name. 53 | * 54 | * @param section the section name. 55 | * @param key the string identifier. 56 | * @return the translated string. 57 | */ 58 | public String getString(String section, String key) { 59 | try { 60 | return iniLang.getKeyValue(" ??? ", section, key); 61 | } catch (CharConversionException | InfinitiveLoopException ex) { 62 | Log.error(ex); 63 | return " ??? "; 64 | } 65 | } 66 | 67 | public static List getAvailLangList() 68 | throws IOException, 69 | InfinitiveLoopException { 70 | List langList = new ArrayList<>(2); 71 | File i18nFolder = new File(CONF_BASEPATH); 72 | File[] langFiles = i18nFolder.listFiles((File dir, String name) -> name.endsWith(CONF_EXT) && !name.equalsIgnoreCase("encoding.ini")); 73 | Ini langIni = new Ini(); 74 | if (langFiles != null) { 75 | for (File langFile : langFiles) { 76 | langIni.load(langFile, Main.CONF_ENCODING); 77 | String langDesc = langIni.getKeyValue(" ??? ", "", "name"); 78 | String langFilename = langFile.getName(); 79 | langFilename = langFilename.substring(0, langFilename.indexOf('.')); 80 | langList.add(new CountryLanguage(langFilename, langDesc)); 81 | } 82 | } 83 | return langList; 84 | } 85 | 86 | @SuppressWarnings("CallToThreadDumpStack") 87 | public static String getSystemLangIfAvailable(List availLangList) { 88 | String sysLang = DEFAULT_LANGCODE; 89 | try { 90 | String userLanguage = System.getProperty("user.language"); 91 | String userCountry = System.getProperty("user.country"); 92 | String userLocale = userLanguage + "_" + userCountry; 93 | for (CountryLanguage lang : availLangList) { 94 | String langCode = lang.getCode(); 95 | if (langCode.equalsIgnoreCase(userLocale) || langCode.equalsIgnoreCase(userLanguage)) { 96 | sysLang = langCode; 97 | break; 98 | } 99 | } 100 | } catch (Exception ex) { 101 | Log.error(ex); 102 | sysLang = DEFAULT_LANGCODE; 103 | } 104 | return sysLang; 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/UpdateManager.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.steam.cleaner.Version; 5 | import fr.tikione.steam.cleaner.util.conf.Config; 6 | 7 | import java.awt.*; 8 | import java.io.BufferedReader; 9 | import java.io.IOException; 10 | import java.io.InputStreamReader; 11 | import java.net.*; 12 | 13 | /** 14 | * Manager for program's updates. 15 | */ 16 | public class UpdateManager { 17 | 18 | /** Suppresses default constructor, ensuring non-instantiability. */ 19 | private UpdateManager() { 20 | } 21 | 22 | /** 23 | * Get the latest program's online version number. 24 | * 25 | * @return latest version number. 26 | */ 27 | public static String getLatestVersion() { 28 | String latestVersion; 29 | try { 30 | URL url = new URL(Config.getInstance().getLatestVersionUrl()); 31 | HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 32 | conn.setRequestMethod("GET"); 33 | try (BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()))) { 34 | String line = rd.readLine(); 35 | if (line != null) { 36 | latestVersion = line; 37 | if (latestVersion.startsWith("fr.tikione.steam.cleaner=")) { 38 | latestVersion = latestVersion.substring("fr.tikione.steam.cleaner=".length()); 39 | } else { 40 | Log.error(new java.io.StreamCorruptedException("Bad online version file")); 41 | latestVersion = Version.VERSION; 42 | } 43 | } else { 44 | Log.error(new java.io.StreamCorruptedException("Empty online version file")); 45 | latestVersion = Version.VERSION; 46 | } 47 | } 48 | } catch (ConnectException | UnknownHostException ex) { 49 | Log.error("Cannot contact the update center", ex); 50 | latestVersion = Version.VERSION; 51 | } catch (InfinitiveLoopException | IOException ex) { 52 | Log.error(ex); 53 | latestVersion = Version.VERSION; 54 | } 55 | return latestVersion; 56 | } 57 | 58 | /** 59 | * Indicates if the current program's version number is up to date, compared to the given one. 60 | * 61 | * @param latestVersion version number to compare current with. 62 | * @return {@code true} if current version is up to date, otherwise {@code false}. 63 | */ 64 | public static boolean IsUpToDate(String latestVersion) { 65 | int c1 = Version.MAJOR; 66 | int c2 = Version.MINOR; 67 | int c3 = Version.PATCH; 68 | String[] asOnlineVersion = normalizeVersionStr(latestVersion).split("\\.", -1); 69 | int o1 = Integer.parseInt(asOnlineVersion[0]); 70 | int o2 = Integer.parseInt(asOnlineVersion[1]); 71 | int o3 = Integer.parseInt(asOnlineVersion[2]); 72 | int iCurrentVersion = c3 + 1_000 * c2 + 1_000_000 * c1; 73 | int iOnlineVersion = o3 + 1_000 * o2 + 1_000_000 * o1; 74 | return iCurrentVersion >= iOnlineVersion; 75 | } 76 | 77 | /** 78 | * Normalize a version number. Per example, "01.08.10" becomes "1.8.10". 79 | * 80 | * @param version version number to normalize. 81 | * @return normalized version number. 82 | */ 83 | public static String normalizeVersionStr(String version) { 84 | String[] currentVersion = version.split("\\.", -1); 85 | int v1 = Integer.parseInt(currentVersion[0]); 86 | int v2 = Integer.parseInt(currentVersion[1]); 87 | int v3 = Integer.parseInt(currentVersion[2]); 88 | return v1 + "." + v2 + "." + v3; 89 | } 90 | 91 | /** 92 | * Launch the external web browser with the TikiOne Steam Cleaner download URL (on the GitHub.com website). 93 | */ 94 | public static void extBrowserGetLatestVersion() { 95 | extBrowser("https://github.com/jonathanlermitage/tikione-steam-cleaner/releases/latest"); 96 | } 97 | 98 | /** 99 | * Launch the external web browser with the TikiOne Steam Cleaner changelog file URL (on the GitHub.com website). 100 | */ 101 | public static void extBrowserGetLatestChangelog() { 102 | extBrowser("https://github.com/jonathanlermitage/tikione-steam-cleaner/blob/master/CHANGELOG.md"); 103 | } 104 | 105 | /** 106 | * Launches the default browser to display a URI. 107 | * 108 | * @param uri the URI to display. 109 | */ 110 | public static void extBrowser(String uri) { 111 | if (Desktop.isDesktopSupported()) { 112 | try { 113 | Desktop.getDesktop().browse(new URI(uri)); 114 | } catch (URISyntaxException | IOException ex) { 115 | Log.error(ex); 116 | } 117 | } 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/conf/CustomFolders.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util.conf; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.ini.Ini; 5 | import fr.tikione.steam.cleaner.Main; 6 | 7 | import java.io.CharConversionException; 8 | import java.io.File; 9 | import java.io.IOException; 10 | import java.util.Arrays; 11 | import java.util.Collections; 12 | import java.util.List; 13 | import java.util.regex.Matcher; 14 | 15 | /** 16 | * List of custom folders for redistributable packages research. 17 | */ 18 | public class CustomFolders { 19 | 20 | /** INI configuration file section : custom folders. */ 21 | private static final String CONFIG_CUSTOM_FOLDERS = "CUSTOM_FOLDERS"; 22 | 23 | /** INI configuration file key : custom folders. */ 24 | private static final String CONFIG_CUSTOM_FOLDERS__ITEM_LIST = "itemList"; 25 | 26 | /** File to use for configuration loading and saving. */ 27 | private final File configFile; 28 | 29 | /** Configuration object. */ 30 | private final Ini ini; 31 | 32 | private boolean updated = false; 33 | 34 | /** 35 | * Load application configuration file. A default configuration file is created if necessary. 36 | * 37 | * @throws IOException if an I/O error occurs while retrieving the internal default configuration file, or while writing this default 38 | * configuration file. 39 | */ 40 | public CustomFolders() 41 | throws IOException { 42 | File backupConfigFile = new File("conf/backup/tikione-steam-cleaner_custom-folders.ini"); 43 | File userprofile = new File(Config.getProfilePath()); 44 | //noinspection ResultOfMethodCallIgnored 45 | userprofile.mkdirs(); 46 | configFile = new File(userprofile.getAbsolutePath() + "/tikione-steam-cleaner_custom-folders.ini"); 47 | if (!configFile.exists()) { 48 | org.apache.commons.io.FileUtils.copyFile(backupConfigFile, configFile); 49 | } 50 | ini = new Ini(); 51 | ini.getConfig().enableParseLineConcat(false); 52 | ini.getConfig().enableReadUnicodeEscConv(false); 53 | ini.load(configFile, Main.CONF_ENCODING); 54 | } 55 | 56 | /** 57 | * Saves the unchecked items list into a file. 58 | * 59 | * @throws IOException if an I/O error occurs while writing the file. 60 | */ 61 | public void save() 62 | throws IOException { 63 | if (updated || !configFile.exists()) { 64 | ini.store(configFile, Main.CONF_ENCODING, Main.CONF_NEWLINE); 65 | } 66 | } 67 | 68 | /** 69 | * Get the list of unchecked items memorized from the file. 70 | * 71 | * @return the list of unchecked items. 72 | * @throws CharConversionException if an error occurs while retrieving the list from the file (invalid characters). 73 | * @throws InfinitiveLoopException if an error occurs while retrieving the list from the file (file parsing error). 74 | */ 75 | @SuppressWarnings("unchecked") 76 | public List getCustomFolders() 77 | throws CharConversionException, 78 | InfinitiveLoopException { 79 | String itemTable = ini.getKeyValue(null, CONFIG_CUSTOM_FOLDERS, CONFIG_CUSTOM_FOLDERS__ITEM_LIST); 80 | List res; 81 | if (itemTable == null) { 82 | res = Collections.EMPTY_LIST; 83 | } else { 84 | res = Arrays.asList(itemTable.split(Matcher.quoteReplacement("\""), 0)); 85 | } 86 | return res; 87 | } 88 | 89 | /** 90 | * Set the list of unchecked items to memorize. 91 | * 92 | * @param items the items to memorize. 93 | * @throws CharConversionException if an error occurs while setting the list from the file (invalid characters). 94 | * @throws InfinitiveLoopException if an error occurs while setting the list from the file (file parsing error). 95 | */ 96 | @SuppressWarnings("Duplicates") 97 | public void setCustomFolders(List items) 98 | throws CharConversionException, 99 | InfinitiveLoopException { 100 | List prevItems = getCustomFolders(); 101 | if (!prevItems.containsAll(items) || !items.containsAll(prevItems)) { 102 | updated = true; 103 | StringBuilder buffer = new StringBuilder(512); 104 | boolean first = true; 105 | for (String item : items) { 106 | if (first) { 107 | buffer.append(item); 108 | } else { 109 | buffer.append('\"').append(item); 110 | } 111 | first = false; 112 | } 113 | ini.setKeyValue(CONFIG_CUSTOM_FOLDERS, CONFIG_CUSTOM_FOLDERS__ITEM_LIST, buffer.toString()); 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/conf/DangerousItems.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util.conf; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.ini.Ini; 5 | import fr.tikione.steam.cleaner.Main; 6 | import fr.tikione.steam.cleaner.util.Log; 7 | 8 | import java.io.CharConversionException; 9 | import java.io.File; 10 | import java.io.IOException; 11 | import java.util.ArrayList; 12 | import java.util.List; 13 | import java.util.regex.Pattern; 14 | import java.util.regex.PatternSyntaxException; 15 | 16 | /** 17 | * List of items patterns to exclude from the search path. 18 | */ 19 | public class DangerousItems { 20 | 21 | private static final DangerousItems dangerousItems; 22 | 23 | /** INI configuration file section : unchecked items. */ 24 | private static final String CONFIG_AUTOEXCLUDE_PATTERNS = "AUTOEXCLUDE_PATTERNS"; 25 | 26 | /** INI configuration file key : unchecked items. */ 27 | private static final String CONFIG_AUTOEXCLUDE_PATTERNS__FOLDERS_LIST = "folderPatterns"; 28 | 29 | /** Configuration object. */ 30 | private static Ini ini; 31 | 32 | static { 33 | // Singleton creation. 34 | try { 35 | dangerousItems = new DangerousItems(); 36 | } catch (IOException ex) { 37 | Log.error(ex); 38 | throw new RuntimeException(ex); 39 | } 40 | } 41 | 42 | /** 43 | * Get the configuration handler as a singleton. 44 | * 45 | * @return the configuration handler singleton. 46 | */ 47 | public static synchronized DangerousItems getInstance() { 48 | return dangerousItems; 49 | } 50 | 51 | /** 52 | * Load application configuration file. 53 | * 54 | * @throws IOException if an I/O error occurs while retrieving the internal default configuration file. 55 | */ 56 | private DangerousItems() 57 | throws IOException { 58 | ini = new Ini(); 59 | ini.getConfig().enableParseLineConcat(true); 60 | ini.getConfig().enableReadUnicodeEscConv(true); 61 | ini.load(new File("conf/tikione-steam-cleaner_dangerous-items.ini"), Main.CONF_ENCODING); 62 | } 63 | 64 | public List getDangerousFolders() 65 | throws CharConversionException, 66 | InfinitiveLoopException { 67 | List dangerousFolders = new ArrayList<>(16); 68 | String[] keys = ini.getKeyValue("", CONFIG_AUTOEXCLUDE_PATTERNS, CONFIG_AUTOEXCLUDE_PATTERNS__FOLDERS_LIST).split("\"", 0); 69 | for (String pattern : keys) { 70 | if (pattern.length() > 0) { 71 | try { 72 | dangerousFolders.add(Pattern.compile(pattern, Pattern.CASE_INSENSITIVE)); 73 | } catch (PatternSyntaxException ex) { 74 | Log.error(ex); 75 | } 76 | } 77 | } 78 | return dangerousFolders; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/conf/I18nEncoding.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util.conf; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.ini.Ini; 5 | import fr.tikione.steam.cleaner.Main; 6 | import fr.tikione.steam.cleaner.util.Log; 7 | 8 | import java.io.CharConversionException; 9 | import java.io.File; 10 | import java.io.IOException; 11 | 12 | /** 13 | * I18n language files encoding handler. 14 | */ 15 | public class I18nEncoding { 16 | 17 | /** Singleton handler. */ 18 | private static final I18nEncoding i18nEncoding; 19 | 20 | /** Configuration object. */ 21 | private final Ini ini; 22 | 23 | static { 24 | // Singleton creation. 25 | try { 26 | i18nEncoding = new I18nEncoding(); 27 | } catch (IOException ex) { 28 | Log.error(ex); 29 | throw new RuntimeException(ex); 30 | } 31 | } 32 | 33 | /** 34 | * Get the configuration handler as a singleton. 35 | * 36 | * @return the configuration handler singleton. 37 | */ 38 | public static synchronized I18nEncoding getInstance() { 39 | return i18nEncoding; 40 | } 41 | 42 | /** 43 | * Load application configuration file. 44 | * 45 | * @throws IOException if an I/O error occurs while retrieving the internal default configuration file. 46 | */ 47 | private I18nEncoding() 48 | throws IOException { 49 | ini = new Ini(); 50 | ini.getConfig().enableParseLineConcat(true); 51 | ini.getConfig().enableReadUnicodeEscConv(true); 52 | ini.load(new File("conf/i18n/encoding.ini"), Main.CONF_ENCODING); 53 | } 54 | 55 | public String getLngEncoding(String locale) 56 | throws CharConversionException, 57 | InfinitiveLoopException { 58 | return ini.getKeyValue(Main.CONF_ENCODING, "", locale); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/conf/Patterns.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util.conf; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.ini.Ini; 5 | import fr.tikione.steam.cleaner.Main; 6 | import fr.tikione.steam.cleaner.util.Log; 7 | import fr.tikione.steam.cleaner.util.Redist; 8 | 9 | import java.io.CharConversionException; 10 | import java.io.File; 11 | import java.io.IOException; 12 | import java.util.ArrayList; 13 | import java.util.Arrays; 14 | import java.util.List; 15 | 16 | /** 17 | * Configuration handler. 18 | */ 19 | public class Patterns { 20 | 21 | public static final String REMOTE_DEFINITION_FILES_SEPARATOR = "##n##"; 22 | 23 | /** INI configuration file section : redistributable packages file and folder patterns. */ 24 | private static final String CONFIG_REDIST_PATTERNS = "REDISTRIBUTABLE_PACKAGES_PATTERNS"; 25 | 26 | /** INI configuration file key : redistributable package file patterns. */ 27 | private static final String CONFIG_REDIST_PATTERNS__FILE_PATTERNS = "redistFilePatterns"; 28 | 29 | /** INI configuration file key : redistributable package folder patterns. */ 30 | private static final String CONFIG_REDIST_PATTERNS__FOLDER_PATTERNS = "redistFolderPatterns"; 31 | 32 | /** INI configuration file key : redistributable package file patterns. */ 33 | private static final String CONFIG_REDIST_PATTERNS__FILE_PATTERNS_EXP = "experimentalRedistFilesPatterns"; 34 | 35 | /** INI configuration file key : redistributable package folder patterns. */ 36 | private static final String CONFIG_REDIST_PATTERNS__FOLDER_PATTERNS_EXP = "experimentalRedistFolderPatterns"; 37 | 38 | /** INI configuration file key : enable experimental patterns. */ 39 | private static final String CONFIG_REDIST_PATTERNS__ENABLE_EXP_PATTERNS = "enableExperimentalPatterns"; 40 | 41 | private static final String CONFIG_FILENAME = "tikione-steam-cleaner_patterns_rev244.ini"; 42 | 43 | /** Singleton handler. */ 44 | private static final Patterns config; 45 | 46 | /** File to use for configuration loading and saving. */ 47 | private final File configFile; 48 | 49 | /** Configuration object. */ 50 | private Ini ini; 51 | 52 | private List inis; 53 | 54 | private boolean updated = false; 55 | 56 | static { 57 | // Singleton creation. 58 | try { 59 | config = new Patterns(); 60 | } catch (IOException | InfinitiveLoopException ex) { 61 | Log.error(ex); 62 | throw new RuntimeException(ex); 63 | } 64 | } 65 | 66 | /** 67 | * Get the configuration handler as a singleton. 68 | * 69 | * @return the configuration handler singleton. 70 | */ 71 | public static synchronized Patterns getInstance() { 72 | return config; 73 | } 74 | 75 | /** 76 | * Load application configuration file. A default configuration file is created if necessary. 77 | * 78 | * @throws IOException if an I/O error occurs while retrieving the internal default configuration file, or while writing this default 79 | * configuration file. 80 | */ 81 | @SuppressWarnings("OverridableMethodCallInConstructor") 82 | private Patterns() 83 | throws IOException, InfinitiveLoopException { 84 | File backupConfigFile = new File("conf/backup/tikione-steam-cleaner_patterns.ini"); 85 | File userprofile = new File(Config.getProfilePath()); 86 | //noinspection ResultOfMethodCallIgnored 87 | userprofile.mkdirs(); 88 | configFile = new File(userprofile.getAbsolutePath() + "/" + CONFIG_FILENAME); 89 | if (!configFile.exists()) { 90 | org.apache.commons.io.FileUtils.copyFile(backupConfigFile, configFile); 91 | } 92 | 93 | reload(); 94 | } 95 | 96 | public void reload() 97 | throws IOException, InfinitiveLoopException { 98 | ini = new Ini(); 99 | ini.getConfig().enableParseLineConcat(true); 100 | ini.getConfig().enableReadUnicodeEscConv(true); 101 | ini.load(configFile, Main.CONF_ENCODING); 102 | 103 | inis = new ArrayList<>(8); 104 | inis.add(ini); 105 | inis.addAll(RemotePatterns.getInis()); 106 | } 107 | 108 | /** 109 | * Saves the configuration into a file. 110 | * 111 | * @throws IOException if an I/O error occurs while writing the file. 112 | */ 113 | public void save() 114 | throws IOException { 115 | if (updated) { 116 | ini.store(configFile, Main.CONF_ENCODING, Main.CONF_NEWLINE); 117 | } 118 | } 119 | 120 | public List getRedistFilePatternsAndDesc(boolean includeExp) 121 | throws CharConversionException, 122 | InfinitiveLoopException { 123 | List res = getRedistPatternsAndDesc(CONFIG_REDIST_PATTERNS__FILE_PATTERNS); 124 | if (includeExp) { 125 | List resAdd = getRedistPatternsAndDesc(CONFIG_REDIST_PATTERNS__FILE_PATTERNS_EXP); 126 | res.addAll(resAdd); 127 | } 128 | return res; 129 | } 130 | 131 | public List getRedistFolderPatternsAndDesc(boolean includeExp) 132 | throws CharConversionException, 133 | InfinitiveLoopException { 134 | List res = getRedistPatternsAndDesc(CONFIG_REDIST_PATTERNS__FOLDER_PATTERNS); 135 | if (includeExp) { 136 | List resAdd = getRedistPatternsAndDesc(CONFIG_REDIST_PATTERNS__FOLDER_PATTERNS_EXP); 137 | res.addAll(resAdd); 138 | } 139 | return res; 140 | } 141 | 142 | public boolean getEnableExperimentalPatterns() 143 | throws CharConversionException, 144 | InfinitiveLoopException { 145 | return Boolean.parseBoolean(ini.getKeyValue("false", CONFIG_REDIST_PATTERNS, CONFIG_REDIST_PATTERNS__ENABLE_EXP_PATTERNS)); 146 | } 147 | 148 | private List getRedistPatternsAndDesc(String configKey) 149 | throws CharConversionException, 150 | InfinitiveLoopException { 151 | List redistList = new ArrayList<>(8); 152 | List redistTokens = new ArrayList<>(64); 153 | for (Ini singleIni : inis) { 154 | String[] tokens = singleIni.getKeyValue("", CONFIG_REDIST_PATTERNS, configKey).split("\"", 0); 155 | redistTokens.addAll(Arrays.asList(tokens)); 156 | } 157 | boolean FileDescToggle = true; 158 | String redistName = null; 159 | String redtsiDescription; 160 | for (String redist : redistTokens) { 161 | if (redist.length() > 0) { // Skip first and last tokens. 162 | if (FileDescToggle) { 163 | redistName = redist; 164 | } else { 165 | redtsiDescription = redist; 166 | redistList.add(new Redist(redistName, redtsiDescription)); 167 | } 168 | FileDescToggle ^= true; 169 | } 170 | } 171 | return redistList; 172 | } 173 | 174 | public void setEnableExperimentalPatterns(boolean enable) { 175 | updated = true; 176 | ini.setKeyValue(CONFIG_REDIST_PATTERNS, CONFIG_REDIST_PATTERNS__ENABLE_EXP_PATTERNS, Boolean.toString(enable)); 177 | } 178 | } 179 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/conf/RemotePatterns.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util.conf; 2 | 3 | import fr.tikione.ini.Ini; 4 | import fr.tikione.steam.cleaner.Main; 5 | import fr.tikione.steam.cleaner.util.Log; 6 | import org.apache.commons.io.FileUtils; 7 | 8 | import java.io.File; 9 | import java.io.IOException; 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | import static fr.tikione.steam.cleaner.util.conf.Config.getProfilePath; 14 | 15 | /** 16 | * Configuration handler for remote Redist definitions files. 17 | */ 18 | @SuppressWarnings("ResultOfMethodCallIgnored") 19 | public class RemotePatterns { 20 | 21 | private static final String CONFIG_FOLDER = "remoteRedistDefinitions"; 22 | 23 | /** 24 | * Store new remote Redist definitions files and remove olderones. 25 | * @param contents content of new files. 26 | * @throws IOException if an IO error occurs. 27 | */ 28 | public static void store(List contents) throws IOException { 29 | File thirdpartyFiles = new File(getProfilePath(), CONFIG_FOLDER); 30 | thirdpartyFiles.mkdirs(); 31 | File[] oldFiles = thirdpartyFiles.listFiles(); 32 | if (null != oldFiles) { 33 | for (File oldFile : oldFiles) { 34 | oldFile.delete(); 35 | } 36 | } 37 | thirdpartyFiles.mkdirs(); 38 | for (String content : contents) { 39 | File configFile = new File(thirdpartyFiles, System.nanoTime() + ".ini"); 40 | FileUtils.write(configFile, content, Main.CONF_ENCODING); 41 | } 42 | } 43 | 44 | /** 45 | * Get all Ini related to remote Redist definitions files recently downloaded. 46 | * @return Ini objects. 47 | */ 48 | public static List getInis() { 49 | List inis = new ArrayList<>(8); 50 | File thirdpartyFiles = new File(getProfilePath(), CONFIG_FOLDER); 51 | if (thirdpartyFiles.exists()) { 52 | File[] iniFiles = thirdpartyFiles.listFiles(); 53 | if (null != iniFiles) { 54 | for (File iniFile : iniFiles) { 55 | try { 56 | Ini ini = new Ini(); 57 | ini.getConfig().enableParseLineConcat(true); 58 | ini.getConfig().enableReadUnicodeEscConv(true); 59 | ini.load(iniFile, Main.CONF_ENCODING); 60 | inis.add(ini); 61 | } catch (IOException ex) { 62 | Log.error("cannot load or parse ini file: " + iniFile.getAbsolutePath(), ex); 63 | } 64 | } 65 | } 66 | } 67 | return inis; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/fr/tikione/steam/cleaner/util/conf/UncheckedItems.java: -------------------------------------------------------------------------------- 1 | package fr.tikione.steam.cleaner.util.conf; 2 | 3 | import fr.tikione.ini.InfinitiveLoopException; 4 | import fr.tikione.ini.Ini; 5 | import fr.tikione.steam.cleaner.Main; 6 | 7 | import java.io.CharConversionException; 8 | import java.io.File; 9 | import java.io.IOException; 10 | import java.util.Arrays; 11 | import java.util.Collections; 12 | import java.util.List; 13 | import java.util.regex.Matcher; 14 | 15 | /** 16 | * List of unchecked items in the redistributable packages list. 17 | */ 18 | public class UncheckedItems { 19 | 20 | /** INI configuration file section : unchecked items. */ 21 | private static final String CONFIG_UNCHECKED_REDIST_ITEMS = "UNCHECKED_REDIST_ITEMS"; 22 | 23 | /** INI configuration file key : unchecked items. */ 24 | private static final String CONFIG_UNCHECKED_REDIST_ITEMS__ITEM_LIST = "itemList"; 25 | 26 | /** File to use for configuration loading and saving. */ 27 | private final File configFile; 28 | 29 | /** Configuration object. */ 30 | private final Ini ini; 31 | 32 | private boolean updated = false; 33 | 34 | /** 35 | * Load application configuration file. A default configuration file is created if necessary. 36 | * 37 | * @throws IOException if an I/O error occurs while retrieving the internal default configuration file, or while writing this default 38 | * configuration file. 39 | */ 40 | public UncheckedItems() 41 | throws IOException { 42 | File backupConfigFile = new File("conf/backup/tikione-steam-cleaner_unchecked-items.ini"); 43 | File userprofile = new File(Config.getProfilePath()); 44 | //noinspection ResultOfMethodCallIgnored 45 | userprofile.mkdirs(); 46 | configFile = new File(userprofile.getAbsolutePath() + "/tikione-steam-cleaner_unchecked-items.ini"); 47 | if (!configFile.exists()) { 48 | org.apache.commons.io.FileUtils.copyFile(backupConfigFile, configFile); 49 | } 50 | ini = new Ini(); 51 | ini.getConfig().enableParseLineConcat(false); 52 | ini.getConfig().enableReadUnicodeEscConv(false); 53 | ini.load(configFile, Main.CONF_ENCODING); 54 | } 55 | 56 | /** 57 | * Saves the unchecked items list into a file. 58 | * 59 | * @throws IOException if an I/O error occurs while writing the file. 60 | */ 61 | public void save() 62 | throws IOException { 63 | if (updated || !configFile.exists()) { 64 | ini.store(configFile, Main.CONF_ENCODING, Main.CONF_NEWLINE); 65 | } 66 | } 67 | 68 | /** 69 | * Get the list of unchecked items memorized from the file. 70 | * 71 | * @return the list of unchecked items. 72 | * @throws CharConversionException if an error occurs while retrieving the list from the file (invalid characters). 73 | * @throws InfinitiveLoopException if an error occurs while retrieving the list from the file (file parsing error). 74 | */ 75 | @SuppressWarnings("unchecked") 76 | public List getUncheckedItems() 77 | throws CharConversionException, 78 | InfinitiveLoopException { 79 | String itemTable = ini.getKeyValue(null, CONFIG_UNCHECKED_REDIST_ITEMS, CONFIG_UNCHECKED_REDIST_ITEMS__ITEM_LIST); 80 | List res; 81 | if (itemTable == null) { 82 | res = Collections.EMPTY_LIST; 83 | } else { 84 | res = Arrays.asList(itemTable.split(Matcher.quoteReplacement("\""), 0)); 85 | } 86 | return res; 87 | } 88 | 89 | /** 90 | * Set the list of unchecked items to memorize. 91 | * 92 | * @param items the items to memorize. 93 | * @throws CharConversionException if an error occurs while setting the list from the file (invalid characters). 94 | * @throws InfinitiveLoopException if an error occurs while setting the list from the file (file parsing error). 95 | */ 96 | @SuppressWarnings("Duplicates") 97 | public void setUncheckedItems(List items) 98 | throws CharConversionException, 99 | InfinitiveLoopException { 100 | List prevItems = getUncheckedItems(); 101 | if (!prevItems.containsAll(items) || !items.containsAll(prevItems)) { 102 | updated = true; 103 | StringBuilder buffer = new StringBuilder(512); 104 | boolean first = true; 105 | for (String item : items) { 106 | if (first) { 107 | buffer.append(item); 108 | } else { 109 | buffer.append('\"').append(item); 110 | } 111 | first = false; 112 | } 113 | ini.setKeyValue(CONFIG_UNCHECKED_REDIST_ITEMS, CONFIG_UNCHECKED_REDIST_ITEMS__ITEM_LIST, buffer.toString()); 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_about.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_add_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_add_folder.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_clean.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_del_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_del_folder.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_help.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_options.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_search.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_btn_update.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_stop_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/famfamfam_stop_search.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/patreon_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/patreon_text.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/paypal_donate_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/paypal_donate_btn.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_facebook.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_github.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_googleplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_googleplus.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_reddit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_reddit.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/social_twitter.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/tikione-steam-cleaner-icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/tikione-steam-cleaner-icon-small.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/icons/tikione-steam-cleaner-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/icons/tikione-steam-cleaner-icon.png -------------------------------------------------------------------------------- /src/main/resources/fr/tikione/steam/cleaner/gui/tikione-steam-cleaner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/src/main/resources/fr/tikione/steam/cleaner/gui/tikione-steam-cleaner.png -------------------------------------------------------------------------------- /src/main/resources/version.properties: -------------------------------------------------------------------------------- 1 | # 2 | # TikiOne INI, a pure Java library for configuration files management. 3 | # Copyright (C) 2008-2013 Jonathan Lermitage 4 | # 5 | # This library is free software; you can redistribute it and/or modify it under the terms of the 6 | # GNU Lesser General Public License as published by the Free Software Foundation; either version 7 | # 2.1 of the License, or (at your option) any later version. 8 | # 9 | # This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 10 | # without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 11 | # the GNU Lesser General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public License along with this 14 | # library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 15 | # Boston, MA 02111-1307 USA 16 | # 17 | 18 | # TikiOne INI version information: 19 | version.major=2 20 | version.minor=0 21 | version.patch=3 22 | version.string=2.0.3 23 | author.name=Jonathan Lermitage 24 | author.email=jonathan.lermitage@entreprise38.org 25 | license=GNU Lesser General Public License Version 2.1 26 | -------------------------------------------------------------------------------- /tikione-steam-cleaner-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonathanlermitage/tikione-steam-cleaner/3ceb03cc50fb92a567992ecf4cb50b8dde610195/tikione-steam-cleaner-banner.png -------------------------------------------------------------------------------- /uc/README.md: -------------------------------------------------------------------------------- 1 | ## Update Center 2 | 3 | Starting from release 2.5.6, TikiOne Steam Cleaner updater will download `latest_version.txt` file to detect the latest version available. 4 | This file was previously hosted on Sourceforge.net. 5 | -------------------------------------------------------------------------------- /uc/latest_version.txt: -------------------------------------------------------------------------------- 1 | fr.tikione.steam.cleaner=3.0.7 2 | -------------------------------------------------------------------------------- /uc/redist_patterns_base.ini: -------------------------------------------------------------------------------- 1 | 2 | [REDISTRIBUTABLE_PACKAGES_PATTERNS] 3 | redistFilePatterns="^gfwlivesetup\.exe$"MS Games For Windows Live"\ 4 | "^(vcredist){1}.*(\.exe)$"MS Visual C++ Redist"\ 5 | "^(physx){1}.+(systemsoftware.exe){1}$"NVidia PhysX"\ 6 | "^(arcadeinstallfull){1}.*(\.exe)$"GameSpy Arcade"\ 7 | "^gamespyinstaller220std\.exe$"GameSpy Arcade"\ 8 | "^(xna){1}.*(\.msi)$"MS XNA Framework Redist"\ 9 | "^xnafx40_redist\.msi$"MS XNA Framework Redist"\ 10 | "^(dotnet).*(setup\.exe)$"MS .NET Framework Redist"\ 11 | "^(dotnet).*(x86_x64\.exe)$"MS .NET Framework Redist (64-bit)"\ 12 | "^dotnetfx35\.exe$"MS .NET Framework Redist"\ 13 | "^openalweax\.exe$"OpenAL"\ 14 | "^dxwebsetup\.exe$"MS DirectX Web Installer"\ 15 | "^ndP451-kb2872776-x86-x64-allos-enu\.exe$"Takedown Red Sabre Redist"\ 16 | "^(rapture3d_){1}.*(game\.exe)$"Rapture 3D"\ 17 | "^amd_dcoptsetup\.exe$"AMD Dual-Core Optimizer"\ 18 | "^amd_dcoptsetup\.ex$"AMD Dual-Core Optimizer"\ 19 | "^msxml4-kb954430-enu\.exe$"MS XML Redist"\ 20 | "^msxml4-kb973688-enu\.exe$"MS XML Redist"\ 21 | "^wic_x64_enu\.exe$"MS .NET Framework Redist"\ 22 | "^wic_x86_enu\.exe$"MS .NET Framework Redist"\ 23 | "^xpsepsc-amd64-en-us\.exe$"MS .NET Framework Redist (64-bit)"\ 24 | "^xpsepsc-x86-en-us\.exe$"MS .NET Framework Redist"\ 25 | "^dotnetfx40_client_x86_x64\.exe$"MS .NET Framework Redist (64-bit)"\ 26 | "^netfx35_ia64\.exe$"MS .NET Framework Redist (Itanium)"\ 27 | "^netfx35_x64\.exe$"MS .NET Framework Redist (64-bit)"\ 28 | "^netfx35_x86\.exe$"MS .NET Framework Redist"\ 29 | "^setup_battleyearma2\.exe$"BattlEye Anti-Cheat Engine" 30 | redistFolderPatterns="^directx$"MS DirectX"\ 31 | "^dxredist$"MS DirectX"\ 32 | "^directx_redist$"MS DirectX"\ 33 | "^dx_redist_install$"MS DirectX"\ 34 | "^directxredist$"MS DirectX"\ 35 | "^dx\p{Space}redist$"MS DirectX"\ 36 | "^directx_jun_2010$"MS DirectX"\ 37 | "^directx_aug_2009$"MS DirectX"\ 38 | "^msvcrt$"MS Visual C++ Redist(s)"\ 39 | "^vcredist$"MS Visual C++ Redist(s)"\ 40 | "^g4w$"MS Games For Windows Live"\ 41 | "^dependencies$"Many redistributables"\ 42 | "^prerequisite(s)?$"Many redistributables"\ 43 | "^installer(s)?$"Many redistributables"\ 44 | "^redist(s)?$"Many redistributables"\ 45 | ".*_redist(s)?$"Many redistributables"\ 46 | ".*_installer(s)?$"Many redistributables"\ 47 | "^_commonredist(s)?$"Many redistributables"\ 48 | "^(_)+redist(s)?$"Many redistributables"\ 49 | "^ue3redist?$"Many UE3 redistributables"\ 50 | "^redistributable(s)?$"Many redistributables" 51 | -------------------------------------------------------------------------------- /uc/redist_patterns_xp.ini: -------------------------------------------------------------------------------- 1 | [REDISTRIBUTABLE_PACKAGES_PATTERNS] 2 | redistFilePatterns= 3 | redistFolderPatterns="^directx9c$"(EXPERIMENTAL!!) MS DirectX (9.c)"\ 4 | "^commonredist$"(EXPERIMENTAL!!) Many redistributables"\ 5 | "^3rd$"(EXPERIMENTAL!!) Many redistributables"\ 6 | "^ea\p{Space}help$"(EXPERIMENTAL!!) Help files"\ 7 | "^support$"(EXPERIMENTAL!!) Help and EULA files"\ 8 | "^install$"(EXPERIMENTAL!!) Many redistributables" 9 | --------------------------------------------------------------------------------