Contribute
Help improve the project or build decks in your language
❀ ❀ ❀
🤝 How to Contribute
There are several ways you can help improve this project:
- Report bugs: Found an issue? Let us know!
- Suggest features: Have an idea? We'd love to hear it
- Submit code: Improve the generator scripts
- Documentation: Help improve guides and docs
- Translations: Generate decks in other languages
🐛 Reporting Issues
If you find a bug or have a suggestion:
- Check if the issue already exists on the Issues page
- If not, create a new issue with:
- Clear description of the problem
- Steps to reproduce (if applicable)
- Expected vs actual behavior
- Any relevant error messages
💻 Contributing Code
Want to improve the generator? Here's how:
Prerequisites
- Python 3.7 or higher
- Basic understanding of Anki card formats
- Familiarity with JLPT structure (helpful but not required)
Setup
# Clone the repository
git clone https://github.com/vitalii-bekshnev/jlpt-anki-decks.git
cd jlpt_anki
# Install dependencies (if any)
pip install -r requirements.txt # if available
Making Changes
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Test by generating decks locally
- Submit a pull request
Project Structure
jlpt_anki/
├── scripts/
│ ├── create_kanji_decks.py # Kanji deck generator
│ ├── create_vocab_decks.py # Vocabulary deck generator
│ ├── create_tiered_decks.py # Tiered/frequency-based decks
│ └── jmdict_utils.py # Shared utilities
├── .github/workflows/
│ └── build-and-release.yml # Automated release workflow
└── decks/ # Generated decks (output)
🌍 Generate Decks in Other Languages
The generator supports multiple languages! Here's how to build decks in your language:
Step 1: Download Dictionary Files
Get the JSON files for your language from jmdict-simplified releases:
kanjidic2-[lang]-[version].json(kanji)jmdict-[lang]-[version].json(vocabulary)jmdict-examples-[lang]-[version].json(examples - optional)
Step 2: Generate Kanji Decks
python scripts/create_kanji_decks.py \
-i path/to/kanjidic2-[lang].json \
-o output_directory/
Step 3: Generate Vocabulary Decks
python scripts/create_vocab_decks.py \
--jmdict path/to/jmdict-[lang].json \
--jmdict-examples path/to/jmdict-examples-[lang].json \
--kanjidic path/to/kanjidic2-[lang].json \
-o output_directory/ \
--examples
Step 4: Generate Tiered Decks
python scripts/create_tiered_decks.py \
--jmdict path/to/jmdict-[lang].json \
--jmdict-examples path/to/jmdict-examples-[lang].json \
--kanjidic path/to/kanjidic2-[lang].json \
-o tiered_output/
Available Languages
Supported language codes (check jmdict-simplified for availability):
- English (
jmdict-eng) - Russian (
jmdict-rus) - German (
jmdict-deu) - French (
jmdict-fra) - Spanish (
jmdict-spa) - Portuguese (
jmdict-por) - Italian (
jmdict-ita) - Dutch (
jmdict-dut) - And more!
📋 Code Guidelines
- Follow PEP 8 style guidelines for Python code
- Write clear, descriptive commit messages
- Add comments for complex logic
- Test your changes before submitting
- Update documentation if needed
🙏 Thank You!
Every contribution helps make this project better for Japanese learners around the world. Whether you're reporting a bug, suggesting a feature, or contributing code, your help is greatly appreciated!
❀ ❀ ❀