Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Japanese glossator for assisted reading of text using Ichiran

License

NotificationsYou must be signed in to change notification settings

Netdex/niinii

Repository files navigation

This project is a work-in-progress.

image

Demonstration

niinii (knee-knee) is a graphical frontend for glossing Japanese text. Usefulfor assisted reading of text for language learning purposes. A primary use caseis glossing visual novels, which is shown in the demonstration above. I madethis tool with the express intent to read a singlespecific visual novel,which is also where the name comes from. If someone else finds it useful that'scool too.

For example, in the demonstration above, I use niinii along with a text hookerto gloss the dialogue in a visual novel. The segmented phrase along with rubytext (i.e. furigana) is displayed. Hovering over a segment will show dictionarydefinitions and inflections from JMDict. You can pop open a separate window byclicking on a segment. Hovering over kanji will show kanji information fromKANJIDIC2. I would write a more detailed user manual but I think you canprobably figure it out.

Japanese language support is implemented usingIchiran bytshatrov. Ichiran is pretty amazing at textsegmentation compared to other tools I've tried.

Why not use...

This is a tool created to service a personal need, and may not be useful to you.Below, I laid out my personal justification for investing time into creatingthis tool. If you agree, then this tool may be useful for you.

Why not use MeCab, JParser, ChaSen, Jisho etc.?: In my experience ichiran ismuch better at segmentation, provides more metadata, and makes fewer mistakes.

Why not use rikai(kun|chan), JGlossator?: They don't do segmentation.

Why not use DeepL, Google Translate, etc.?: I want a gloss, not atranslation tool. If I ever integrate translation features, I'd like to do so ina way that supplements the gloss rather than dumping text.

Why not use the web frontendichi.moe?:There are some features I'd like to experiment with to improve the glossingexperience.

Build

Prepackaged builds are available in theReleases section of thisrepository.

The only target that is properly maintained isx86_64-pc-windows-msvc. There'snothing stopping it from working on other targets (e.g. Linux), but additionalwork may be required.

To build the application from source on Windows:

# install vcpkggit clone https://github.com/microsoft/vcpkg.\vcpkg\bootstrap-vcpkg.bat# install freetypevcpkg install freetype:x64-windows-static-mdgit clone https://github.com/Netdex/niinii.gitcd niiniicargo build --release

If using the hooking feature, the bitness of the DLL must match the targetapplication. To build a 32-bit application:

cargo +stable-i686-pc-windows-msvc build --target i686-pc-windows-msvc --release

For Japanese language support, the following additional components are required:

  • ichiran-cli (Ichiran)
  • PostgreSQL installation with Ichiran database

You must provide the location of these additional components in the Settingspane of the application.

Given that the process of building these components for use with niinii is quiteinvolved, prebuilt versions are included with the prepackaged builds.

Known Issues

High CPU usage when out of focus

Seems like a problem with winit. niinii is almost always used in the foregroundanyways because of always on top, so I'm not going to bother fixing this.

Hooking not working

  • Most visual novels are written in engines which use D3D9. This is not alwaystrue though, you may need to adjust the hooking code as necessary.
  • There is limited recovery code for when frame buffers are resized, devicesare reset, contexts are changed etc. This may lead to breakages whenswitching in and out full-screen mode, resizing the window, and switching toanother application.
  • Some visual novel engines will present only when necessary rather than at afixed framerate. In this case, niinii won't work properly since it expects afixed refresh rate.

Issues with Chromium-based browsers

In overlay mode, niinii displays a transparent window which covers the entirescreen. Newer Chromium-based browsers have a feature which suspends drawingwhen the window is fully occluded, for performance reasons. The windowdisplayed by niinii counts as full occlusion despite being transparent, whichcauses Chromium-based browsers to suspend drawing. I suspect this could alsohappen with some Electron apps, but I haven't tested it.

Troubleshooting

TODO

Third-party

See NOTICE for a list of third-party software used in this project.

About

Japanese glossator for assisted reading of text using Ichiran

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp