Shinya Kitaoka e4b7c0
# How to contribute
Shinya Kitaoka e4b7c0
Phil 83b305
This document describes some points about the contribution process for OpenToonz.
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
## Pull-requests
Shinya Kitaoka e4b7c0
Phil 83b305
The OpenToonz organization loves any kind of your contributions, such as fixing typos and code refactoring.
Shinya Kitaoka e4b7c0
If you fixed or added something useful to the OpenToonz, please send pull-requests to us.
Shinya Kitaoka e4b7c0
We review the request, then we accept it, or add comments for rework, or decline it.
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
### Workflow
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
0. `fork` OpenToonz to your GitHub account from `opentoonz/opentoonz`.
Shinya Kitaoka e4b7c0
  - (use the `fork` button at the https://github.com/opentoonz/opentoonz)
Shinya Kitaoka e4b7c0
0. `clone` the repository.
Shinya Kitaoka e4b7c0
  - `git clone git@github.com:your-github-account/opentoonz.git`
Shinya Kitaoka e4b7c0
  - `git remote add upstream https://github.com/opentoonz/opentoonz.git`, additionally.
Shinya Kitaoka e4b7c0
0. modify the codes.
Shinya Kitaoka e4b7c0
  - `git checkout -b your-branch-name`
Shinya Kitaoka e4b7c0
    - `your-branch-name` is a name of your modifications, for example,
Shinya Kitaoka e4b7c0
      `fix/fatal-bugs`, `feature/new-useful-gui` and so on.
Shinya Kitaoka e4b7c0
  - fix codes, then test them.
Shinya Kitaoka e4b7c0
  - `git commit` them with good commit messages.
Shinya Kitaoka e4b7c0
0. `pull` the latest changes form the `master` branch of the upstream.
Shinya Kitaoka e4b7c0
  - `git pull upstream master` or `git pull --rebase upstream master`.
Shinya Kitaoka e4b7c0
  - apply [clang-format](http://clang.llvm.org/docs/ClangFormat.html) with `toonz/sources/.clang-format`.
Shinya Kitaoka e4b7c0
    - `cd toonz/sources`
Shinya Kitaoka e4b7c0
    - `./beautification.sh` or `beautification.bat`.
Shinya Kitaoka e4b7c0
  - `git commit` them.
Shinya Kitaoka e4b7c0
  - `git push origin your-branch-name`.
Shinya Kitaoka e4b7c0
0. make a pull request.
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
## Bugs
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
If you found bugs, please report details about them using [issues](https://github.com/opentoonz/opentoonz/issues).
Shinya Kitaoka e4b7c0
Then we will try to reproduce the bugs and fix them.
Phil 83b305
Unfortunately, bugs can sometimes only be reproduced in your own environment,
Shinya Kitaoka e4b7c0
so we cannot reproduce them. We believe you can fix the bug and send us the fix.
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
## Features
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
If you had an idea about a new feature, please implement it and send a pull-request to us.
Shinya Kitaoka e4b7c0
Even if you cannot implement the feature, you can open a topic in [issues](https://github.com/opentoonz/opentoonz/issues).
Phil 83b305
It enables us to discuss about implementations of the feature there.
Shinya Kitaoka c100b0
Shinya Kitaoka c100b0
## Translations
Shinya Kitaoka c100b0
Shinya Kitaoka c100b0
Translation source (`.ts`) files for OpenToonz GUI are located in `toonz/sources/translations`.
Shinya Kitaoka c100b0
If you create new `.ts` files for your language or polish existing ones,
Phil 83b305
please send us those modifications as pull-requests.
Phil 83b305
[Qt Linguist](http://doc.qt.io/qt-5.6/linguist-translators.html) is useful for translating them.
Shinya Kitaoka c100b0
Shinya Kitaoka c100b0
Please send us Qt message (`.qm`) files with `.ts` files if you can make the following modifications.
Shinya Kitaoka c100b0
Shinya Kitaoka c100b0
OpenToonz uses `.qm` files generated from `.ts` files.
Shinya Kitaoka c100b0
You can generate `.qm` files by using [Qt Linguist](http://doc.qt.io/qt-5.6/linguist-translators.html).
Shinya Kitaoka c100b0
Please locate generated `.qm` files in `stuff/config/loc`.
Phil 83b305
It enables the OpenToonz installer to install them into the `stuff` directory.