Skip to content

haukex/de-en-dict

Repository files navigation

German-English Dictionary

https://dict.zero-g.net

This is a browser-based client for the database of the discontinued "Beolingus" German-English Dictionary. It can be used in any up-to-date browser with modern JavaScript support, and it can be installed for offline use as a "Progressive Web App".

Please note the word list itself is not part of this repository. Please send suggestions for the word list to [email protected]

Troubleshooting

  1. Please make sure you're using the latest version of a modern browser with modern JavaScript support, such as Firefox, Chrome, Edge, or Safari (but please note the latter requires a current version of macOS).
    • If you are using any browser plug-ins that may block JavaScript (e.g. NoScript, JShelter, LibreJS, ...), then make sure to whitelist dict.zero-g.net.
  2. To make sure you're seeing the latest version of the page/app, please try clearing your browser's cache as well as all saved data for the site "zero-g.net".
  3. Try accessing this link: https://ftp.tu-chemnitz.de/pub/Local/urz/ding/de-en-devel/, if you have trouble doing so, then the dictionary server may be offline or possibly blocked by a firewall from your location.
    • If you are using any browser plug-ins that block requests to "third-party" sites, then make sure to allow access to ftp.tu-chemnitz.de, or whitelist dict.zero-g.net.

Technical Overview

The main part of this project is written in TypeScript, which is called from an HTML file. The Parcel tool is used to compile TypeScript to JavaScript and bundle everything (HTML, CSS, JS, images). The result is currently hosted on GitHub Pages, using a GitHub Action to produce the aforementioned bundle. The dictionary data is fetched as a gzipped text file from a remote server, which must send an Access-Control-Allow-Origin header to allow the JS code to fetch the file. The dictionary file is explicitly cached using the JS Cache API to limit the load on the origin server as much as possible. Installation as a "Progressive Web App" is made possible by a corresponding manifest file, and offline use is made possible by a corresponding JS Service Worker that caches the app. The entered search term is turned into a regular expression, which is used to search the dictionary data, and results are sorted by a score determined by a set of regular expressions and rendered into an HTML table. The dictionary loading and search is handled in the background by a Web Worker.

Development Environment

  • Prerequisites:
    • Linux (Windows may work, I haven't checked)
    • Node.js with npm (my installation notes)
    • GNU make
    • Run make installdeps to install the dependencies via npm
    • Or Open in GitHub Codespaces
  • Run make clean all for a full rebuild with linting
  • Run npm start to start up the local development server (with live refresh)

Thanks ❤️

It is all much appreciated!

Author, Copyright, and License

Dictionary data from dict.tu-chemnitz.de is Copyright © 1995-2024 Frank Richter.

This page/app is Copyright © 2024 Hauke Dämpfling.

This project is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This project is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this project; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Used Libraries ❤️

This project makes use of the following libraries: