Alexander Bocken 4e2a7ff624 add translation support for portions, baking, cook times, and ingredient units
Add comprehensive translation support for previously untranslatable fields:
- Portions (serving sizes)
- Time fields (preparation, cooking, total_time)
- Baking properties (temperature, length, mode)
- Fermentation times (bulk, final)
- Ingredient units (EL→tbsp, TL→tsp, etc.)

Fix terminology replacement to work correctly:
- Pre-process German cooking terms BEFORE sending to DeepL
- Post-process to convert US English to British English AFTER DeepL
- Split applyIngredientTerminology into replaceGermanCookingTerms (pre) and applyBritishEnglish (post)

Database schema:
- Add translatable fields to translations.en object

Translation service:
- Include new fields and ingredient units in batch translation
- Add field-specific translation in translateFields()
- Update change detection to track new fields
- Pre-process all texts to replace German terms before DeepL
- Post-process all texts to apply British English after DeepL

UI components:
- Display all new fields in translation approval interface
- Add editable inputs for English translations
- Support nested field editing (baking.temperature, fermentation.bulk, etc.)

Fix changed fields detection:
- Only show changed fields when editing existing translations
- Don't show false warnings for first-time translations
2025-12-27 13:57:42 +01:00
2023-06-24 15:35:36 +02:00
2023-06-24 15:35:36 +02:00
2025-12-16 11:32:38 +01:00
2023-06-24 15:33:41 +02:00
2024-02-18 15:23:14 +01:00
2023-06-24 15:35:36 +02:00
2025-09-04 11:52:28 +02:00

Personal Homepage

My own homepage, bocken.org, built with svelte-kit.

TODO

General

  • Admin user management -> move to authentik via oIDC
    • login to authentik
    • only let rezepte_users edit recipes -> currently only letting them log in, should be changed
    • get user info from authentik (more than email and name)
    • upload pfp
  • upload/change pfp
  • registration only with minimal permissions
  • logout without /logout page
  • preferences page
  • change password
  • css dark mode @media (prefers-color-scheme: dark) {}
  • dark mode toggle

Rezepte

  • Do not list recipes that are all-year as "seasonal"
  • nutrition facts
  • verify randomize arrays based on day
  • notes for next time
  • refactor, like, a lot
  • expose json-ld for recipes https://json-ld.org/ https://schema.org/Recipe
  • reference other recipes in recipe
    • add a link to the recipe
    • add ingredients to the ingredients list
    • include steps?
  • add favoriting ability when logged in
    • favorite button on recipe
    • store favorites in DB -> add to user object
    • favorite API endpoint (requires auth of user)
      • set
      • retrieve
    • favorite page/MediaScroller
  • graceful degradation for JS-less browsers
    • use js-only class with display:none and remove it with JS
    • disable search -> use form action instead on submit?
    • do not blur images without js
    • correct Recipe Card rendering

Glaube

  • just keep it md rendered
  • Google Speech to Text API integration?
  • Gebete

Outside of this sveltekit project but planned to run on the server as well

  • create LDAP and OpenID

E-Mail

  • emailwiz setup
  • fail2ban
  • LDAP?

Dendrite

  • setup dendrite
  • Connect to LDAP/OIDC (waiting on upstream)
  • Serve some web-frontend -> Just element?

Gitea

  • consistent theming
  • OpenID Connect
  • sane landing page

Jellyfin

  • connect to LDAP
  • consitent theming

Webtrees

  • setup Oauth2proxy -> not necessary, authentik has proxy integrated
  • connect to OIDC using Oauth2proxy (using authentik)
  • consistent theming
  • auto-login if not logged in

Jitsi

  • consistent theming
  • move away from docker
  • find a way to improve max video quality without jitsi becoming unreliable

Searx

  • investigate SearxNG as more reliable alternative
  • consistent theming

Photoprism

  • consistent theming
  • OIDC integration (waiting on upstream)

Nextcloud

  • consistent theming
  • collabora integration

Transmission

  • move behind authentik
Description
My personal website built to learn SvelteKit. The largest part is the Recipes subsection.
https://bocken.org
Readme AGPL-3.0 91 MiB
Languages
Svelte 69.1%
TypeScript 27.9%
CSS 1.9%
Python 0.7%
JavaScript 0.2%
Other 0.2%