Add German website and news translations - #247
aholbreich wants to merge 25 commits into
Conversation
|
This is the preferred base for the German edition: structural checks pass, and the meetup-rule/download-period extraction fixes are useful. Please coordinate with #263 to avoid conflicting catalogue and domain changes. The remaining release prerequisite is maintainer-side deployment and HTTPS/language verification of de.omarchy.org before its selector entry goes live. |
|
Hey! Since @dhh called this the preferred base for the German translation, let's go with your PR (instead of mine) and coordinate here. I have one small fix in #263 for the “Omarchy herunterladen 4.x” word-order issue, using a How would you prefer to get that change — should I open a PR against your branch, or would you rather cherry-pick the commit? |
Resolve the language count in docs/translations.md: master had raised it to 31 for Norwegian, this branch had dropped the number entirely. German makes 32, so state that and keep both new rows in the domain table. Master introduced bundled social-card font subsets after this branch was opened. Map de to the Latin subset, re-subset that font so it carries the German Z and ß, and generate the 22 German cards under public/brand/social/de/. The other subsets are byte-identical apart from their head timestamps and are left untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012BJ8DFAyYMb5UZrF2hqM2C
The version was concatenated after the translated label, which forces every language into English word order: German rendered "Omarchy herunterladen 4.0.3". Take the version as a VERSION placeholder inside the translated string instead, so German can say "Omarchy 4.0.3 herunterladen" and other languages can place it where their grammar wants it. This retires the "Download Omarchy" key. The other 30 locales pick the new one up on the next hourly translation run; they join an existing backlog of 488 pending UI/prose strings, so the 30 extra are marginal. Taken from omacom#263 by Michael Trojanek, who stood that PR down in favour of this one at DHH's request. Co-Authored-By: Michael Trojanek <michael.trojanek@relativkreativ.at> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012BJ8DFAyYMb5UZrF2hqM2C
|
Thanks for coordinating, and for standing #263 down — appreciated. I've cherry-picked the One note for reviewers: this retires the Also rebased onto current master. The only conflict was the language count in Still outstanding: German has 5 pending news items (the two new September articles, plus three that went stale from master's edits). Those are queued for the translation bot unless you'd rather they be in the PR. |
|
let me know if t pending news are part of this PR. Or i rather addon |
|
Ok i just update to articles to make it release ready.. |
Adds the 71 German UI/prose strings that were still missing from src/i18n/messages/de.json, mostly from the Meetups and Doctrine pages, which appear to have landed on master after this branch was last rebased. Verified against the current da.json catalogue that no key remains missing. Peter Wilfahrt <pw@pw.is>
|
While reviewing this PR I noticed |
add-german-translation still special-cased the Meetups page for extraction (rules and country list from the imported HTML, minus the calendar widget). Master has since moved Meetups to a fully React-rendered page, same as Teams, and both are now skipped by the generic extractor. Took master's version of that hunk since it reflects the current architecture; kept the rest of this branch as is. Updated the one test that exercised the old Meetups special case to match the new skip behavior, mirroring the existing Teams coverage. All translation-sources tests pass; the one unrelated failing test on this machine (dev-passthrough.test.mjs) needs a symlink privilege this sandbox does not have and is unaffected by this change. Note for follow-up: master's new extractor logic does not appear to capture the Meetups rules/country copy through any other path anymore, so that content may no longer be tracked for translation at all, for any language, going forward. Worth flagging upstream rather than working around here. Peter Wilfahrt <pw@pw.is>
Master added the full ten-principle Doctrine page, two new Foundation hires (Krzysztof Wilczynski, Emir Beganović) with bios, an updated Quickshell sponsorship section, and a news article, since this branch was last brought up to date. Fills in the resulting 37 pending German UI/prose strings plus the new news article. Also corrects an earlier translation: outfoxxed's staff role now reads 'Leiter Omarchy Shell' rather than the untranslated 'Head of Omarchy Shell', matching how the existing outfoxxed hire announcement already translates the same title.
Emir now also serves on Omarchy Core, so master replaced his bio with a longer source string. Translate the new one, reusing the wording that was already reviewed, and drop the superseded key.
Covers the Omacom Foundation staff page, the outfoxxed and Krzysztof Wilczynski bios, the Quickshell description, and the country names and pagination labels the teams and patrons pages render. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JwzhBoeaayQeBRLtBWNtFg
…ation # Conflicts: # scripts/translation-sources.mjs
Master added the Doctrine page, the command menu, Omarchy M, and two news posts since this branch last tracked it. Covers the 44 site strings and the two articles German was missing: - the ten Doctrine principles and their in-page navigation - the command menu's Start, Gehe zu, and Zurück labels - Omarchy M, its team description, and the Apple hardware contact line - the remaining country names on the teams and patrons pages - "Wir stellen vor: Omarchy M" and the Emir Beganović hiring announcement Informal du throughout, matching the rest of the German edition. Product, team, and menu labels stay unchanged, as do all links and code literals. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JwzhBoeaayQeBRLtBWNtFg
|
Thanks! Three things. #263 is resolved. relativkreativ closed it in favour of this PR on Sep 9, and Rebased onto current master. The only conflict was
One thing worth flagging. The extraction fix exposes 16 strings that were never On de.omarchy.org: I looked at whether the selector entry could be held back |
aholbreich translated the Doctrine page, staff page, country names, and the new Omarchy M (Mac) content independently on this branch while this PR was open, overlapping with a lot of what was translated here. Where both sides translated the same source string, kept aholbreich's wording throughout (messages/de.json, de/blocks.json, de/news.json, and the Emir Beganović article, which he also translated separately - took his version wholesale). Kept this branch's own strings that his side doesn't have yet (mostly Meetups-page copy). For scripts/translation-sources.mjs, took his side too: it still special-cases the Meetups page for extraction (rules and country list from the imported HTML minus the calendar widget), rather than the skip-everything behavior current master moved to. That keeps Meetups content translatable, which is the better outcome regardless of whose branch it came from.
|
@p-w what would you say now? |
Master added four new automatically generated patron tiers (8K, 2K, 256B, 16B) on the Patrons page, and DHH revised the Omarchy M article to add Ryan Murray and rewrite the Drivers-and-kernel paragraph and the team-size count. Translated the new tiers following the existing USD-amount convention, and refreshed the news translation's stale source hash along with the changed paragraphs.
|
Looks good from here. Just pushed the last bit on #1 (aholbreich#1) to catch up with what landed on master today — the four new automatically-generated patron tiers on Current state on my branch:
On the other-locales backlog you flagged on the 11th: no objection to clearing it in a separate PR if you want to, but that's really a call for you and the per-locale owners, not something German needs. So: ready to merge from my side. 👍 |
aholbreich
left a comment
There was a problem hiding this comment.
Reviewed locally at f23e343d2699 and found no blocking issues.
Verified:
npm testnpm run lintnpm run typechecknpm run checknpm run check:translations -- de --strict-site --strict-newsnpm run build:locale -- de
I also checked that the German news HTML preserves the source tag structure and numeric facts. The locale registration, complete site/news catalogs, fallback regression fixture, and regenerated social-font subset are internally consistent, and the font tests confirm identical rendering from the subset and source fonts.
… Cloud/Brian Cartmell announcements Also refreshes the four existing patron-funding articles whose figures shifted with these new pledges, including Anthropic's removal as a token patron in two of them, and adds the new patron tier (25K), Snapdragon team description, and Switzerland to the UI catalogue.
Adds the new premier-sponsorship entry on the Sponsorships page, the updated multi-year-sponsorships summary on the Foundation overview, and the full announcement article.
|
Quick progress update. Just translated the Sybil Solutions/0xSero sponsorship announcement that landed on master yesterday — the new sponsorship section, the updated Foundation summary, and the full article (aholbreich#1). Since my last update here, German also picked up: the Doctrine page and staff bios (merged with aholbreich's own parallel translation work on the same content, keeping his wording where we'd both translated the same string), and the Alibaba Cloud, Omarchy Dragon, OrcaRouter, and Brian Cartmell/American Cloud announcements, including the Anthropic token-patron correction reflected accurately in the funding totals. Still fully caught up: |
Fill remaining German UI strings
Also restores the generated meetup map to master's copy; a build had committed a local regeneration of it in an earlier merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The version was concatenated after the translated label, which forces every language into English word order: German rendered "Omarchy herunterladen 4.0.3". Take the version as a VERSION placeholder inside the translated string instead, so German can say "Omarchy 4.0.3 herunterladen" and other languages can place it where their grammar wants it. This retires the "Download Omarchy" key. The other locales pick the new one up on the next hourly translation run. Taken from omacom#263 by Michael Trojanek. Co-Authored-By: Michael Trojanek <michael.trojanek@relativkreativ.at> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rman-translation # Conflicts: # scripts/lib/translation-sources.test.mjs
|
Caught up with master (0 behind) and merged @p-w 's work. German is complete: check:translations -- de --strict-site --strict-news reports 0 pending and 32/32 articles, including ThePrimeagen and Emir's new start date. :) The non-German fixes (meetup rules, download labels, the VERSION placeholder) are now split into #469 so they can land on their own. |
|
@dhh #377 seem to adds a de edition with its own machine-translated German. Would you rather:
Either works for me |
Adds German (
de-DE) translations for the website and all 22 current news articles. Uses informal “du”; commands, product names, and actual Omarchy menu labels stay unchanged. The manual still links to the English site.Proposes
de.omarchy.orgfor the German edition. DNS and hosting would need to be set up by the maintainers; nothing has been deployed there.While checking the pages, I found that the translation checker skipped the imported meetup rules, the “Everywhere” filter, and the download-period labels. The first commit covers those gaps and adds regression tests. The second adds German.
Checked locally: