Feature Request: Built-in German Umlaut Validation for Write/Edit Operations

Resolved 💬 3 comments Opened Jan 10, 2026 by Keyvanhardani Closed Jan 14, 2026

Summary

When working with German language projects, Claude Code frequently writes incorrect umlaut representations (e.g., ae instead of ä, ue instead of ü, oe instead of ö, ss instead of ß). This causes issues in production code, documentation, and user-facing content.

Problem

German-speaking users and projects with German content frequently encounter:

  • fuer instead of für
  • ueber instead of über
  • koennen instead of können
  • groesse instead of Größe
  • strasse instead of Straße
  • And many more common German words

These errors can break:

  • User-facing text in applications
  • Documentation and README files
  • Error messages and validation text
  • Database content and exports

Proposed Solution

Add a built-in option for German umlaut validation that:

  1. Detects common umlaut mistakes before Write/Edit operations complete
  2. Warns the user or auto-corrects based on settings
  3. Is configurable via settings.json:
{
  "languageValidation": {
    "german": {
      "enabled": true,
      "autoCorrect": false,
      "warnOnMistakes": true
    }
  }
}
  1. Includes a comprehensive dictionary of common German words that must have umlauts

Current Workaround

Users can create custom PreToolUse hooks to validate umlauts, but this:

  • Requires manual setup
  • Is not standardized
  • May miss edge cases
  • Adds complexity for non-technical users

Benefits

  • Better experience for German-speaking users
  • Prevents production bugs in German content
  • Reduces manual review overhead
  • Could be extended to other languages with special characters (French accents, Spanish ñ, etc.)

Additional Context

This is particularly important for enterprise users working on German-language products, government/regulatory content, or any project targeting German-speaking markets.

---

Submitted from a German enterprise OCR project that frequently encounters this issue.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗