Skip to main content

Pseudolokalisering: Testa i18n-beredskap utan riktiga översättningar

Riktiga översättningar tar tid och kostar pengar. Pseudolokalisering omvandlar dina källsträngar till läsbar men uppenbart påhittad text som direkt avslöjar i18n-fel – hårdkodade strängar, textöverflöde, RTL-problem och konkateneringsfel.

1

Vad är pseudolokalisering?

Pseudolokalisering ersätter tecken i dina källsträngar med snarlika tecken med accenter eller utökade tecken, lägger till utfyllnad för textexpansion och omsluter strängarna med hakparenteser. Resultatet är fortfarande läsbart för utvecklare, men skiljer sig tydligt från riktig text – så att strängar som inte har kapslats in i översättningsfunktioner blir enkla att upptäcka.

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
Pseudolokalisering är det snabbaste sättet att hitta i18n-fel. Den tar bara några sekunder att generera, kostar inget och hittar problem som inte syns förrän du testar med ett riktigt språk. Alla i18n-förberedda projekt bör använda den innan riktiga översättningar beställs.
2

Användning i ditt projekt

Installera i18n-pseudo och kör det mot dina språkfiler. Verktyget identifierar filformatet automatiskt och genererar en pseudolokaliserad version som du kan läsa in som testspråk i appen.

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
Lägg till språket 'pseudo' i appens språkväljare under utvecklingen. När utvecklarna byter till det syns oöversatta strängar direkt. Ta bort pseudospråket innan produkten lanseras.
3

7 omvandlingsstrategier

i18n-pseudo innehåller 7 omvandlingsstrategier som var och en testar en särskild del av din i18n-implementering. Använd dem separat för riktade tester eller kombinera dem med förinställningar för bredare täckning.

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

5 inbyggda förinställningar

Förinställningarna kombinerar flera strategier i vanliga konfigurationer. Använd en förinställning för snabb testning eller skapa egna kombinationer för dina särskilda behov.

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-integrering

Kör pseudolokalisering i CI för att automatiskt identifiera i18n-regressioner. Generera pseudolokaliserade filer, rendera viktiga vyer och jämför skärmbilderna med referensbilder. All text i skärmbilderna som inte har omvandlats är en regression – en ny hårdkodad sträng som har kringgått översättningsfunktionen.

.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

Prova i18n Agent nu

Släpp din översättningsfil här

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

eller klicka för att välja en fil

Målspråk

Ingen registrering krävsPrisuppskattning direkt

Vanliga frågor om pseudolokalisering