mirror of
https://github.com/kevinveenbirkenbach/homepage.veen.world.git
synced 2026-08-24 05:04:33 +00:00
feat(i18n): translate labels, and keep brand names out of it
name and title were translated at render time but never machine-filled, on the grounds that no backend tells the menu label "Pictures" from the brand "Mastodon". That left the visible half of a card in English. They are filled now, and the two key sets collapse into one. The brands need somewhere to be named instead. app/i18n/keep.txt lists them, one per line, and every entry is stored as itself in every target language: no request, and never over an entry written by hand. --keep adds one-off strings, --keep-file points elsewhere. The shipped list holds the 43 product names that appear as name: or title: in config.sample.yaml. Generic labels — Pictures, Imprint, Settings, Certificates — are deliberately absent, and so are Cybermaster, Polymath and Yachtmaster, which read as brand or as job title depending on who is asking. Two of these behaviours first shipped unguarded. A test that protected a string and asserted the hand-written value survived passed either way, because a run where nothing is missing reports "complete" and never writes; and nothing exercised main(), so the keep file could stop being read without a failure. Both are covered. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
46
app/i18n/keep.txt
Normal file
46
app/i18n/keep.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
# Strings utils/i18n_sync.py stores as themselves instead of translating.
|
||||
# One per line; blank lines and lines starting with # are ignored.
|
||||
|
||||
Baserow
|
||||
Big Blue Button
|
||||
Bluesky
|
||||
Buy me a Coffee
|
||||
Discourse
|
||||
Duolingo
|
||||
Eversports
|
||||
Facebook
|
||||
Friendica
|
||||
Garmin
|
||||
Gitea
|
||||
GitHub
|
||||
GitHub Sponsors
|
||||
Infinito.Nexus
|
||||
Instagram
|
||||
Keycloak
|
||||
LDAP
|
||||
LinkedIn
|
||||
Mailu
|
||||
Mastodon
|
||||
Matomo
|
||||
Matrix
|
||||
Nextcloud
|
||||
Open Project
|
||||
Patreon
|
||||
PayPal
|
||||
Peertube
|
||||
Pixelfed
|
||||
Signal
|
||||
Snipe IT
|
||||
Spotify
|
||||
Taiga
|
||||
Telegram
|
||||
Twitter
|
||||
WhatsApp
|
||||
XING
|
||||
YouTube
|
||||
Yourls
|
||||
Zoom
|
||||
freelancermap.de
|
||||
malt
|
||||
phpMyAdmin
|
||||
upwork.com
|
||||
@@ -23,9 +23,9 @@ CONTENT_DIR = I18N_DIR / "content"
|
||||
SOURCE_LANGUAGE = "en"
|
||||
|
||||
|
||||
AUTOFILL_KEYS = frozenset({"description", "text", "warning", "info", "subtitel"})
|
||||
|
||||
TRANSLATABLE_KEYS = AUTOFILL_KEYS | frozenset({"name", "title"})
|
||||
TRANSLATABLE_KEYS = frozenset(
|
||||
{"description", "info", "name", "subtitel", "text", "title", "warning"}
|
||||
)
|
||||
|
||||
UI_STRINGS = (
|
||||
"Alternatives",
|
||||
|
||||
Reference in New Issue
Block a user