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

tokamak-pm Bot commented Jun 7, 2026

Copy link
Copy Markdown

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>

@tokamak-pm tokamak-pm Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Follow-up review (new commits detected since last review)

What changed since last review

New commit 9a7a8c4 (2026-06-07) directly addresses the main concern from our previous review:

  • Reverted "Provider" back to "Anbieter" throughout de-DE/provider.json. Our previous review flagged that commit 2 had switched from "Anbieter" to the English loanword "Provider", creating an inconsistency with every other German locale file (providers.json, common.json, system-monitor.json, setup.json) which all use "Anbieter". This revert restores full terminological consistency across the German locale.
  • The capital-"Du" fix from commit 2 is preserved (e.g., "Füge Deinen API-Schlüssel ein"), which is correct.
  • The commit message clearly explains the rationale: every other locale localizes "provider" to its native word, and all other de-DE files use "Anbieter", so keeping the loanword made German the lone outlier.

Current state of the diff

The final diff is clean and focused:

  • addOpenAIProvider: updated from stale "OpenAI Anbieter hinzufügen" to "Benutzerdefinierten Anbieter hinzufügen" (matches current EN source "Add Custom Provider")
  • enterNameForProvider: updated to placeholder-style with example, matching EN pattern
  • 9 new keys added (apiTypeLabel, apiTypeOpenAI, apiTypeAnthropic, baseUrlLabel, baseUrlPlaceholder, baseUrlPlaceholderAnthropic, apiKeyLabel, apiKeyPlaceholder, invalidBaseUrl)
  • All 12 keys now present, matching en/provider.json exactly
  • JSON valid, key order correct, Anthropic endpoint URL preserved

Assessment

The terminology inconsistency concern from our previous review has been fully resolved. The translations are accurate, idiomatic, and consistent with the rest of the German locale. No issues remain.

Recommendation: can merge

@tokamak-pm

tokamak-pm Bot commented Jun 10, 2026

Copy link
Copy Markdown

Follow-up review — new commit(s) since last review.

New commit reviewed

  • 9a7a8c4fix(i18n): keep "Anbieter" instead of "Provider" (de-DE provider)

This commit directly addresses the main issue raised in the previous review: the terminology inconsistency between "Provider" and "Anbieter". The contributor reverted the loanword "Provider" back to the native German "Anbieter" in all three affected keys (addProvider, addOpenAIProvider, enterNameForProvider), aligning this file with the rest of the de-DE locale (providers.json, common.json, system-monitor.json, setup.json).

Final state of provider.json (de-DE)

All 12 keys from the English source are present, in matching order. Key-by-key assessment:

Key Translation Verdict
addProvider "Anbieter hinzufügen" Correct, consistent
addOpenAIProvider "Benutzerdefinierten Anbieter hinzufügen" Correct — matches EN "Add Custom Provider"
enterNameForProvider "Anbietername (z. B. my-llm-server)" Correct — placeholder style matches EN
apiTypeLabel "API-Format" Correct
apiTypeOpenAI "OpenAI-kompatibel" Correct
apiTypeAnthropic "Anthropic-kompatibel" Correct
baseUrlLabel "Basis-URL" Correct
baseUrlPlaceholder "https://dein-endpunkt/v1" Correct — natural German equivalent
baseUrlPlaceholderAnthropic "https://api.anthropic.com/v1" Correct — real URL preserved
apiKeyLabel "API-Schlüssel" Correct
apiKeyPlaceholder "Füge Deinen API-Schlüssel ein" Correct — capital "Deinen" matches codebase convention
invalidBaseUrl "Die Basis-URL muss eine gültige http(s)-URL sein" Correct

Issues from previous review — resolution status

  1. "Provider" vs. "Anbieter" inconsistencyResolved. All three keys now use "Anbieter", consistent with the rest of the codebase.
  2. Duplicate keys across files (informational) — Still present but not in scope for this PR.
  3. "Du/dein" capitalization (minor) — Capital "Deinen" is kept, matching the existing providers.json convention. Acceptable.

Conclusion

The previous review's main concern has been addressed. The translations are accurate, idiomatic, and consistent with the rest of the German locale. JSON structure is valid, key order matches the English source, and no keys are missing.

can merge

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