Skip to content

i18n(de): add/update German translations - #1161

Merged
ascorbic merged 16 commits into
emdash-cms:mainfrom
pitscher:i18n/de
May 31, 2026
Merged

ascorbic merged 16 commits into
emdash-cms:mainfrom
pitscher:i18n/de

Conversation

@pitscher

@pitscher pitscher commented May 24, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

  • This PR adds missing translations for the German language
  • Current German coverage (estimate) of this PR: 99% (100% is not yet possible because 2 msgid's are causing issues, see below)
  • T.W.I.M.C. I am a native German speaker/writer/citizen :D
  • I also updated some already existing (GER) translations because they were either not well phrased or incorrect
  • I checked the translations live/using the local demo setup to be aware of the context
  • All translations are using the informal "du/dich" wording instead of the very formal "sie/ihr" form. Reason being:
    • "du/dich" establishes are warm/welcoming feel as soon as a user starts using EmDash.
    • I ensured that while using it, the professional tone of EmDash as a software users are supposed to trust is being incorporated. The German language allows this without the need to use the formal "sie/ihr" form.
    • The writing form ("sie" vs. "du") can be adjusted anytime in case the maintainers feel the need to do so (I'm happy to take care of it - although I prefer the informal version for the reason stated above).
  • I avoided a mixture of both languages (EN/DE) wherever possible.
    • Example: The translation of "Plugin" for this projects context is "Erweiterung". As someone working in IT, I do not feel happy with this because I am used to English words like "Plugin" - because of my job. However, we should not make the mistake and follow this approach. This would potentially limit the German speaking users of EmDash to folks who do not have issues with a heavy mixture of English and German (=usually IT/Tech folks). Instead, we should aim to provide a native German translation. Result: Folks like me who do prefer the English translation will use it, but folks who do not feel comfortable with English can switch EmDash to German without still being presented with English terms all over the place.

My ToDo's prior to requesting a review

  • Finalize German translations
  • Review all already existing translations again and correct them if necessary (e.g. grammar, wording, ...)
  • Perform a final check for consistency to ensure the translations do not differ in the same admin area/context
  • Complete the PR checklist below
  • If required: rebase my branch to get the latest changes and resolve potential conflicts
  • Leave the draft stage of this PR by requesting a review

Issues found

Feel free to let me know if you would like me to create an issue and/or a PR to fix this.

The msgid "Add" & msgid "Edit" cannot be translated into German.

Additionally, the msgid "{0} permission{1}" needs to be reworked as it currently does not allow the German plural to be used. I implemented a temporary fix and added a comment to keep track of this.

See the pictures at the end of this PR description to better understand the issue

Closes #

Type of change

  • Bug fix
  • Feature (requires maintainer-approved Discussion)
  • Refactor (no behavior change)
  • Translation
  • Documentation
  • Performance improvement
  • Tests
  • Chore (dependencies, CI, tooling)

Checklist

  • I have read CONTRIBUTING.md
  • pnpm typecheck passes
  • pnpm lint passes
  • pnpm test passes (or targeted tests for my change) - not applicable
  • pnpm format has been run
  • I have added/updated tests for my changes (if applicable)
  • User-visible strings in the admin UI are wrapped for translation (if applicable). Do not include messages.po changes except in translation PRs — a workflow extracts catalogs on merge to main.
  • I have added a changeset (if this PR changes a published package)
  • New features link to an approved Discussion: https://github.com/emdash-cms/emdash/discussions/...

AI-generated code disclosure

  • This PR includes AI-generated code — model/tool:

Screenshots / test output

Correct would be: "+ Category hinzufügen" or "+ {collectionLabel} hinzufügen"
The issue is that msgid "Add" & msgid "Edit" are not flexible enough to cover this case. Additionally, they are used at many other places (like editing already existing taxonomies).
Screenshot 2026-05-29 at 23 51 32
Screenshot 2026-05-30 at 00 04 42

Screenshot 2026-05-29 at 23 54 29 Screenshot 2026-05-30 at 00 05 39 Screenshot 2026-05-30 at 14 53 01

@changeset-bot

changeset-bot Bot commented May 24, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: b569363

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actions Bot commented May 24, 2026 •

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@github-actions

Copy link
Copy Markdown
Contributor

Scope check

This PR changes 2,085 lines across 1 files. Large PRs are harder to review and more likely to be closed without review.

If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs.

See CONTRIBUTING.md for contribution guidelines.

@github-actions

github-actions Bot commented May 24, 2026 •

Copy link
Copy Markdown
Contributor

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
packages/admin/src/locales/de/messages.po Localization changed, will be marked as complete. 🔄️
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@pitscher

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request May 24, 2026
@pitscher
pitscher marked this pull request as ready for review May 29, 2026 22:30
@github-actions github-actions Bot added the review/needs-review No maintainer or bot review yet label May 29, 2026

@emdashbot emdashbot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a solid translation PR that fills in a large number of missing German strings. The informal "du" tone is consistent, and the effort to avoid EN/DE mixing is thoughtful. The author also correctly identified two upstream source-code issues (msgid "Add" and msgid "Edit" used in contexts where German word order breaks the UI, and msgid "{0} permission{1}" which uses English-style suffix pluralization).

However, a handful of permission/scope labels semantically shift "and" to "or", turning cumulative capabilities into alternatives. For example, "Create, update, and delete content" becomes "Erstelle, aktualisiere oder entferne Inhalte". In German, "und" means the user gets all three abilities; "oder" reads as "pick one of these". This is misleading on API-token and marketplace permission screens.

Additionally, one translation drops plural handling and always renders the plural form, producing grammatically incorrect singular text ("1 Berechtigungen").

Finally, @emdash-cms/admin is a published package, so AGENTS.md/CONTRIBUTING.md require a changeset for any user-visible change.

Summary of issues

  • 5 semantic mistranslations in permission/scope labels ("and" → "or" or adding "remove" not in source).
  • 1 missing plural form that produces incorrect singular grammar.
  • 1 missing changeset for the published admin package.

@github-actions github-actions Bot added review/needs-rereview New commits since the last review and removed review/needs-review No maintainer or bot review yet labels May 30, 2026
@pitscher

pitscher commented May 30, 2026 •

Copy link
Copy Markdown
Contributor Author

Nice auto review - like it.
You can argue about the "and/or" / "und/oder" but I agree in this case to not leave any room for misunderstandings - especially with permissions. -> fixed with b2ef340

The finding: 1 missing plural form is kinda a false flag.
For this exact case I had to use a temporary fix (therefore the hardcoding) and I stated this in a comment right next to the msgid block. This approach does not cause issues because this msgid is only used in one place. See: https://github.com/pitscher/emdash/blob/i18n/de/packages/admin/src/locales/de/messages.po#L209

For the missing change set: I checked a few other i18n PRs that got merged and it seems like for plain translation PRs no change set is required. @ascorbic please confirm this. :) This PR is ready for a review.

@pkg-pr-new

pkg-pr-new Bot commented May 31, 2026

Copy link
Copy Markdown

Open in StackBlitz

@emdash-cms/admin

npm i https://pkg.pr.new/@emdash-cms/admin@1161

@emdash-cms/auth

npm i https://pkg.pr.new/@emdash-cms/auth@1161

@emdash-cms/blocks

npm i https://pkg.pr.new/@emdash-cms/blocks@1161

@emdash-cms/cloudflare

npm i https://pkg.pr.new/@emdash-cms/cloudflare@1161

emdash

npm i https://pkg.pr.new/emdash@1161

create-emdash

npm i https://pkg.pr.new/create-emdash@1161

@emdash-cms/gutenberg-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/gutenberg-to-portable-text@1161

@emdash-cms/x402

npm i https://pkg.pr.new/@emdash-cms/x402@1161

@emdash-cms/plugin-ai-moderation

npm i https://pkg.pr.new/@emdash-cms/plugin-ai-moderation@1161

@emdash-cms/plugin-atproto

npm i https://pkg.pr.new/@emdash-cms/plugin-atproto@1161

@emdash-cms/plugin-audit-log

npm i https://pkg.pr.new/@emdash-cms/plugin-audit-log@1161

@emdash-cms/plugin-color

npm i https://pkg.pr.new/@emdash-cms/plugin-color@1161

@emdash-cms/plugin-embeds

npm i https://pkg.pr.new/@emdash-cms/plugin-embeds@1161

@emdash-cms/plugin-forms

npm i https://pkg.pr.new/@emdash-cms/plugin-forms@1161

@emdash-cms/plugin-webhook-notifier

npm i https://pkg.pr.new/@emdash-cms/plugin-webhook-notifier@1161

commit: b569363

@ascorbic ascorbic left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, thanks. I'm glad German is now up to date! Well spotted on the source issues. Could you do a follow up PR with fixes to those source strings? Once that's merged we can get the translations updated.

@ascorbic
ascorbic enabled auto-merge (squash) May 31, 2026 06:46
@ascorbic
ascorbic merged commit 83335cb into emdash-cms:main May 31, 2026
35 checks passed
@pitscher

Copy link
Copy Markdown
Contributor Author

Will do

@pitscher
pitscher deleted the i18n/de branch May 31, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants