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
Jeremy Bullock 82f128
The OpenToonz organization loves any kind of contributions, such as fixing typos and code refactoring.
Jeremy Bullock 82f128
If you fixed or added something useful to OpenToonz, please send pull-requests to us.
Jeremy Bullock 82f128
We will first review the request, then we will accept it, 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
Jeremy Bullock 82f128
If you find bugs, please report details about them using [issues](https://github.com/opentoonz/opentoonz/issues).
Jeremy Bullock 82f128
Please include information needed to reproduce the bug, including the operating system 
Jeremy Bullock 82f128
and information directly relating to the issue. Links to screen captures of what is 
Jeremy Bullock 82f128
observed on screen or video of specific steps to produce the problem are very helpful.  
Shinya Kitaoka e4b7c0
Then we will try to reproduce the bugs and fix them.
Jeremy Bullock 82f128
Unfortunately, bugs can sometimes only be reproduced in your own environment, 
Jeremy Bullock 82f128
so we cannot reproduce them. 
Jeremy Bullock 82f128
If you believe you can fix the bug, please submit a pull request.
Shinya Kitaoka e4b7c0
Shinya Kitaoka e4b7c0
## Features
Shinya Kitaoka e4b7c0
Jeremy Bullock 82f128
If you had an idea about a new feature, please implement it and send a pull request to us.
Jeremy Bullock 82f128
If you cannot implement the feature, please open a topic on the [Google Group Page](https://groups.google.com/forum/#!forum/opentoonz_en).
Jeremy Bullock 82f128
It enables us to discuss implementations of the feature there.
Jeremy Bullock 82f128
Feature requests posted on GitHub without an active developer or funding will be closed 
Jeremy Bullock 82f128
to keep the issue tracker from becoming cluttered with unfulfilled feature requests.
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`.
Jeremy Bullock 82f128
If you create new `.ts` files for your language or update an existing one,
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.