{"id":16042685,"url":"https://github.com/HugoFara/lwt","last_synced_at":"2025-10-22T04:30:40.125Z","repository":{"id":42902823,"uuid":"422513674","full_name":"HugoFara/lwt","owner":"HugoFara","description":"Learn languages by reading! A language learning app stemmed from Learning with Texts (LWT).","archived":false,"fork":true,"pushed_at":"2024-04-01T17:48:05.000Z","size":39994,"stargazers_count":158,"open_issues_count":28,"forks_count":18,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-14T00:58:54.850Z","etag":null,"topics":["language-learning","lwt","web-application"],"latest_commit_sha":null,"homepage":"https://hugofara.github.io/lwt/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"chaosarium/lwt","license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HugoFara.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":["hugofara"],"patreon":null,"open_collective":"lwt-community","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2021-10-29T09:18:11.000Z","updated_at":"2024-04-11T14:38:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"af058942-b7aa-4f74-a078-9bd1df8ea0e6","html_url":"https://github.com/HugoFara/lwt","commit_stats":{"total_commits":1207,"total_committers":14,"mean_commits":86.21428571428571,"dds":0.6412593206296603,"last_synced_commit":"d8e22588ffeebb67f3623de113e9fa342af3749f"},"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoFara%2Flwt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoFara%2Flwt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoFara%2Flwt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoFara%2Flwt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HugoFara","download_url":"https://codeload.github.com/HugoFara/lwt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219868987,"owners_count":16555586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["language-learning","lwt","web-application"],"created_at":"2024-10-09T00:02:59.859Z","updated_at":"2025-10-22T04:30:40.120Z","avatar_url":"https://github.com/HugoFara.png","language":"PHP","funding_links":["https://github.com/sponsors/hugofara","https://opencollective.com/lwt-community"],"categories":["Language Learning"],"sub_categories":["Learning With Texts (LinQ-like)"],"readme":"# Learning with Texts\r\n\r\n[![Latest Stable Version](https://poser.pugx.org/hugofara/lwt/v)](https://packagist.org/packages/hugofara/lwt)\r\n[![License](https://poser.pugx.org/hugofara/lwt/license)](https://packagist.org/packages/hugofara/lwt)\r\n[![PHP Version Require](https://poser.pugx.org/hugofara/lwt/require/php)](https://packagist.org/packages/hugofara/lwt)\r\n![Composer Continuous Integration](https://github.com/hugofara/lwt/actions/workflows/php.yml/badge.svg)\r\n[![Docker Image](https://github.com/HugoFara/lwt/actions/workflows/docker-image.yml/badge.svg)](https://github.com/HugoFara/lwt/actions/workflows/docker-image.yml)\r\n\r\n**Learning with Texts** (LWT) is a tool for language learning by reading. It is a self-hosted web application.\r\n\r\n\u003cdiv style=\"text-align: center;\"\u003e\r\n\u003cimg src=\"https://github.com/HugoFara/lwt/raw/master/img/lwt_icon_big.jpg\" alt=\"LWT icon of a book\"/\u003e\r\n\u003c/div\u003e\r\n\r\nYou 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?\r\n\r\n\u003e [!IMPORTANT]  \r\n\u003e **THIS IS A THIRD PARTY VERSION**. This version is not the\r\nofficial one, and brings many improvements and new features.\r\nIt is quicker, has smaller database size,\r\nand is open for contributions. The official version is on\r\n[source forge](https://sourceforge.net/projects/learning-with-texts)\r\n\r\n\u003e [!NOTE]  \r\n\u003e HugoFara: I don't plan to continue developping LWT on a regular basis. While I may keep maintaining for fun, I recommend [jzohrab/lute-v3](https://github.com/jzohrab/lute-v3) as the main target for development effort in the LWT software family.\r\n\r\n## Installation\r\n\r\nAs LWT is self-hosted, you will need a server, which can be your computer.\r\nYou can either use Docker (recommended), or install it on your machine.\r\n\r\n### Docker (any OS)\r\n\r\nInstall [Docker](https://docs.docker.com/get-docker/) (if not already done).\r\n\r\n* For an light-weight installation, you may use [HugoFara/lwt-docker-installer](https://github.com/HugoFara/lwt-docker-installer).\r\n\r\n* To build from source, download the latest release and run:\r\n\r\n  ```bash\r\n  cd lwt\r\n  docker compose up  # Now open http://localhost:8010/lwt/ in a browser\r\n  ```\r\n\r\n### Linux\r\n\r\n1. Get the [latest GitHub release](https://github.com/HugoFara/lwt/releases). You can also try to download the [latest stable version](https://github.com/HugoFara/lwt/archive/refs/heads/master.zip) if you want the cutting-edge updates (that may include some bugs).\r\n2. Start a shell in the downloaded folder an run: ``./INSTALL.sh``. You may need to run ``chmod +x ./INSTALL.sh`` first.\r\n\r\n### Other Systems\r\n\r\n1. **Please follow**: [docs/install.md](docs/install.md) for setup  instructions.\r\n2. Create ``connect.inc.php`` with an existing database user. Everything is explained at [docs/info.html](https://hugofara.github.io/lwt/docs/info.html#install).\r\n\r\nAnd you are ready to go!\r\n\r\n## Description\r\n\r\nLWT is a language learning web application. To learn a language, you\r\nneed to practice, and we guide you in reading exercises.\r\n\r\nFirst copy/paste any text you want to read. It can be raw text or an RSS feed.\r\n\r\n![Adding French text](https://github.com/HugoFara/lwt/raw/master/img/05.jpg)\r\n\r\nThen, we parse the text. Unknown words will be displayed with different colors,\r\njust click them to see it in a dictionary.\r\n\r\n![Learning French text](https://github.com/HugoFara/lwt/raw/master/img/06.jpg)\r\n\r\nRead as much as you want!\r\n\r\nTo make sure you memorize new words, you can take review exercises.\r\n\r\n![Reviewing French word](https://github.com/HugoFara/lwt/raw/master/img/07.jpg)\r\n\r\nThe difference with popular remembering software like\r\n[Anki](https://apps.ankiweb.net/) is that we keep track of the\r\ncontext to help you. By the way, we also ship\r\nan Anki exporter.\r\n\r\n## Features\r\n\r\n\u003e **Full features list**: [docs/features.md](docs/features.md)\r\n\r\nFeatures included from the official LWT software:\r\n\r\n* Support for almost 40 languages.\r\n* Text parsing for roman languages, right-to-left,\r\nand East-Asian ideogram systems\r\n* Translate words on-the-fly\r\n* Add an audio track and read it online\r\n* Practice words you don't remember\r\n* Statistics to record your progress\r\n\r\n### Features not in the official LWT\r\n\r\n\u003e **Full new features list**: [docs/newfeatures.md](docs/newfeatures.md)\r\n\r\nFeatures that were added by the community:\r\n\r\n* Support for mobile\r\n* Automatically import texts from RSS feeds\r\n* Support for different themes\r\n* Display translations of terms with status in the reading frame\r\n* Multiwords selection (click and hold on a word\r\n→ move to another word → release mouse button)\r\n* Bulk translate new words in the reading frame\r\n* Text to speech\r\n* Optional \"ignore all\" button in read texts\r\n* Key bindings in the reading frame\r\n* Selecting terms according to a text tag\r\n* Two database backup modes (new or old structure)\r\n\r\n### Improvements compared to the official LWT\r\n\r\n* Database improvements (db size is much smaller now)\r\n* Longer (\u003e9) expressions can now be saved (up to 250 characters)\r\n* Save text/audio position in the reading frame\r\n* Google api (use 'ggl.php' instead of '*\u003chttp://translate.google.com\u003e' for Google Translate)\r\n* Improved Search/Query for Words/Texts\r\n* Term import with more options (i.e.: combine translations, multiple tag import)\r\n* Support for MeCab for Japanese word-by-word automatic translation.\r\n* You can include video files from popular video platforms.\r\n* Code documentation.\r\n* Code is well organised, making debugging and contribution easier.\r\n\r\n## Contribute\r\n\r\n\u003e **Complete explanation**: [docs/contribute.md](docs/contribute.md)\r\n\r\nTo contribute, you need to clone or fork this repository, and [Composer](https://getcomposer.org/download/).\r\nThe composer package is at [hugofara/lwt](https://packagist.org/packages/hugofara/lwt).\r\n\r\nRun ``git clone https://github.com/HugoFara/lwt``\r\n\r\nNext, got to the lwt folder and use ``composer install --dev``.\r\n\r\nIn short:\r\n\r\n```bash\r\ngit clone https://github.com/HugoFara/lwt\r\ncd lwt\r\ncomposer install --dev\r\n```\r\n\r\n## Branches\r\n\r\n* The stable branch is *master*. Last commit on this branch is\r\nconsidered to be bug-free.\r\n* The *dev* branch is for unstable versions.\r\n* The *official* branch is for the official LWT Releases.\r\nAny other branch if considered under development.\r\n\r\n## Useful links\r\n\r\n* General documentation at [docs/info.html](https://hugofara.github.io/lwt/docs/info.html).\r\n* Please find more help at [docs/index.html](https://hugofara.github.io/lwt/docs/index.html).\r\n\r\n## Alternatives\r\n\r\n\u003e *See also*: [docs/links.md](docs/links.md)\r\n\r\n* [jzohrab/LUTE](https://github.com/jzohrab/lute) is a rewrite of LWT with modern tools such as Symfony.\r\n* [FLTR ◆ Foreign Language Text Reader](https://sourceforge.net/projects/foreign-language-text-reader/),\r\na Java clone, by [lang-learn-guy](https://sourceforge.net/u/lang-learn-guy/profile/)\r\n(original author of LWT), it is a standalone installation.\r\n* [simjanos-dev/LinguaCafe](https://github.com/simjanos-dev/LinguaCafe): a beautiful\r\nequivalent in Vue.js and PHP.\r\n\r\n## Unlicense\r\n\r\nUnder unlicense, view [UNLICENSE.md](UNLICENSE.md), please look at \u003chttp://unlicense.org/\u003e.\r\n\r\n**Let's learn new languages!**\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHugoFara%2Flwt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHugoFara%2Flwt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHugoFara%2Flwt/lists"}