Info

Year

2005

Languages

C#, WinForms

Platform

Windows Application

Back to Projects

Learning Japanese reading can be easy

In 2004 my brother moved to Japan where he lived for 4 years. As he became fluent in the language I wanted to prep up so that I could visit him and I started learning basic Japanese. Audio learning tools were good for learning to listen and speak but I found it difficult to learn the writing. I based this application on techniques from common Japanese textbooks.

The Japanese language has a phonetic alphabet along with the more complex symbols. The audio lessons used a system of reinforced repetition where they would carefully introduce new material while making you revisit old material. I thought this would work with writing and developed an application that would make it easy to add your own vocabulary packs. This was done through a simple XML file format. You could make your own packs to follow along with your textbook or audio book.

Once you had some vocabulary sets, you could create various tests and writing sheets that would allow you to do repetition practice. The printed practice sheets would let you trace the characters to practice writing and you could also print random drill sheets that would test your vocabulary but include the right level of repetition to reinforce the writing.

You can download the code and a recent build from GitHub

A sample of the file format is included at the bottom of the page.

JLearn interface showing the selection of groups and letters for practice

JLearn interface showing the selection of groups and letters for practice

Learning and practice

Practice sheet for a single character emphasising how to draw the strokes in the correct order

Practice sheet for a single character emphasising how to draw the strokes in the correct order

Memorization through repetition

Translating English to Japanese with reinforced repetition

Translating English to Japanese with reinforced repetition

Quiz

Quick fire quiz

Quick fire quiz

Appendix - XML File Format

This application makes use of a very simple XML format.

<set name="JPLT 4 - Vocab List" cat="vocab" version="1.0">
  	<description>Some data data</description> 
	<group name='あ'>		
	    ...
		<item>			
			<ja>あと</ja>			
			<en>after; later</en>			
			<kanji></kanji>		
		</item>		
		<item>			
			<ja>あるきます</ja>			
			<en>walk</en>
			<kanji>歩きます</kanji>		
		</item>		
	</group>	
	<group name='い'>		
		<item>			
			<ja>いいます</ja>			
			<en>say; tell</en>			
			<kanji>言います</kanji>		
		</item>		
        ...
    </group>
</set>
<?xml version="1.0" encoding="utf-8" ?> 
<set name="Hiragana" cat="Hiragana" version="1.0">
	<description>Hiragana character set.</description>	
	<group name="Vowel">
		<item type="kana">
			<ja></ja>
			<en>a</en>
		</item>
		<item type="kana">
			<ja></ja>
			<en>i</en>
		</item>
	...
	</group>
	<group name="K Consonant">
	...
	</group>
</set>
<group name="Kanji - Chapter 3">
	<item type="kanji">
		<kanji></kanji>
		<en>one</en>
		<on em="y">イチ</on>
		<on>イッ</on>
		<kun>ひと</kun>			
		<strokes>1</strokes>
		<extra>
			<genkiID>001</genkiID>
			<gif>0001</gif>
		</extra>
		<compounds>
			<compound em="y">
				<kanji></kanji>
				<ja>イチ</ja>
				<en>one</en>
			</compound>	
			<compound>
				<kanji>一年生</kanji>
				<ja>イチネンセイ</ja>
				<en>first-year student</en>	
			</compound>	
			<compound em="y">
				<kanji>一時</kanji>
				<ja>イチジ</ja>
				<en>one o'clock</en>										
			</compound>	
			<compound>
				<kanji>一分</kanji>
				<ja>イップン</ja>
				<en>one minute</en>										
			</compound>	
			<compound>
				<kanji>一つ</kanji>
				<ja>ひとつ</ja>
				<en>one</en>										
			</compound>																			
		</compounds>
	</item>	
	...
</group>