English copy — BATCH 2 of 3: 17 apps, 317 strings (R-560 slice 5)
gates / gates (push) Failing after 2s

audiobookshelf, code-server, crafty-controller, glance, gokapi, gramps-web,
jellyfin, mealie, navidrome, plex, sonarr, tandoor, termix, uptime-kuma, vikunja,
wger, wishlist. EN_MISSING_CEILING 624 -> 307.

Two lines needed judgement rather than translation, and both are written up in the
CHANGELOG so a later reader does not take them for slips. Jellyfin's setup step tells
the reader to pick Hungarian in the wizard — wrong advice for an English household,
so the English says "choose your language". Mealie's "Hungarian is available too"
becomes "English and Hungarian among them". Neither adds a promise the Hungarian does
not make; the Hungarian is untouched in both.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-20 16:32:18 +02:00
parent 0695d8eeda
commit 5fe70d1f8a
19 changed files with 565 additions and 2 deletions
+35
View File
@@ -84,3 +84,38 @@ healthcheck:
path: "/healthcheck"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'An audiobook and podcast server'
app_info:
tagline: 'An audiobook and podcast library, player and sync'
use_cases:
- 'Sort and play your audiobooks and podcasts'
- 'Details arrive on their own - covers, descriptions, chapters'
- 'Carry on where you stopped (it syncs between devices)'
- 'Subscribe to a podcast and let it download itself'
- 'Apps of its own for phones (Android, iOS)'
first_steps:
- 'Open audiobooks.DOMAIN in your browser'
- 'Create the admin account the first time you open it'
- 'Add your libraries (/audiobooks and/or /podcasts)'
- 'Wait for the first scan to finish'
- 'Install the Audiobookshelf app on your phone'
prerequisites:
- 'An external hard drive is needed to keep the audiobooks on'
- 'Audiobooks sorted into folders (Author/Book/, for example)'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: HDD_PATH
label: 'Audiobook library path'
description: 'The path to the external hard drive'
placeholder: '/mnt/felhom-drives/hdd_1'
+34
View File
@@ -73,3 +73,37 @@ healthcheck:
path: "/healthz"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'VS Code in your browser - write code from anywhere'
app_info:
tagline: 'VS Code in your browser - a full development setup from anywhere'
default_creds: '(the password generated at install time)'
use_cases:
- 'Write code from anywhere, on any device, in a browser'
- 'Everything VS Code does - extensions, terminal, debugging'
- 'Works over a slow connection too'
- 'The same setup whichever machine you sit at'
- 'Usable on a tablet and on an iPad'
first_steps:
- 'Open code.DOMAIN in your browser'
- 'Enter the access password'
- 'Open the terminal (Ctrl+`) and install your tools'
- 'Install extensions in the Extensions panel'
prerequisites:
- 'An x86 processor is needed for the best speed'
- 'At least 1 GB of free RAM is recommended'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: PASSWORD
label: 'Access password'
description: 'The sign-in password for the editor.'
+39
View File
@@ -84,3 +84,42 @@ initial_credentials:
username_key: username
password_key: password
note: "Kezdeti admin jelszó (a telepítéskor beállított). Az első belépés után változtasd meg a Crafty felületén — ez a kártya továbbra is a kezdeti jelszót mutatja."
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A Minecraft server manager with a web interface'
app_info:
tagline: 'A Minecraft server manager - build your own world'
use_cases:
- 'Create and run a Minecraft server from a web page'
- 'Run several servers side by side (Java and Bedrock)'
- 'Backups and scheduled restarts happen on their own'
- 'Manage players and reach the console'
- 'Handle the server files from your browser'
first_steps:
- 'Open minecraft.DOMAIN in your browser'
- 'The first sign-in details are on this page, under Initial sign-in details'
- 'Create a new Minecraft server with the wizard'
- 'Set the server options (game mode, difficulty and the rest)'
- 'Set the server port inside the range 25565-25575 (server.properties -> server-port); the first server uses 25565 and the rest 25566-25575'
- 'On your home network, connect to the server''s local IP address and port (192.168.x.x:25565, for example) - the Minecraft client''s local network search does not list it on its own, so type the address in by hand'
- 'Reaching it over the internet needs port forwarding to the port or ports you chose - ask whoever runs the network'
prerequisites:
- 'At least 2 GB of free RAM is recommended (the Minecraft server + Crafty)'
- 'An x86 processor is needed (it does not run on a Raspberry Pi)'
- 'Minecraft servers may use the port range 25565-25575 (at most 11 servers at once)'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: CRAFTY_PASSWORD
label: 'Admin password'
description: 'The first password of Crafty''s admin user (admin) - this is what signs you in'
initial_credentials:
note: 'The first admin password (the one set at install time). Change it in Crafty after your first sign-in - this card keeps showing the first password.'
+27
View File
@@ -59,3 +59,30 @@ healthcheck:
checks:
- type: http
port: 8080
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A minimalist information dashboard'
app_info:
tagline: 'A minimalist dashboard - RSS, weather and bookmarks on one page'
use_cases:
- 'RSS news, YouTube, Reddit and more on a single page'
- 'Weather and system widgets'
- 'Keep your bookmarks and favourite sites in order'
- 'Very fast, and it asks almost nothing of the machine'
- 'A layout you set yourself, in a YAML file'
first_steps:
- 'Open dashboard.DOMAIN in your browser'
- 'Edit the glance.yml configuration file in the volume'
- 'Add your RSS feeds and widgets'
- 'Arrange the layout the way you want it'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
+32
View File
@@ -70,3 +70,35 @@ healthcheck:
checks:
- type: http
port: 53842
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'Temporary file sharing with links that expire'
app_info:
tagline: 'Temporary file sharing with links that expire'
default_creds: 'User: admin - the password is on the Settings page (the first password, generated at install time)'
use_cases:
- 'Share files safely with links that expire'
- 'Set how long a link lasts and how many downloads it allows'
- 'Download links you can put a password on'
- 'An API, for uploading from a script'
- 'Encrypted storage, and end-to-end encryption if you want it'
first_steps:
- 'Open share.DOMAIN in your browser'
- 'Sign in: user "admin". The password is on the Settings page'
- 'Upload a file and make a share link'
- 'Set the link''s expiry and its download limit'
- 'Share the link - it expires on its own when the time is up'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: GOKAPI_PASSWORD
label: 'Admin password'
description: 'The password of Gokapi''s admin user (admin) - this is what signs you in'
+29
View File
@@ -65,3 +65,32 @@ healthcheck:
checks:
- type: http
port: 5000
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'Family tree and genealogy software'
app_info:
tagline: 'A family tree - a genealogy database with a web interface'
use_cases:
- 'Build a family tree and see it drawn'
- 'Record people, events, places and how they connect'
- 'Attach photographs and documents to a person'
- 'GEDCOM import and export'
- 'The whole family can reach the tree'
first_steps:
- 'Open family.DOMAIN in your browser'
- 'Create the admin account'
- 'Import a GEDCOM file you already have, or start an empty tree'
- 'Add the first family members'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: GRAMPSWEB_SECRET_KEY
label: 'Encryption key'
+36
View File
@@ -81,3 +81,39 @@ healthcheck:
path: "/health"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A free and open source media server'
app_info:
tagline: 'A free media server - stream films, series and music'
use_cases:
- 'Stream films, series and music to any device'
- 'Details arrive on their own - covers, descriptions, ratings'
- 'Live TV and recording, with a TV tuner'
- 'Several people, each with their own profile and parental controls'
- 'Apps for phones and TVs (Android, iOS, Roku, Fire TV and more)'
first_steps:
- 'Open media.DOMAIN in your browser'
- 'Follow the setup wizard - choose your language'
- 'Create the admin account'
- 'Add your libraries (films: /media/movies, series: /media/shows)'
- 'Install the Jellyfin app on your phone or TV'
prerequisites:
- 'An external hard drive is needed to keep the media files on'
- 'At least 2 GB of free RAM is recommended'
- 'Films and series sorted into folders (/media/movies/, /media/shows/)'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: HDD_PATH
label: 'Media library path'
description: 'The path to the external hard drive where the films, series and music are kept'
placeholder: '/mnt/felhom-drives/hdd_1'
+29
View File
@@ -80,3 +80,32 @@ smtp_mapping:
from_var: SMTP_FROM_EMAIL
from_name_var: SMTP_FROM_NAME
from_local: mealie
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A recipe manager and meal planner'
app_info:
tagline: 'A recipe manager and meal planner for the household'
default_creds: 'changeme@example.com / MyPassword'
use_cases:
- 'Collect recipes and sort them by category and tag'
- 'Import a recipe from a web page on its own'
- 'Plan the week''s meals and get a shopping list out of it'
- 'Share recipes with family and friends'
- 'A multilingual interface - English and Hungarian among them'
first_steps:
- 'Open mealie.DOMAIN in your browser'
- 'Sign in: changeme@example.com / MyPassword'
- 'Change the e-mail address and password straight away'
- 'Import your first recipe by pasting a web page address'
- 'Try the meal planner'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
+35
View File
@@ -80,3 +80,38 @@ healthcheck:
path: "/ping"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A light music server with Subsonic API support'
app_info:
tagline: 'A light music server - stream your own music collection'
use_cases:
- 'Stream your own music collection to any device'
- 'Use any Subsonic-compatible phone app'
- 'Playlists, favourites and ratings'
- 'Details and cover art arrive on their own'
- 'Several people, each with their own library and settings'
first_steps:
- 'Open music.DOMAIN in your browser'
- 'The first user becomes the admin automatically'
- 'Create your account and wait for the first scan'
- 'Install a Subsonic-compatible app (Subtracks or play:Sub, for example)'
- 'Give it the server address: https://music.DOMAIN'
prerequisites:
- 'An external hard drive is needed to keep the music files on'
- 'Music files sorted into folders (Artist/Album/track.flac, for example)'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: HDD_PATH
label: 'Music collection path'
description: 'The path to the external hard drive where the music files are kept'
placeholder: '/mnt/felhom-drives/hdd_1'
+40
View File
@@ -89,3 +89,43 @@ healthcheck:
path: "/identity"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A popular media server with a polished interface'
app_info:
tagline: 'A premium media server with excellent app support'
use_cases:
- 'Stream films, series and music through a polished interface'
- 'It re-encodes on the fly for whatever device you are on'
- 'Watch Together - watch a film with someone far away'
- 'Skip intros and end credits (Plex Pass)'
- 'Strong phone apps and Smart TV support'
first_steps:
- 'Generate a claim token at https://plex.tv/claim'
- 'After the install, open plex.DOMAIN'
- 'Connect your Plex account to the server'
- 'Add your libraries (films: /media/movies, series: /media/shows)'
- 'Install the Plex app on your devices'
prerequisites:
- 'A Plex account is needed (sign up free at plex.tv)'
- 'An external hard drive to keep the media files on'
- 'At least 2 GB of free RAM (more is better for re-encoding)'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: HDD_PATH
label: 'Media library path'
description: 'The path to the external hard drive'
placeholder: '/mnt/felhom-drives/hdd_1'
- env_var: PLEX_CLAIM
label: 'Plex Claim Token'
description: 'Generate it at https://plex.tv/claim (it is valid for 4 minutes)'
placeholder: 'claim-xxxxxxxxxxxx'
+36
View File
@@ -83,3 +83,39 @@ healthcheck:
path: "/ping"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'Series download and file themselves'
app_info:
tagline: 'Series download and file themselves'
use_cases:
- 'Series are downloaded and filed on their own'
- 'A wish list - new episodes arrive as they appear'
- 'Quality rules (480p to 4K, with an upgrade when a better copy shows up)'
- 'Works with Jellyfin/Plex and with download clients'
- 'Subtitles are fetched on their own'
first_steps:
- 'Open sonarr.DOMAIN in your browser'
- 'Set up a download client (qBittorrent, for example)'
- 'Add your indexers (or use Prowlarr)'
- 'Set the root folder (/media/shows)'
- 'Search for a series and add it to your list'
prerequisites:
- 'An external hard drive is needed to keep the media files on'
- 'A download client is needed (qBittorrent, for example - installed separately)'
- 'Access to an indexer is needed for searching'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: HDD_PATH
label: 'Media library path'
description: 'The path to the external hard drive'
placeholder: '/mnt/felhom-drives/hdd_1'
+32
View File
@@ -73,3 +73,35 @@ healthcheck:
- type: http
port: 8080
path: "/accounts/login/"
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A recipe manager and meal planner'
app_info:
tagline: 'A recipe manager and meal planner for the household'
use_cases:
- 'Keep all your recipes in one place'
- 'Import a recipe from a web page with one click'
- 'Plan the week''s meals and get a shopping list out of it'
- 'Several people - the household can plan together'
- 'Share a recipe by link with family and friends'
first_steps:
- 'Open recipes.DOMAIN in your browser'
- 'Create the admin account'
- 'Import your first recipe from a web page (Bookmarklet)'
- 'Try the meal planner'
- 'Invite the household'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: DB_PASSWORD
label: 'Database password'
- env_var: SECRET_KEY
label: 'Encryption key'
+23
View File
@@ -55,3 +55,26 @@ healthcheck:
checks:
- type: http
port: 8080
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'SSH and server management in a browser'
app_info:
tagline: 'An SSH terminal in your browser - reach a server from anywhere'
use_cases:
- 'Reach your server over SSH from a browser'
- 'No SSH client needed on the computer you are sitting at'
- 'Everyday server jobs from anywhere'
first_steps:
- 'Open terminal.DOMAIN in your browser'
- 'Connect to your server over SSH'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
+28
View File
@@ -60,3 +60,31 @@ healthcheck:
checks:
- type: http
port: 3001
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'Watch your services and websites'
app_info:
tagline: 'Service monitoring - it tells you when something stops working'
use_cases:
- 'Watch whether your websites and services answer'
- 'HTTP, TCP, DNS, ping and other checks'
- 'Alerts by e-mail, Telegram, Discord and more'
- 'A public status page for the people who use them'
- 'Clear graphs of how much of the time things were up'
first_steps:
- 'Open status.DOMAIN in your browser'
- 'Create the admin account the first time you open it'
- 'Add your first monitor (your own website, for example)'
- 'Set up alerts (e-mail, Telegram and so on)'
- 'Optional: build a public status page'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
+30
View File
@@ -69,3 +69,33 @@ healthcheck:
path: "/api/v1/info"
expect:
status: 200
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'Task lists and boards (a Todoist/Trello alternative)'
app_info:
tagline: 'Task management - lists, Kanban boards and Gantt charts'
use_cases:
- 'Keep your task lists and to-dos'
- 'A Kanban board view (Trello-like)'
- 'A Gantt chart for scheduling a project'
- 'Shared lists, so a team can work together'
- 'Reminders, due dates, labels and priorities'
first_steps:
- 'Open tasks.DOMAIN in your browser'
- 'Create your account'
- 'Create your first project and task list'
- 'Try the Kanban and List views'
- 'Invite the household, or your colleagues'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: VIKUNJA_SERVICE_JWTSECRET
label: 'JWT encryption key'
+31
View File
@@ -67,3 +67,34 @@ healthcheck:
checks:
- type: http
port: 80
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'A workout log and fitness planner'
app_info:
tagline: 'A workout log - training plans, progress and a weight diary'
default_creds: 'admin / adminadmin'
use_cases:
- 'Build training plans and follow them'
- 'Track your weight and measurements on a graph'
- 'An exercise database with pictures and descriptions'
- 'Track calories and nutrition'
- 'An API, for fitness app integrations'
first_steps:
- 'Open fitness.DOMAIN in your browser'
- 'Sign in: admin / adminadmin'
- 'Change the password straight away'
- 'Build your training plan'
- 'Start logging your workouts'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'
- env_var: SECRET_KEY
label: 'Encryption key'
+27
View File
@@ -59,3 +59,30 @@ healthcheck:
checks:
- type: http
port: 3000
# --- English copy (localisation slice 5, R-560) --------------------------------------------
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
i18n:
en:
description: 'Wish lists shared across the household'
app_info:
tagline: 'A family wish list - for Christmas and birthdays'
use_cases:
- 'Make wish lists for Christmas and birthdays'
- 'Invite the household so each keeps their own list'
- 'Claim a gift without spoiling the surprise'
- 'Add prices and links to the gifts'
- 'Organise a present several people chip in for'
first_steps:
- 'Open wishes.DOMAIN in your browser'
- 'Create your account'
- 'Create your first wish list'
- 'Invite the household'
deploy_fields:
- env_var: DOMAIN
label: 'Domain'
description: 'The server domain name'
- env_var: SUBDOMAIN
label: 'Subdomain'
description: 'The subdomain this app answers on'