Skip to content

fix(i18n): complete and improve German (de-DE) provider translations#8284

Open
tobiasheinrichfaska wants to merge 3 commits into
janhq:mainfrom
tobiasheinrichfaska:fix/de-translation-provider
Open

fix(i18n): complete and improve German (de-DE) provider translations#8284
tobiasheinrichfaska wants to merge 3 commits into
janhq:mainfrom
tobiasheinrichfaska:fix/de-translation-provider

Conversation

@tobiasheinrichfaska
Copy link
Copy Markdown

What

Completes and improves the German (de-DE) translation of web-app/src/locales/de-DE/provider.json. Part of #8221.

Changes

  • Adds the 9 missing keys (API format/type labels, base-URL + API-key labels & placeholders, validation message).
  • Fixes 2 stale values where the English source had drifted:
    • addOpenAIProvider: „OpenAI Anbieter hinzufügen" → „Benutzerdefinierten Anbieter hinzufügen" (EN is now "Add Custom Provider").
    • enterNameForProvider: generic label → placeholder with example, matching current EN.
  • Keeps the existing informal du / imperative register, preserves key order, and leaves the real Anthropic endpoint URL untouched.

Testing

JSON validated (parses; key order matches en/provider.json). No missing keys remain for this file.

Note on screenshots

The contributing guide asks for a screenshot. This PR only edits a locale JSON file (no layout or logic change). As a free-time contributor on my personal device, I deliberately did not install and build the full app for security reasons, so I can't provide a running-app screenshot. Happy to coordinate if a maintainer wants to verify in-app.

Replace "Anbieter" with the loanword "Provider" (matches the term used
across the German UI) and capitalize the informal address ("Deinen").

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tokamak-pm
Copy link
Copy Markdown

tokamak-pm Bot commented Jun 7, 2026

PR Review: fix(i18n): complete and improve German (de-DE) provider translations

Summary

This PR updates web-app/src/locales/de-DE/provider.json to complete the German translation for the provider-related UI. It:

  • Adds 9 missing keys (apiTypeLabel, apiTypeOpenAI, apiTypeAnthropic, baseUrlLabel, baseUrlPlaceholder, baseUrlPlaceholderAnthropic, apiKeyLabel, apiKeyPlaceholder, invalidBaseUrl) that previously had no German translation.
  • Updates 2 stale values to match the current English source (addOpenAIProvider and enterNameForProvider).
  • The final file now has all 12 keys matching en/provider.json exactly.

Translation Quality Assessment

Good:

  • The new translations are natural, idiomatic German and accurately convey the English meaning.
  • Technical terms like "API-Schlüssel", "Basis-URL", "http(s)-URL" are correctly handled.
  • The baseUrlPlaceholderAnthropic correctly preserves the real Anthropic endpoint URL.
  • Key order matches the English source file.
  • JSON is syntactically valid.
  • The update of addOpenAIProvider from "OpenAI Anbieter hinzufügen" to "Benutzerdefinierten Provider hinzufügen" correctly reflects the EN source change from "Add OpenAI Provider" to "Add Custom Provider".
  • enterNameForProvider is updated from a generic label to a placeholder-style string with example, matching the EN pattern.

Issues Found

1. Terminology inconsistency: "Provider" vs. "Anbieter" (medium severity)

The PR switches from "Anbieter" to the English loanword "Provider" in this file (commit 2 message explains this was intentional). However, every other German locale file in the codebase uses "Anbieter" consistently:

  • providers.json: "Anbieter hinzufügen", "Anbieter löschen", "diesen Anbieter", etc.
  • common.json: "Anbieter hinzufügen", "Modell Anbieter", etc.
  • system-monitor.json: "provider": "Anbieter"
  • setup.json: "Remote-Anbieter einrichten"

This means the same concept will appear as both "Provider" and "Anbieter" in different parts of the German UI. For example, addProvider in providers.json says "Anbieter hinzufügen" while this file says "Provider hinzufügen".

Recommendation: Either (a) revert to "Anbieter" in this file to stay consistent with the rest of the codebase, or (b) plan a follow-up PR that migrates all other de-DE files to "Provider" as well. Option (a) is simpler and safer for now.

2. Note on duplicate keys across files (informational, not caused by this PR)

The keys addProvider, addOpenAIProvider, and enterNameForProvider appear in three separate files: provider.json, providers.json, and common.json. After this PR, these will have divergent translations (this file uses "Provider" / "Benutzerdefiniert", while the other two still use "Anbieter" / "OpenAI"). This pre-existing duplication is not caused by this PR but is worth noting for maintainers.

3. Capitalization of informal address "Du/dein" (minor, non-blocking)

The PR uses capitalized "Deinen" in apiKeyPlaceholder ("Füge Deinen API-Schlüssel ein"). The existing de-DE files are inconsistent about this -- some use "Deinen/Deine" and others use "deinen/deine". This matches the providers.json convention ("überprüfe Deinen API-Schlüssel") so it is fine, but the broader codebase would benefit from a consistent style guide decision on this.

Final Recommendation: improve needed

The translations themselves are high quality, and the addition of 9 missing keys is valuable. However, the "Anbieter" to "Provider" terminology switch introduces an inconsistency with the rest of the German locale. I would suggest reverting to "Anbieter" in this file to maintain consistency with providers.json, common.json, system-monitor.json, and setup.json. Alternatively, if "Provider" is the preferred term going forward, this should be a coordinated change across all de-DE locale files.

Once the terminology is aligned, this is ready to merge.

Revert the earlier Anbieter->Provider switch. Every other locale localizes
"provider" to its native word (fr fournisseur, es proveedor, it fornitore, …)
and all other de-DE files use "Anbieter"; keeping the loanword made German the
lone outlier. Addresses review feedback on janhq#8284. (Keeps the capital-"Du" fix.)

Each change reviewed and approved by the contributor (native German speaker)
before commit; AI-assisted.

Signed-off-by: Tobias Heinrich <tobias.a.w.heinrich@gmail.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant