Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
203 lines (166 loc) · 16.1 KB
/
Copy pathindex.html
File metadata and controls
203 lines (166 loc) · 16.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Home</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Home</h1>
<h3> </h3>
<section>
<article><h1>Learning with Texts</h1>
<p><a href="https://packagist.org/packages/hugofara/lwt"><img src="https://poser.pugx.org/hugofara/lwt/v" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/hugofara/lwt"><img src="https://poser.pugx.org/hugofara/lwt/license" alt="License"></a>
<a href="https://packagist.org/packages/hugofara/lwt"><img src="https://poser.pugx.org/hugofara/lwt/require/php" alt="PHP Version Require"></a>
<img src="https://github.com/hugofara/lwt/actions/workflows/php.yml/badge.svg" alt="Composer Continuous Integration">
<a href="https://github.com/HugoFara/lwt/actions/workflows/docker-image.yml"><img src="https://github.com/HugoFara/lwt/actions/workflows/docker-image.yml/badge.svg" alt="Docker Image"></a>
<a href="https://discord.gg/zAE8GXMKFa"><img src="https://badgen.net/discord/members/zAE8GXMKFa?icon=discord" alt="Discord Server"></a></p>
<p><strong>Learning with Texts</strong> (LWT) is a tool for language learning by reading. It is a self-hosted web application.</p>
<div style="text-align: center;">
<img src="https://github.com/HugoFara/lwt/raw/master/img/lwt_icon_big.jpg" />
</div>
<p>You feel that you won't learn much by translating dumb sentences or using grammar books? Learning With Texts offers you the possibility to learn by reading texts in your target language. Concept: when you don't know a word in a text, just click it. We show you the translation, and you will have regular tests to remember it. Ready to go?</p>
<p><strong>THIS IS A THIRD PARTY VERSION</strong>. This version is not the
official one, and brings many improvements and new features.
It is quicker, has smaller database size,
and is open for contributions. The official version is on
<a href="https://sourceforge.net/projects/learning-with-texts">source forge</a></p>
<h2>Installation</h2>
<p>As it is self-hosted, you will need a server, which can be your computer.</p>
<ul>
<li>Get the <a href="https://github.com/HugoFara/lwt/releases">latest GitHub release</a>.
<ul>
<li>You can also try to download the <a href="https://github.com/HugoFara/lwt/archive/refs/heads/master.zip">latest stable version</a> if you want the cutting-edge updates (that may include some bugs).</li>
</ul>
</li>
</ul>
<h3>Linux</h3>
<p>Start a shell in the downloaded folder an run: <code>./INSTALL.sh</code>. You may need to run <code>chmod +x ./INSTALL.sh</code> first.</p>
<h3>Other Systems</h3>
<ul>
<li><strong>Please see</strong>: <a href="docs/install.md">docs/install.md</a> for detailed instructions.</li>
<li>Create <code>connect.inc.php</code> with an existing database user. Everything is explained at <a href="https://hugofara.github.io/lwt/docs/info.html#install">docs/info.html</a>.</li>
</ul>
<p>And you are ready to go!</p>
<p>Please note that a composer repo is available, as well as an installation using Docker.</p>
<h2>Description</h2>
<p>LWT is a language learning web application. To learn a language, you
need to practice, and we guide you in reading exercises.</p>
<p>First copy/paste any text you want to read. It can be raw text or an RSS feed.</p>
<p><img src="https://github.com/HugoFara/lwt/raw/master/img/05.jpg" alt="Adding French text"></p>
<p>Then, we parse the text. Unknown words will be displayed with different colors,
just click them to see it in a dictionary.</p>
<p><img src="https://github.com/HugoFara/lwt/raw/master/img/06.jpg" alt="Learning French text"></p>
<p>Read as much as you want!</p>
<p>To make sure you memorize new words, you can take review exercises.</p>
<p><img src="https://github.com/HugoFara/lwt/raw/master/img/07.jpg" alt="Reviewing French word"></p>
<p>The difference with popular remembering software like
<a href="https://apps.ankiweb.net/">Anki</a> is that we keep track of the
context to help you. By the way, we also ship
an Anki exporter.</p>
<h2>Features</h2>
<ul>
<li><strong>Full list</strong>: <a href="docs/features.md">docs/features.md</a></li>
</ul>
<p>Features included from the official LWT software:</p>
<ul>
<li>Support for almost 40 languages.</li>
<li>Text parsing for roman languages, right-to-left,
and East-Asian ideogram systems</li>
<li>Translate words on-the-fly</li>
<li>Add an audio track and read it online</li>
<li>Practice words you don't remember</li>
<li>Statistics to record your progress</li>
</ul>
<h3>Features not in the official LWT</h3>
<ul>
<li><strong>Full list</strong>: <a href="docs/newfeatures.md">docs/newfeatures.md</a></li>
</ul>
<p>Features that were added by the community:</p>
<ul>
<li>Support for mobile</li>
<li>Automatically import texts from RSS feeds</li>
<li>Support for different themes</li>
<li>Display translations of terms with status in the reading frame</li>
<li>Multiwords selection (click and hold on a word
→ move to another word → release mouse button)</li>
<li>Bulk translate new words in the reading frame</li>
<li>Text to speech</li>
<li>Optional "ignore all" button in read texts</li>
<li>Key bindings in the reading frame</li>
<li>Selecting terms according to a text tag</li>
<li>Two database backup modes (new or old structure)</li>
</ul>
<h3>Improvements compared to the official LWT</h3>
<ul>
<li>Database improvements (db size is much smaller now)</li>
<li>Longer (>9) expressions can now be saved (up to 250 characters)</li>
<li>Save text/audio position in the reading frame</li>
<li>Google api (use 'ggl.php' instead of '*<a href="http:%5C/%5C/translate.google.com">http://translate.google.com</a>' for Google Translate)</li>
<li>Improved Search/Query for Words/Texts</li>
<li>Term import with more options (i.e.: combine translations, multiple tag import)</li>
<li>Support for MeCab for Japanese word-by-word automatic translation.</li>
<li>You can include video files from popular video platforms.</li>
<li>Code documentation.</li>
<li>Code is well organised, making debugging and contribution easier.</li>
</ul>
<h2>Contribute</h2>
<ul>
<li><strong>Complete explanation</strong>: <a href="docs/contribute.md">docs/contribute.md</a></li>
</ul>
<p>To contribute, you need to clone or fork this repository, and <a href="https://getcomposer.org/download/">Composer</a>.
The composer package is at <a href="https://packagist.org/packages/hugofara/lwt">hugofara/lwt</a>.</p>
<p>Run <code>git clone https://github.com/HugoFara/lwt</code></p>
<p>Next, got to the lwt folder and use <code>composer install --dev</code>.</p>
<p>In short:</p>
<pre class="prettyprint source lang-bash"><code>git clone https://github.com/HugoFara/lwt
cd lwt
composer install --dev
</code></pre>
<h2>Branches</h2>
<ul>
<li>The stable branch is <em>master</em>. Last commit on this branch is
considered to be bug-free.</li>
<li>The <em>dev</em> branch is for unstable versions.</li>
<li>The <em>official</em> branch is for the official LWT Releases.
Any other branch if considered under development.</li>
</ul>
<h2>Useful links</h2>
<ul>
<li>General documentation at <a href="https://hugofara.github.io/lwt/docs/info.html">docs/info.html</a>.</li>
<li>Please find more help at <a href="https://hugofara.github.io/lwt/docs/index.html">docs/index.html</a>.</li>
<li>You can also contact the community using <a href="https://github.com/hugofara/lwt">GitHub</a> or
<a href="https://discord.gg/zAE8GXMKFa">Discord</a>.</li>
</ul>
<h2>Alternatives</h2>
<ul>
<li><em>See also</em>: <a href="docs/links.md">docs/links.md</a>
LWT is written for web, but you have many choices if you want a standalone installation:</li>
<li><a href="https://github.com/gustavklopp/LingL">LingL</a> is a wonderful alternative written in Python, by <a href="https://github.com/gustavklopp">gustavklopp</a>.</li>
<li><a href="https://sourceforge.net/projects/foreign-language-text-reader/">FLTR ◆ Foreign Language Text Reader</a>, a Java clone, by the same
author as LWT (<a href="https://sourceforge.net/u/lang-learn-guy/profile/">lang-learn-guy</a>)</li>
</ul>
<h2>Unlicense</h2>
<p>Under unlicense, view <a href="UNLICENSE.md">UNLICENSE.md</a>, please look at [http://unlicense.org/].</p>
<p><strong>Let's learn new languages!</strong></p></article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#DIRTY">DIRTY</a></li><li><a href="global.html#RTL">RTL</a></li><li><a href="global.html#TID">TID</a></li><li><a href="global.html#WBLINK1">WBLINK1</a></li><li><a href="global.html#WBLINK2">WBLINK2</a></li><li><a href="global.html#WBLINK3">WBLINK3</a></li><li><a href="global.html#WID">WID</a></li><li><a href="global.html#areCookiesEnabled">areCookiesEnabled</a></li><li><a href="global.html#askConfirmIfDirty">askConfirmIfDirty</a></li><li><a href="global.html#ask_before_exiting">ask_before_exiting</a></li><li><a href="global.html#changeTableTestStatus">changeTableTestStatus</a></li><li><a href="global.html#check">check</a></li><li><a href="global.html#check_table_prefix">check_table_prefix</a></li><li><a href="global.html#cleanupRightFrames">cleanupRightFrames</a></li><li><a href="global.html#createSentLookupLink">createSentLookupLink</a></li><li><a href="global.html#createTheDictLink">createTheDictLink</a></li><li><a href="global.html#createTheDictUrl">createTheDictUrl</a></li><li><a href="global.html#deleteCookie">deleteCookie</a></li><li><a href="global.html#deleteTranslation">deleteTranslation</a></li><li><a href="global.html#do_ajax_show_sentences">do_ajax_show_sentences</a></li><li><a href="global.html#do_ajax_word_counts">do_ajax_word_counts</a></li><li><a href="global.html#escape_apostrophes">escape_apostrophes</a></li><li><a href="global.html#escape_html_chars">escape_html_chars</a></li><li><a href="global.html#escape_html_chars_2">escape_html_chars_2</a></li><li><a href="global.html#extend_adv_xpath">extend_adv_xpath</a></li><li><a href="global.html#failureSound">failureSound</a></li><li><a href="global.html#feedwizard_prepare_interaction">feedwizard_prepare_interaction</a></li><li><a href="global.html#getCookie">getCookie</a></li><li><a href="global.html#getLangFromDict">getLangFromDict</a></li><li><a href="global.html#getLibreTranslateTranslation">getLibreTranslateTranslation</a></li><li><a href="global.html#getLibreTranslateTranslationBase">getLibreTranslateTranslationBase</a></li><li><a href="global.html#getPhoneticText">getPhoneticText</a></li><li><a href="global.html#getPhoneticTextAsync">getPhoneticTextAsync</a></li><li><a href="global.html#getStatusAbbr">getStatusAbbr</a></li><li><a href="global.html#getStatusName">getStatusName</a></li><li><a href="global.html#goToLastPosition">goToLastPosition</a></li><li><a href="global.html#hideRightFrames">hideRightFrames</a></li><li><a href="global.html#iknowall">iknowall</a></li><li><a href="global.html#keydown_event_do_test_test">keydown_event_do_test_test</a></li><li><a href="global.html#makeDirty">makeDirty</a></li><li><a href="global.html#make_overlib_audio">make_overlib_audio</a></li><li><a href="global.html#make_overlib_link_change_status">make_overlib_link_change_status</a></li><li><a href="global.html#make_overlib_link_change_status_all">make_overlib_link_change_status_all</a></li><li><a href="global.html#make_overlib_link_change_status_alltest">make_overlib_link_change_status_alltest</a></li><li><a href="global.html#make_overlib_link_change_status_test">make_overlib_link_change_status_test</a></li><li><a href="global.html#make_overlib_link_change_status_test2">make_overlib_link_change_status_test2</a></li><li><a href="global.html#make_overlib_link_create_edit_multiword">make_overlib_link_create_edit_multiword</a></li><li><a href="global.html#make_overlib_link_create_edit_multiword_rtl">make_overlib_link_create_edit_multiword_rtl</a></li><li><a href="global.html#make_overlib_link_delete_multiword">make_overlib_link_delete_multiword</a></li><li><a href="global.html#make_overlib_link_delete_word">make_overlib_link_delete_word</a></li><li><a href="global.html#make_overlib_link_edit_multiword">make_overlib_link_edit_multiword</a></li><li><a href="global.html#make_overlib_link_edit_multiword_title">make_overlib_link_edit_multiword_title</a></li><li><a href="global.html#make_overlib_link_edit_word">make_overlib_link_edit_word</a></li><li><a href="global.html#make_overlib_link_edit_word_title">make_overlib_link_edit_word_title</a></li><li><a href="global.html#make_overlib_link_ignore_word">make_overlib_link_ignore_word</a></li><li><a href="global.html#make_overlib_link_new_multiword">make_overlib_link_new_multiword</a></li><li><a href="global.html#make_overlib_link_new_word">make_overlib_link_new_word</a></li><li><a href="global.html#make_overlib_link_wb">make_overlib_link_wb</a></li><li><a href="global.html#make_overlib_link_wbnl">make_overlib_link_wbnl</a></li><li><a href="global.html#make_overlib_link_wbnl2">make_overlib_link_wbnl2</a></li><li><a href="global.html#make_overlib_link_wellknown_word">make_overlib_link_wellknown_word</a></li><li><a href="global.html#make_tooltip">make_tooltip</a></li><li><a href="global.html#newExpressionInteractable">newExpressionInteractable</a></li><li><a href="global.html#new_pos">new_pos</a></li><li><a href="global.html#oewin">oewin</a></li><li><a href="global.html#ol_textfont">ol_textfont</a></li><li><a href="global.html#owin">owin</a></li><li><a href="global.html#prepareMainAreas">prepareMainAreas</a></li><li><a href="global.html#prepareTextInteractions">prepareTextInteractions</a></li><li><a href="global.html#quickMenuRedirection">quickMenuRedirection</a></li><li><a href="global.html#readRawTextAloud">readRawTextAloud</a></li><li><a href="global.html#readTextAloud">readTextAloud</a></li><li><a href="global.html#resetAll">resetAll</a></li><li><a href="global.html#resetDirty">resetDirty</a></li><li><a href="global.html#run_overlib_multiword">run_overlib_multiword</a></li><li><a href="global.html#run_overlib_status_1_to_5">run_overlib_status_1_to_5</a></li><li><a href="global.html#run_overlib_status_98">run_overlib_status_98</a></li><li><a href="global.html#run_overlib_status_99">run_overlib_status_99</a></li><li><a href="global.html#run_overlib_status_unknown">run_overlib_status_unknown</a></li><li><a href="global.html#run_overlib_test">run_overlib_test</a></li><li><a href="global.html#saveCurrentPosition">saveCurrentPosition</a></li><li><a href="global.html#setCookie">setCookie</a></li><li><a href="global.html#setLang">setLang</a></li><li><a href="global.html#setTheFocus">setTheFocus</a></li><li><a href="global.html#set_barchart_item">set_barchart_item</a></li><li><a href="global.html#set_word_counts">set_word_counts</a></li><li><a href="global.html#showAllwordsClick">showAllwordsClick</a></li><li><a href="global.html#showRightFrames">showRightFrames</a></li><li><a href="global.html#sl">sl</a></li><li><a href="global.html#successSound">successSound</a></li><li><a href="global.html#tagChanged">tagChanged</a></li><li><a href="global.html#translateSentence">translateSentence</a></li><li><a href="global.html#translateSentence2">translateSentence2</a></li><li><a href="global.html#translateWord">translateWord</a></li><li><a href="global.html#translateWord2">translateWord2</a></li><li><a href="global.html#translateWord3">translateWord3</a></li><li><a href="global.html#v">v</a></li><li><a href="global.html#word_click_event_do_test_test">word_click_event_do_test_test</a></li><li><a href="global.html#word_click_event_do_text_text">word_click_event_do_text_text</a></li><li><a href="global.html#word_count_click">word_count_click</a></li><li><a href="global.html#word_each_do_text_text">word_each_do_text_text</a></li><li><a href="global.html#wrapRadioButtons">wrapRadioButtons</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.0</a> on Mon Feb 06 2023 16:48:04 GMT+0900 (Japan Standard Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>