# Happy Reader WPF Program to search for data from VNDB.org via API and data dump files, also a 'game launcher' for visual novels with ability to extract text from visual novels and translate to English on-the-fly, using translation APIs and user-entered text substitutions. Has 'mouseover dictionary' functionality for Japanese text in output window.
Supported by JetBrains
Before reporting issues or requesting features, please see Goals
Games
tab on the leftGames
tab, or click Add New
to select executable
VNID
value to that of the correct visual novel, you must press Enter
to save your change
Hook Mode
as necessary (usually VnrHook
)Games
Tab, launch Game by clicking Off
button, or right-click and choose specific launch modeText Hooking
tab:s
or :sa
followed by the text to search for Happy Reader to search for the text
:s おはよう!
to search for おはよう!
in each text thread, in the encodings that each thread is set to:sa おはよう!
to search for おはよう!
in each text thread, in all 3 encodings possible (Unicode, UTF-8, Shift-JIS) (can take longer):e <encoding>
to switch the encoding of all text thread panels to the desired one.
:e Unicode
to switch all panels to Unicode:e Shift-JIS
to switch all panels to Shift-JIS:e UTF-8
to switch all panels to UTF-8Posting
checkbox, to allow text to appear in Output Window.Reset Output Window
in Text Hooking tab to reset it to a visible locationShow Output Window
in Text Hooking tab.Posting
panel (click on thread name and not text box) then click Toggle Display Others
/Toggle Post Others
/Toggle Pause Others
orClear Others
to clear existing text from threads other than selected orIgnore Other Threads
if you are sure that no other text threads are requiredCapture By Hook Code
option, to automatically post text from threads matching that hook code instead of using thread identifiers to store user settings.The user can add custom text replacements to assist translation, this can be especially useful with regards to character names. Entries can be added in different ways
Entries
tab and click Add Entries
right-click > Add Entry for Text
Once in the Add Entries tab, you can change various parameters.
Example of a name substitution:
Type=Name, Game=User or VNDB Game Name, Role=m, Input=桜子, Output=Ouko, Series-Specific=True.
These can be tested in the Test
tab.
Entries of type Name and Translation use Proxy
entries, which will be used in the translation process.
The text in the entry's Role
dictates what kind of proxies to use.
If the entry has Role m
, it will try to use a Proxy with role m
.
Some proxies will be created by default but more may be needed if a sentence has a lot of separate names.
These can be added by creating entries of type Proxy
which have an output that should match what a translator returns, when the input is provided.
This can be text that is unlikely to be changed by the translators such as ZBXC > ZBXC
or proper nouns without many alternative readings, which can help with context,
like 由紀子>Yukiko
, as it is a female name, it should return translation in a female context.
By creating proxies with specific Roles (like the above with role m.f
) and then creating entries that use said roles (アリス>Arisu with role m.f
), translation quality should improve.
Proxy Role suggestions:
m
if m.f
proxies are not found)There is functionality to display definition of Japanese Kanji/words when placing the mouse over such text in the following panels:
This can be enabled in the Settings tab (Dictionary on Mouse-over
), a path to the folder with the dictionary files must be entered.
You can download these files from the releases page but they must be extracted before they can be used.
If the user wishes, they may use the VNDB integration features, such as
In order to use these features, the user must get VNDB data by clicking 'Update VNDB Data' in Settings,
which will download files with all the VNDB information (around 100MB).
If you log in prior to running this update, the user's data will also be populated.
The user can also save all VNDB images and keep it synced, by changing the Image Sync options,
select the corresponding image types, the Screenshots type is the largest one at around 17GB, see https://vndb.org/d14 for more information.
Screenshot thumbnails are used as a fallback when full-size screenshots are not found.
This update can take a few minutes (5~10) but can run in the background while Happy Reader is running, the user will be asked at the end of the update to replace the local VNDB database with the new data, no user data is lost, as that is stored in a different database.
You should see VNDB data in 'Visual Novels' and 'Characters' sections.
You can filter this information by clicking Filters
in the right, a permanent filter can be set that will always be active, and you can also create custom filters to switch through.
For developers: Translation Plugins can be created by inheriting from ITranslator interface in Happy_Apps_Core and placed (along their dependencies) in Translation Plugins folder which lies beside Happy Reader.
Personal settings and VNDB data is saved to %appdata%/Happy Reader