diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..df2916675 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,18 @@ + + +### Problem description + + +### Implementation description + + +### Screenshots + + +### Additional things + diff --git a/HACKING.md b/CONTRIBUTING.md similarity index 98% rename from HACKING.md rename to CONTRIBUTING.md index 6b711bd5a..84f526e4f 100644 --- a/HACKING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,30 @@ -# Hacking guide +# Contribution guide ## Introduction This document is a guide for developers who want to contribute to ImHex in any way. It contains information about the codebase, the build process and the general workflow. +## Making Changes + +### Adding new features + +If you'd like to add new features, the best way to start is by joining our Discord and telling us about your idea. We can then discuss the best way to implement it and how it should be integrated into ImHex or if it should be done in a separate plugin. + +There are standalone plugin templates that use ImHex as a submodule. You can find them here: +- https://github.com/WerWolv/ImHex-Cpp-Plugin-Template +- https://github.com/WerWolv/ImHex-Rust-Plugin-Template + +### Adding a new language + +If you'd like to support a new language in ImHex, the best way is by using the `dist/langtool.py` tool. It will create the necessary file for you and help you fill them out. +First, run the tool with `python3 dist/langtool.py create plugins/builtin/romfs/lang ` where `` is the ISO 639-1 code of your language. This will create a new file in the language directory. +Afterwards follow the prompts of the program to populate the entire file. Once you're done, rerun cmake and rebuild ImHex. Your language should now be available in the settings. + +### Updating an existing language + +If you'd like to add missing keys to an existing language, you can also use the `dist/langtool.py` tool. Run it with `python3 dist/langtool.py translate plugins/builtin/romfs/lang ` where `` is the ISO 639-1 code of the language. +This will one by one list all the missing translation keys that are present in the default translation file, and you can fill them in with the correct translation for your language. + ## Codebase ImHex is written in C++ and usually uses the latest compiler and standard library features available in gcc on all supported OSes. At the time of writing this is C++23. @@ -45,23 +66,3 @@ I personally use CLion for development since it makes configuring and building t ### macOS - Install all dependencies using brew and the `dist/Brewfile` script. -## Making Changes - -### Adding new features to ImHex - -If you'd like to add new features, the best way to start is by joining our Discord and telling us about your idea. We can then discuss the best way to implement it and how it should be integrated into ImHex or if it should be done in a separate plugin. - -There are standalone plugin templates that use ImHex as a submodule. You can find them here: -- https://github.com/WerWolv/ImHex-Cpp-Plugin-Template -- https://github.com/WerWolv/ImHex-Rust-Plugin-Template - -### Adding a new language - -If you'd like to support a new language in ImHex, the best way is by using the `dist/langtool.py` tool. It will create the necessary file for you and help you fill them out. -First, run the tool with `python3 dist/langtool.py create plugins/builtin/romfs/lang ` where `` is the ISO 639-1 code of your language. This will create a new file in the language directory. -Afterwards follow the prompts of the program to populate the entire file. Once you're done, rerun cmake and rebuild ImHex. Your language should now be available in the settings. - -### Updating an existing language - -If you'd like to add missing keys to an existing language, you can also use the `dist/langtool.py` tool. Run it with `python3 dist/langtool.py translate plugins/builtin/romfs/lang ` where `` is the ISO 639-1 code of the language. -This will one by one list all the missing translation keys that are present in the default translation file, and you can fill them in with the correct translation for your language. \ No newline at end of file diff --git a/README.md b/README.md index e579aab4a..356966827 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,9 @@ All dependencies that aren't bundled, can be installed using the dependency inst For more information, check out the [Compiling](/dist/compiling) guide. +## Contributing +See [Contributing](/CONTRIBUTING.md) + ## Plugin development To develop plugins for ImHex, use one of the following two templates projects to get started. You then have access to the entirety of libimhex as well as the ImHex API and the Content Registry to interact with ImHex or to add new content.