theblackwidower / KanaQuiz

A simple app to quiz the user on identifying Japanese characters.
Apache License 2.0
23 stars 5 forks source link
android educational hiragana japanese-language kana kanji katakana quiz

KanaQuiz

GitHub release GitHub license

GitHub issues GitHub pull requests GitHub commit activity

Codacy Badge Build Status codecov

Are you trying to learn Japanese, but can't seem to remember the pronunciation of the basic Hiragana or Katakana character set?

This application is here to help. It will test your knowledge, and drill the basics into your head. You can select which of the twenty different groups you wish to test yourself on. Allowing you to customize based on your skill level. Because we can't learn all this stuff at once. Records your daily progress, so you can know how much you've improved over time. Also includes a reference screen that can display all kana you're currently working on, just to remind you.

Open source and ad free.

This application is in a state of constant development. Any additional feature requests can be sent via email, or submitted as an issue here, on GitHub. If they are appropriate, they will likely be added to the next release.

<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="80"> <img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80">

Feature set

Upcoming features

NB: The following features have no planned release date, or guarantee of release.

Code Analysis, Continuous Integration and Test Coverage

Details of all the external services I'm using with this project can be found here. As well as me explaining my thoughts on each of them in little mini-reviews, for your viewing pleasure.

Branching Model

I'm using the develop branch for main development and experimentation, as well as readme and privacy policy updates; and the master branch for releases.

Mainly, the branching model I'm currently experimenting with is inspired by this blog post. But I am altering it for my own purposes.

Translations

This application is currently only available in English, Spanish, and Catalan.

If you are multi-lingual, and wish to assist this project by volunteering translation services, you can submit the changes in a pull request, or via email.

If you wish to submit a translation as a pull request, please use Android Studio's built-in Translations Editor.

If you don't wish to go through the hassle of installing Android Studio, you can use this strings.xml file as a template, and place it in a new directory called /app/src/main/res/values-[language code]/ with the ISO 639-1 language code. The various string tags contain elements that need to be translated. Be sure to place the name of the language you're translating as well as your own name, in the field marked translator_credit. You can also place the URL to your GitHub, Twitter/X, Mastodon, Bluesky or other social media profile or personal/professional website in the field marked translator_credit_url.

If you don't wish to bother with pull requests, using the template listed above you can also submit your translation through email to theblackwidower@gmail.com, with the subject "KanaQuiz Translation".

I'll also ask, if possible, for any translators to also translate the vocabulary and kanji files, and insert them into a language-specific directory (app/src/main/res/xml-[language code]/), so they'll be automatically included as part of the translation package.

The vocabulary file (vocabulary.xml) just needs to have it's English answers replaced.

The kanji files however, are a bit more complex. There are many more kanji to tranlate, and all three can just be translated and copied over. However, if you do not wish to translate all three files (kanji_1.xml, kanji_2.xml, kanji_3.xml), just take the base kanji file (kanji.xml) and remove the QuestionFile elements of the files you do not wish to translate. All together, these files should be copied into the new folder.

If you require any assistance, please do not be afraid to email me. I appreciate the assistance from anyone wishing to volunteer their skills to help with this project.

Themes

I'm open to people offering to design new themes. If you wish to do so, there are several key files to be aware of.

The themes themselves need to be designed in the styles.xml files (app/src/main/res/values-v21/styles.xml and app/src/main/res/values/styles.xml). Be sure to add any new colours you use to the colors.xml file. (app/src/main/res/values/colors.xml)

Add an appropriate title, and related prefId to the appropriate section in app/src/main/res/values/strings.xml, and link to those string resources when you add the theme to the chooser in app/src/main/res/layout/theme_chooser_dialog.xml.

Finally, to make the whole thing work, be sure to add your theme to the if-else chain in the getThemeId method in app/src/main/java/com/noprestige/kanaquiz/themes/ThemeManager.java.

You can submit the finished product via pull request.