Fun With Kanji

Simple Flutter app to learn Japanese writing systems Hiragana, Katakana and Kanji

Simple Flutter app to learn Japanese writing systems Hiragana, Katakana and Kanji.

With Fun With Kanji you are able to learn all common used Japanese characters. All starts with Hiragana, Katakana and their special cases and combinations. After this you learn the Kanji Radicals and then you are ready to start with the 2136 Jōyō-Kanji. You no longer need 4 different apps to learn them!

The app also contains a dictionary and a full-text search over all characters.

Fun With Kanji is open source under Mozilla Public License 2.0. Contributions and new translations are always welcome <3.

Screenshots:

Simple Flutter app to learn Japanese writing systems Hiragana, Katakana and KanjiSimple Flutter app to learn Japanese writing systems Hiragana, Katakana and KanjiSimple Flutter app to learn Japanese writing systems Hiragana, Katakana and KanjiSimple Flutter app to learn Japanese writing systems Hiragana, Katakana and KanjiSimple Flutter app to learn Japanese writing systems Hiragana, Katakana and KanjiSimple Flutter app to learn Japanese writing systems Hiragana, Katakana and Kanji

Install:

Simple Flutter app to learn Japanese writing systems Hiragana, Katakana and Kanji
Simple Flutter app to learn Japanese writing systems Hiragana, Katakana and Kanji

Build:

Install Flutter and run with:

flutter run

Translate Kanji into more languages:

Import translator package and run this script:

import 'dart:io';

import 'package:translator/translator.dart';

void main() async {
  const language = 'de';
  for (var i = 1; i <= 8; i++) {
    print('Load Kanji Level $i');
    final radicalsFile = File('assets/data/kanji_level_$i.json');
    final radicals = jsonDecode(radicalsFile.readAsStringSync()) as List;

    final translator = GoogleTranslator();
    for (final radical in radicals) {
      final input = radical['meanings'].join(', ');
      print('Translate: ${radical['kanji']} (ID: ${radical['id']}) $input ...');
      try {
        final translated =
            await translator.translate(input, from: 'en', to: language);
        radical['meanings'] = translated.text.split(', ');
      } catch (e, s) {
        print('Translation failed! Stop here!');
        print(e);
        print(s);
        break;
      }
    }

    print('Write to output file...');
    final outputFile = File('assets/data/kanji_level_${i}_${language}.json');
    await outputFile.writeAsString(jsonEncode(radicals));
    print('Finished!');
  }
}

GitHub

View Github

Entradas similares

Deja una respuesta