CSGO Demos Manager is an application to manage replays from the game Counter-Strike: Global Offensive. You can download the last release from http://csgo-demos-manager.com.
More screenshots and video are available at http://csgo-demos-manager.com.
- Generate data from demos (kills, deaths, round stats, damages...)
- Watch demos (Highlights / Lowlights from any perspective, rounds, stuffs...)
- Export data to Excel
- Comment your demos
- Generate heatmaps (Kills, shots, smokes...)
- Track VAC ban (A BOT send Windows notifications in background)
- Manage demos location
- Watch rounds from an animated map overview
- Display damages by hitbox
- Track your stats (overall stats and graphs)
- HLAE integration
- Download your last matchmaking demos
- Microsoft Visual Studio 2015 (C# 6 is required)
- Multilingual App Toolkit v4 (required to handle app translations)
- MVVM Light
- Mahapps
- DemoInfo
- Json.net
- Steam API (Optional, used to retrieve players data mainly for the suspects features)
- NPOI
- WriteableBitmapEx
- Telerik
- Protobuf-net
- boiler-writter
- SharpZipLib
- Install Telerik binaries
- Download the repository and extract it
- Launch the solution in Visual Studio
- Set the correct path for Telerik references if needed
- Copy / paste your Steam API key into the file "steam_api_key.txt". If you don't have a Steam API key, suspects features will not work and players avatar will not be fetched.
- The DemoInfo pre-release isn't properly signed. You have to download snremove and copy / paste it into the folder "bin/Debug" and "bin/Release" of demoinfo AND CSGO Demos Manager.
- Select the x86 platform configuration
- Build and start
You are free to contribute to the project. Please follow the AngularJS commit guidelines.
The application translation is done with the resources based system Microsoft Multilingual App Toolkit.
To translate the application in a specific language, the only files that you have to edit are XLIFF files (.xlf). These files are located in the folder "MultilingualResources" of each project.
The following projects have their own translations files:
- Core
- Bot
- Manager
- Services
For example, if you want to translate the app in Spanish, you will have to edit the following files:
- Core.es.xlf (from Core project)
- Services.es.xlf (from Services project)
- Manager.es.xlf (from Manager project)
- Bot.es.xlf (from Bot project)
- Install
- Download the zip
- Edit the .xlf files of your language ()
- Send me the .xlf files at ys.renaud@gmail.com
Please check issues to see if someone is already translating the app in your language and if it's not the case, create an issue to inform that you are working on it.
I assume you have some basic knowledge of Git / GitHub.
-
Install Git
-
Install Multilingual App Toolkit v4 or the XLIFF files editor of your choice
-
Fork the repository and clone it on your computer
-
Edit the .xlf files of your language (don't forget to update resources status: "Needs review" if you are not sure, "Final" otherwise)
-
(Optional) Test your translations by building the app
-
(Optional) Add your nickname to the translators array in the app.cs file. I will do it for you if you are not sure how to do it.
-
Commit your changes
git commit . -m "feat(locales): add mycountry translation"
or if it's for typo fixes:
git commit . -m "fix(locales): typo mycountry"
-
Push you changes to your repository
git push origin master
(I assume that you are on the master branch) -
Create a pull request
-
If your language files are missing, please create an issue, I will add all necessary files.
-
Some resources are displayed in the xlf editor but are not translatable. You can use the editor filter to hide it.
-
If you want to test your translations before commiting files, you have to setup your system to be able to build the application by yourself. Please follow the build instructions from the readme file.
-
Sometimes it's not easy to guess exactly where a string is used, I added some comments visible from the xlf editor to help you.
-
Some strings contains characters such as "{0}" or "{1}". These are placeholder for variables.
Example:
The string resource "DialogDemosHaveBeenDownloaded" is in English "{0} demo(s) have been downloaded.". It means that {0} will be replaced by the number of demos downloaded. For example "8 demo(s) have been downloaded."
-
XLIFF files have the ability to set a "status" to strings. By default the status is "New", when you are sure about your translation, you can change the status to "Final". If you are not sure, please set the status to "Needs Review".
-
Since English is the fallback language, if an existing resource from the English files changed, all others resources languages files are updated and the changed resources are set to "Needs review". You are free to check if some resources of your language have the status "Needs review" and create a pull request with the final translation.