Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/obfusk/jiten

jiten - japanese android/cli/web dictionary based on jmdict/kanjidic — 日本語 辞典 和英辞典 漢英字典 和独辞典 和蘭辞典
https://github.com/obfusk/jiten

android audio cli dictionary dutch english german japanese jisho jiten jlpt jmdict kanji kanjidic pitch-accent python tatoeba vocabulary wadoku web

Last synced: about 6 hours ago
JSON representation

jiten - japanese android/cli/web dictionary based on jmdict/kanjidic — 日本語 辞典 和英辞典 漢英字典 和独辞典 和蘭辞典

Awesome Lists containing this project

README

        

[![GitHub Release](https://img.shields.io/github/release/obfusk/jiten.svg?logo=github)](https://github.com/obfusk/jiten/releases)
[![F-Droid Version](https://img.shields.io/f-droid/v/dev.obfusk.jiten.svg)](https://f-droid.org/app/dev.obfusk.jiten)
[![PyPI Version](https://img.shields.io/pypi/v/jiten.svg)](https://pypi.python.org/pypi/jiten)
[![Python Versions](https://img.shields.io/pypi/pyversions/jiten.svg)](https://pypi.python.org/pypi/jiten)
[![CI](https://github.com/obfusk/jiten/workflows/CI/badge.svg)](https://github.com/obfusk/jiten/actions?query=workflow%3ACI)
[![Android Build](https://github.com/obfusk/jiten/workflows/Android/badge.svg)](https://github.com/obfusk/jiten/actions?query=workflow%3AAndroid)
[![AGPLv3+](https://img.shields.io/badge/license-AGPLv3+-blue.svg)](https://www.gnu.org/licenses/agpl-3.0.html)
[![Sponsor](https://img.shields.io/badge/%E2%99%A5-support-violet.svg)](https://ko-fi.com/obfusk)


Packaging status


Packaging status

# jiten

## japanese android/cli/web dictionary based on jmdict/kanjidic

→ available online at [jiten.dev](https://jiten.obfusk.dev)

[Get it from Fay's Repo](https://obfusk.dev/fdroid/repo?fingerprint=2A21B7FFC93B878724B1991C05DAE113C72B93A556C193F49B5D3342884798B7)
[Get it on F-Droid](https://f-droid.org/app/dev.obfusk.jiten)
[Get the APK from GitHub](https://github.com/obfusk/jiten/releases/latest)

## Screenshots

[app screenshot](screenshot-app.png)
[cli screenshot](screenshot-cli.png)

## Features

* Fine-grained search using
[regexes](https://docs.python.org/3/library/re.html#regular-expression-syntax)
(regular expressions)
- simple searches don't require knowledge of regexes
- quick reference available in the web interface and android app
* JMDict multilingual japanese dictionary
- kanji, readings (romaji optional), meanings & more
- meanings in english, dutch, german, french and/or spanish
- pitch accent (from Wadoku)
- browse by frequency/jlpt
* Kanji dictionary
- readings (romaji optional), meanings (english), jmdict entries, radicals & more
- search using
[SKIP codes](https://en.wikipedia.org/wiki/Kodansha_Kanji_Learner%27s_Dictionary#SKIP)
- search by radical
- [handwritten kanji recognition](https://github.com/obfusk/kanjidraw)
- browse by frequency/level/jlpt/SKIP
* Example sentences (from Tatoeba)
- with english, dutch, german, french and/or spanish translation
- some with audio
* Stroke order
- input a word or sentence and see how it's written

## Interfaces

* Android app
- wraps the web interface (running locally on your device) in a webview
- completely offline, no internet access required
- easily share and open `jiten.obfusk.dev` links
* Web interface
- available online at https://jiten.obfusk.dev
- light/dark mode
- search history (stored locally)
- tooltips to quickly see meanings and readings for kanji and words
- use long press for tooltips on mobile
- convert romaji to hiragana and between hiragana and katakana
- can be run on your own computer
* Command-line interface
* WebView GUI
- wraps the web interface (running locally on your computer)

## CLI

### JMDict

```bash
$ jiten -v jmdict --max 1 --word cat
$ jiten -v jmdict --max 1 --word kat --lang dut
$ jiten -v jmdict --max 1 --exact 誤魔化す

$ jiten -v jmdict +random # random entry
$ jiten -v jmdict --prio +random # random "priority" entry
$ jiten -v jmdict -n 4-5 +random # random JLPT N4 or N5 entry

# convert romaji to hiragana & show romaji readings
$ jiten -v jmdict --max 1 --hiragana --romaji --word neko

# prefix commands: +k (katakana), +h (hiragana), +w (word) etc.
$ jiten -v jmdict --max 1 --romaji '+k +w ko-hi-' # コーヒー
```

### Kanji

```bash
$ jiten -v kanji --max 1 --word cat
$ jiten -v kanji --max 1 --exact cat
$ jiten -v kanji --max 1 --word 日

$ jiten -v kanji --max 1 '+r 犭艹田' # search by radicals
$ jiten -v kanji --max 1 '+s 2-3-3' # search by SKIP code

$ jiten radicals # show radicals table
```

### Sentences

```bash
$ jiten -v sentences --max 1 kitten
```

### Web Interface

```bash
$ jiten -v serve
```

### Help

```bash
$ jiten --help
$ jiten jmdict --help
$ jiten kanji --help
$ jiten sentences --help
```

### Tab Completion

NB: the syntax for the environment variable changed in click >= 8.0,
use e.g. `source_bash` instead of `bash_source` for older versions.

For Bash, add this to `~/.bashrc`:

```bash
eval "$(_JITEN_COMPLETE=bash_source jiten)"
```

For Zsh, add this to `~/.zshrc`:

```zsh
eval "$(_JITEN_COMPLETE=zsh_source jiten)"
```

For Fish, add this to `~/.config/fish/completions/jiten.fish`:

```fish
eval (env _JITEN_COMPLETE=fish_source jiten)
```

## WebView GUI for Linux/macOS/Windows

NB: requires pywebview.

```bash
$ jiten-gui
```

## Bugs & Feature Requests

→ [Issue Tracker](https://github.com/obfusk/jiten/issues)

## Questions & Feedback

→ [Discussions](https://github.com/obfusk/jiten/discussions)

[email protected]

## Installing

### Debian

An official Debian package should be available soon.

You can also manually build a Debian package using the `debian/sid`
branch, or download pre-built `.deb`s via GitHub releases.

### NixOS

An official package is also available in
[nixpkgs (un)stable](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/jiten/default.nix).

### Using pip

```bash
$ pip install jiten
```

NB: depending on your system you may need to use e.g. `pip3 --user`
instead of just `pip`.

### From git

NB: this installs the latest development version, not the latest
release.

```bash
$ git clone https://github.com/obfusk/jiten.git
$ cd jiten
$ make
$ pip install -e .
```

NB: you may need to add e.g. `~/.local/bin` to your `$PATH` in order
to run `jiten`.

To update to the latest development version:

```bash
$ cd jiten
$ git pull --rebase
$ make
```

## Dependencies

* Python >= 3.8 + Flask + click +
[kanjidraw](https://github.com/obfusk/kanjidraw).
* To build the SQLite PCRE C extension: a C compiler (e.g.
`gcc`/`clang`) and the `sqlite3` & `pcre` libraries & headers.
* Basic build tools like `make` and `patch`.
* To run the WebView GUI:
[pywebview](https://pywebview.flowrl.com) >= 3.3.5.

### Debian/Ubuntu

```bash
$ apt install python3-dev build-essential libsqlite3-dev libpcre3-dev
$ apt install python3-flask # optional: Flask & click w/o pip
```

NB: currently, you'll need to install
[kanjidraw](https://github.com/obfusk/kanjidraw) manually (i.e. using
`pip` or from `git`).

#### Optional: WebView GUI

```bash
$ apt install python3-pyqt5.qtwebengine # recommended: qtwebengine

$ apt install python3-webview # if >= 3.3.5
$ pip3 --user install pywebview # otherwise
```

## Miscellaneous

### Online Android App

There is also an online android app --
[`Jiten [Online]`](https://github.com/obfusk/jiten-webview)
-- which essentially provides the same functionality as opening the
https://jiten.obfusk.dev website in a web browser.

It does have some some small advantages (like long press for tooltips)
and requires less storage space (and could be faster depending on your
device and internet connection). You can install both at the same
time if you want.

### Web Interface on Android

You can also run the web interface locally (& offline) on your android
phone. First, install [termux](https://termux.com/), then run:

```bash
$ apt install clang python
$ pip install jiten
```

You can then run the web interface with:

```bash
$ jiten serve
```

and open http://localhost:5000 in your browser.

The web interface will keep running until you close termux or reboot.

### Generating the DB

```bash
$ jiten setup
```

### Forcing HTTPS

```bash
$ export JITEN_HTTPS=force
```

### Forcing Domain Name

```bash
$ export JITEN_DOMAIN=jiten.obfusk.dev
```

## License

### Code

© FC Stegerman

[![AGPLv3+](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.html)

### JMDict & KanjiDic

© James William BREEN and The Electronic Dictionary Research and
Development Group

[![CC-BY-SA](https://licensebuttons.net/l/by-sa/2.0/88x31.png)](https://www.edrdg.org/edrdg/licence.html)

### Wadoku (pitch)

© Ulrich Apel & Wadoku.de contributors

[Non-commercial](https://www.wadoku.de/wiki/display/WAD/Wadoku.de-Daten+Lizenz)

### Tatoeba (sentences & audio)

© Tatoeba contributors

[![CC-BY](https://licensebuttons.net/l/by/2.0/88x31.png)](https://tatoeba.org/eng/downloads)

Audio by huizi99, Mizu & yomi (CC BY-NC 4.0).

### KanjiVG (radicals)

© Ulrich Apel

[![CC-BY-SA](https://licensebuttons.net/l/by-sa/3.0/88x31.png)](https://github.com/KanjiVG/kanjivg/blob/master/COPYING)

### Stroke Order Font

© Ulrich Apel, the AAAA project and the Wadoku project

[BSD-3-Clause](https://www.nihilist.org.uk)

### JLPT Data

© Jonathan Waller

[CC-BY](https://www.tanos.co.uk/jlpt/sharing/)

### Kana Tables

© Wikipedia contributors

[![CC-BY-SA](https://licensebuttons.net/l/by-sa/3.0/88x31.png)](https://en.wikipedia.org/wiki/File:Table_hiragana.svg)
[![CC-BY-SA](https://licensebuttons.net/l/by-sa/3.0/88x31.png)](https://en.wikipedia.org/wiki/File:Table_katakana.svg)

### Material Design Icons

© Google

[Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)