Skip to main content

Pseudolocalización: pruebe la preparación de i18n sin traducciones reales

Las traducciones reales cuestan tiempo y dinero. La pseudolocalización transforma las cadenas en texto legible pero evidentemente simulado que revela errores al instante: cadenas codificadas directamente, desbordamientos, problemas RTL y concatenaciones.

1

¿Qué es la pseudolocalización?

Sustituye caracteres del origen por otros acentuados o extendidos visualmente similares, añade relleno para expandir el texto y envuelve las cadenas entre corchetes. El resultado sigue siendo legible para los desarrolladores, pero se distingue claramente y permite identificar las cadenas que no pasaron por funciones de traducción.

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
La pseudolocalización es la forma más rápida de encontrar errores de i18n. Se genera en segundos, no cuesta nada y detecta problemas invisibles hasta probar un idioma real. Todo proyecto preparado para i18n debería utilizarla antes de encargar traducciones.
2

Uso en su proyecto

Instale i18n-pseudo y ejecútelo con sus archivos regionales. Detecta automáticamente el formato y genera una versión pseudolocalizada que puede cargar como región de prueba.

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
Añada una región 'pseudo' al selector durante el desarrollo. Cuando los desarrolladores la elijan, las cadenas sin traducir serán visibles al instante. Retírela antes de publicar en producción.
3

7 estrategias de transformación

i18n-pseudo ofrece 7 estrategias, cada una dirigida a un aspecto de la implementación. Utilícelas por separado para pruebas concretas o combínelas mediante ajustes predefinidos para una cobertura completa.

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 ajustes predefinidos integrados

Los ajustes combinan estrategias en configuraciones habituales. Utilice uno para probar rápidamente o cree combinaciones a medida.

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

Integración con CI/CD

Ejecute la pseudolocalización en CI para detectar regresiones automáticamente. Genere archivos, renderice las pantallas principales y compárelas con capturas de referencia. Cualquier texto sin transformar indica una regresión: una cadena nueva que eludió la función de traducción.

.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

Pruebe i18n Agent ahora

Arrastre y suelte aquí su archivo de traducción

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

o haga clic para seleccionar

Idiomas de destino

No es necesario registrarsePresupuesto al instante

Preguntas frecuentes sobre pseudolocalización