Help - Text - About

Information about JTLanguage's version.

About JTLanguage

This is JTLanguage version 1.3.0.

Copyright (c) John Thompson, 2011-2022. All rights reserved.

Acknowledgements for third-party libraries and content shown below.

This website was last updated on April 22, 2022.

Version 1.3

Version 1.0 was based on a complete rewrite of a previous version of JTLanguage from the ground up. Some key changes or goals for this rewrite were:

  • Provide a more stream-lined and robust user interface.
  • Make most pages mobile browser-friendly.
  • Provide companion mobile apps.
  • Internally, provide a more scalable and robust data model and controller, using portable model and controller libraries common to both the web and phone applications.

Version 1.1 built on version 1.0 by adding some cool new features, as well as implementing some features I had in the earlier version, but hadn't reimplemented yet.

Version 1.2 continues the addition of new features and polishing and fleshing out existing features, and still implementing pre-1.0 features not yet re-implemented.

Version 1.3 adds some much-needed features to enhance the study process, such as word hover/click definitions in key places, chorusing support, and new importers for more content types.

Please see What's New for information about recent changes.


The JTLanguage website and phone apps were written using Microsoft ASP.NET, Javascript with JQuery, Bootstrap, and Ajax, and Microsoft Silverlight 5.0 for the audio recording mechanism for Internet Explorer.

The phone apps are based on Xamarin's C# compiler and libraries included in Microsof Visual Studio, which were based on Mono.

Google Play and the Google Play logo are trademarks of Google Inc.

It uses the following additional libraries:

StructureMap from for mapping MVC actions.

The course and plan tree control is from the jsTree library from here: jsTree

The database/object storage mechanism for both the website and phone apps is based on the Lex.Db library from here: Lex.Db

Some Silverlight and separately called programs or services use the Saluse Media Kit for its .mp3 decoder from here: Saluse Media Kit

Some Silverlight and separately called programs or services use the NAudio .mp3 encoder from here: NAudio NAudio itself uses the Lame .mp3 library.

Some Silverlight and separately called programs or services use the CSPEEX audio encoder/decoder from here: CSPEEX

Some Silverlight programs use the .wav support classes from here: Playing back Wave files in Silverlight

The media generation uses the SoundTouchNet library for slowing down audio from here: SoundTouchNet This is a wrapper for the SoundTouch library here: SoundTouch

The .zip support is provided by the Ionic.Zip library from here: Ionic.Zip library

The phone apps use the M3Sharp .mp3 decoding library from here: M3Sharp

The phone apps use a library I developed to mimic .Net's MVC mechanism. This originated from Xamarin's PortableRazor sample, but mostly rewritten. You can find a .zip of it here: (Some day I'll put it on GitHub. Ditto for JTLanguage itself.)

This site provides a general dictionary with entries derived from multiple sources:

The Chinese dictionary entries and many reciprocal English entries were derived from the cedict_ts.u8 file, which is the property of the MDBG website, and use in accordance with its creative commons license, and can be downloaded from here: MDBG CC-CEDICT download .

The Japanese dictionary entries and many reciprocal English entries were derived from the EDICT file which is the property of the Electronic Dictionary Research and Development Group, and is used in conformance with the Group's licence. The file is from here: The EDICT Dictionary File

Last but not least, for button images I used many images and text snippets from numerous websites for which I didn't keep a record. My apologies and thanks to you all.

I can't make these public because they are from commercial language-learning websites, but for my own study I created numerous private courses from content downloaded (while a paid member) from several Innovative Language websites such as,,,,,, and My thanks and admiration to these sites for the excellent content. They were excellent sources of content for testing JTLanguage's scalability and adaptability for different kinds of content.

Attributions for course/lesson content should be placed in the corresponding courses or lessons.

Help menuHelp menu