Git Product home page Git Product logo

stscoundrel / old-norwegian-dictionary-next Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 2.78 MB

Next.js implementation of "Dictionary of the Old Norwegian Language"

Home Page: https://old-norwegian-dictionary.vercel.app

License: MIT License

JavaScript 2.85% SCSS 9.70% TypeScript 87.45%
old-norwegian old-norse old-icelandic dictionary typescript nextjs medieval-languages medieval-studies medieval-norwegian

old-norwegian-dictionary-next's Introduction

Dictionary of the Old Norwegian Language

"Ordbog over det gamle norske Sprog" by Johan Fritzner made in Next.js. An Old Norse to Norwegian dictionary.

See live site here

Features

  • Online version of Old Norwegian dictionary
  • Old Norse to Norwegian translations
  • 40 000+ statically generated pages
  • Search words & definitions.
  • Abbreviations mapped to their full meanings.
  • Automatic cross links to headwords in related dictionaries.
  • High test coverage (unit + integration)
  • Optimized for fast load times (PWA)
  • SEO, Accessibility and Schema optimized

Other related dictionary projects

About "Dictionary of the Old Norwegian Language"

"Ordbog over det gamle norske Sprog" dictionary was published in late 1800s by Johan Fritzner. Its is the largest Old Norse to Norwegian dictionary, containing over 40 000 word definitions. While the original dictionary is called dictionary of "old norwegian", it is practically a dictionary of western Old Norse. Technically "Old Norwegian" would be a later stage in the language.

old-norwegian-dictionary-next's People

Contributors

dependabot[bot] avatar stscoundrel avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

old-norwegian-dictionary-next's Issues

Frontpage sample: add links to entries

Most of the words in sample text should be in dictionary entries. Link the ones that are easy enough to find, makes the sample section more interesting for those who cant understand the language as-is.

Runes: add time period used

Like in couple of sibling projects, runes alone may provide little context to casual reader. Might want to mention runes were used to write Norse languages in Scandinavia from x to y centuries.

Keeping it relevant to Old Norwegian, something among the lines of:
Medieval Runes were used in Norway from 11th to 15th centuries.

Add API endpoint for ISR on demand

Should provide alternative avenue for building all ISR pages.

Current problem: many more pages that can be build & deployed to Vercel. There is hard limit of 16 00 files. Once the project is deployed, it can generate as many more as it needs. But it has to happen after deployment.
Current solution: use ISR to generate pages as users open them. Downside is that the first load can then be slow. Other approach is to use Gangleri, a tool to walk sitemaps, therefore triggering rebuilds. However, that is slow as it makes separate request for each and can be spammy.

New solution:

  • Add API endpoint
  • Protect with env secret. Important as hell, as this could potentially cause a lot of processing spam.
  • Trigger revalidate of either all pages, or a subset based on some param. See how long rebuild takes etc.

Move to API based search

Current search loads whole available dictionary. While it does make consequent searches fast, it makes initial load slower and affects other pages which may prefetch the search page.

Taking a page from Old Swedish dictionarys book:

  • Add search endpoint to API routes
  • Alter the search form to query that for results.
  • Consider simple memory cache -> be it on client or API end.

Will end up making more requests to the cloud function, but overall payloads moved around will be definitely smaller. The full dictionary json is around 6MB, no need to accidentally prefech it by opening the frontpage.

Runes: use medieval runes

Word definition contain automatically generated younger futhark rune transcription. However, runes used in times of old norwegian would be medieval futhork, not the earlier younger futhark,

Switch library that is used, should be drop-in replacement as interface is the same.

Orthography: add alternative older form for "ö"

Letter "ö" did not really see use in Old Norwegian, but it has probably been picked to this book through to modern Icelandic usage. Or simply due to difficulties of printing the original character in 1800s.

In short, whenever "ö" appears the dictionary should provide older form with letter "ǫ", o caudata.

So for headword like "völlr", alternative elder form of "vǫllr" should be provided.

Same feature already exists in Cleasby & Vigfusson ON dictionary.

Disable prefech on links.

Disable prefech on links. Currently majority of links in the site are prefetched on background. While it is generally a very nice behavior, changes in Vercel infra pricing make this uneconomical. Therefore:

  • Either use prefetch={false} in links to only fetch them on hover
  • Or replace them with plain old a links. Prefetch is pretty much the only advantage of next/link.

Frontpage: add mention of written norwegian

The written norwegian in the dictionary is not bokmål or nynorsk, but older variant from before current standards. Might make sense to mention it. Check what the written dano-norwegian text was called, if anything.

Word pages: add "in norwegian"

Word pages do not mention that definitions are in norwegian. For example:

Meaning of Old Norwegian word "resignera"

could be

Meaning of Old Norwegian word "resignera" in Norwegian (of late 19th century?).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.