Skip to main content

Pseudolokalisierung: i18n-Bereitschaft ohne echte Übersetzungen testen

Echte Übersetzungen kosten Zeit und Geld. Pseudolokalisierung verwandelt Ihre Ausgangszeichenfolgen in lesbaren, aber offensichtlich simulierten Text, der i18n-Fehler sofort sichtbar macht: fest codierte Zeichenfolgen, Textüberlauf, RTL-Probleme und Verkettungsfehler.

1

Was ist Pseudolokalisierung?

Pseudolokalisierung ersetzt Zeichen in Ihren Ausgangszeichenfolgen durch optisch ähnliche Akzent- oder erweiterte Zeichen, fügt Polster für Texterweiterung hinzu und umschließt Zeichenfolgen mit Klammern. Das Ergebnis bleibt für die Entwicklung lesbar, unterscheidet sich jedoch deutlich von echtem Text – dadurch lassen sich Zeichenfolgen, die keine Übersetzungsfunktion durchlaufen haben, mühelos erkennen.

Pseudo-localization examples
// Pseudo-localization transforms your source strings
// to simulate translation without real translators

// Original:
"Welcome to our application"

// Accented (simulates diacritics):
"[Ẁëľčöṁë ţö öüŕ àṗṗľïčàţïöñ]"

// Expanded (simulates text expansion ~30%):
"[Weeelcooomee tooo ouuur aaappliiicaaatiiioon]"

// Mirrored (simulates RTL layout):
"[noitacilppa ruo ot emocleW]"

// Brackets make untranslated strings immediately visible
Pseudolokalisierung ist der schnellste Weg, i18n-Fehler zu finden. Ihre Erzeugung dauert Sekunden, kostet nichts und erkennt Probleme, die bis zum Test mit einer echten Sprache unsichtbar bleiben. Jedes i18n-fähige Projekt sollte sie verwenden, bevor echte Übersetzungen beauftragt werden.
2

Verwendung in Ihrem Projekt

Installieren Sie i18n-pseudo und führen Sie es für Ihre Locale-Dateien aus. Das Werkzeug erkennt das Dateiformat automatisch und erzeugt eine pseudolokalisierte Version, die Sie als Test-Locale in Ihrer App laden können.

Issues caught by pseudo-localization
// 1. Hardcoded strings (not wrapped in t())
// Pseudo strings have brackets/accents, so untranslated
// strings are immediately obvious in the UI

// 2. Text truncation
// Expanded text reveals buttons and labels that break
// when translations are longer than English

// 3. Layout issues
// Accented characters reveal font rendering problems
// RTL mode reveals directional layout bugs

// 4. Concatenation bugs
// "Hello " + name vs t('greeting', { name })
// Pseudo-localization breaks concatenated strings

// 5. Missing i18n wrappers
// Any string not going through the i18n system
// appears as plain English among pseudo text
Fügen Sie der Sprachauswahl Ihrer App während der Entwicklung eine Pseudo-Locale hinzu. Beim Wechsel dorthin werden nicht übersetzte Zeichenfolgen sofort sichtbar. Entfernen Sie die Pseudo-Locale vor der Produktionsveröffentlichung.
3

Sieben Transformationsstrategien

i18n-pseudo bietet sieben Transformationsstrategien, die jeweils einen anderen Aspekt Ihrer i18n-Implementierung testen. Verwenden Sie sie einzeln für gezielte Tests oder kombinieren Sie sie über Voreinstellungen für umfassende Abdeckung.

Pseudo-localization strategies
// Strategy 1: Accented characters
// Replace ASCII with similar-looking Unicode
// a -> à, e -> ë, o -> ö, etc.
// Preserves readability while testing rendering

// Strategy 2: Text expansion
// Pad strings to simulate longer translations
// German is ~30% longer, Finnish ~40% longer
// Helps catch UI overflow early

// Strategy 3: Brackets/wrappers
// Wrap strings in [brackets] or «guillemets»
// Makes untranslated strings visually obvious

// Strategy 4: Bidi/RTL
// Mirror text for right-to-left testing
// Catches layout issues before Arabic/Hebrew testing

// Strategy 5: Combined
// Apply all strategies simultaneously
// Maximum coverage in one pass
4

Fünf integrierte Voreinstellungen

Voreinstellungen kombinieren mehrere Strategien zu häufig benötigten Konfigurationen. Verwenden Sie eine Voreinstellung für schnelle Tests oder erstellen Sie eigene Kombinationen für Ihre Anforderungen.

CLI & Configuration
// Using i18n-pseudo CLI
npx i18n-pseudo generate \
  --source locales/en.json \
  --output locales/pseudo.json \
  --preset accented

# Available presets:
# accented  - Ḣëľľö Ẁöŕľð (default)
# expanded  - Heeellooo Wooorld
# mirrored  - dlroW olleH
# brackets  - [Hello World]
# maximum   - [Ḣëëëľľľöööö Ẁöööŕŕŕľľľðððð]

// i18n-pseudo.config.json
{
  "source": "locales/en.json",
  "output": "locales/pseudo.json",
  "preset": "maximum",
  "expansion": 1.4,
  "wrapper": ["[", "]"],
  "exclude": [
    "*.url",
    "*.email",
    "branding.*"
  ]
}
5

CI/CD-Integration

Führen Sie Pseudolokalisierung in CI aus, um i18n-Regressionen automatisch zu erkennen. Erzeugen Sie pseudolokalisierte Dateien, rendern Sie wichtige Ansichten und vergleichen Sie sie mit Referenzbildschirmfotos. Nicht transformierter Text in den Bildern ist eine Regression – eine neue fest codierte Zeichenfolge, die die Übersetzungsfunktion umgeht.

.github/workflows/pseudo-check.yml
# .github/workflows/pseudo-check.yml
name: Pseudo-Localization Check

on:
  pull_request:
    paths:
      - 'src/**'

jobs:
  pseudo-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm ci

      - name: Generate pseudo locale
        run: npx i18n-pseudo generate \
          --source locales/en.json \
          --output locales/pseudo.json \
          --preset maximum

      - name: Build with pseudo locale
        run: npm run build
        env:
          NEXT_PUBLIC_LOCALE: pseudo

      - name: Run visual regression tests
        run: npx playwright test --project=pseudo
        env:
          LOCALE: pseudo

i18n Agent jetzt testen

Legen Sie Ihre Übersetzungsdatei hier ab

JSON, YAML, PO, XML, CSV, Markdown, Properties

oder zum Auswählen klicken

Zielsprachen

Keine Registrierung erforderlichSofortiges Angebot

Häufig gestellte Fragen zur Pseudolokalisierung