Shinya Kitaoka e4b7c0
# How to contribute
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
This document describes some points about contribution process for OpenToonz.
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
## Pull-requests
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
OpenToonz organization loves any kinds of your contributions, such as fixing typos and code refactroing.
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.
Shinya Kitaoka e4b7c0
Unfortunately, sometimes bugs can be only reproduced in your your 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).
Shinya Kitaoka e4b7c0
It enables us to discuss about implementaions 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,
Shinya Kitaoka c100b0
please send us those modifications as pull-requests. 
Shinya Kitaoka c100b0
[Qt Linguist](http://doc.qt.io/qt-5.6/linguist-translators.html) is usefull 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`.
Shinya Kitaoka c100b0
It enables OpenToonz installer to install them into the `stuff` directory.