Skip to main content

Pseudo-Localization: Subukan ang i18n Readiness nang Walang Totoong Pagsasalin

Nangangailangan ng oras at pera ang totoong pagsasalin. Binabago ng pseudo-localization ang source strings ninyo sa nababasa ngunit halatang pekeng teksto na agad naglalantad ng mga i18n bug—hardcoded strings, text overflow, RTL issues, at mga problema sa concatenation.

1

Ano ang Pseudo-Localization?

Pinapalitan ng pseudo-localization ang mga character sa source strings ninyo ng mga kahawig na accented o extended character, nagdaragdag ng text expansion padding, at binabalot ang mga string sa mga bracket. Nababasa pa rin ito ng mga developer pero halatang iba sa totoong teksto—kaya madaling makita ang mga string na hindi dumaan sa translation function.

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
Ang pseudo-localization ang pinakamabilis na paraan para makahanap ng mga i18n bug. Ilang segundo lang itong i-generate, walang gastos, at nahuhuli nito ang mga isyung hindi nakikita hangga’t hindi ninyo nasusubukan gamit ang totoong wika. Dapat itong gamitin ng bawat proyektong i18n-ready bago magpagawa ng totoong mga pagsasalin.
2

Paggamit sa Inyong Proyekto

I-install ang i18n-pseudo at patakbuhin ito sa inyong mga locale file. Awtomatikong matutukoy ng tool ang file format at gagawa ng pseudo-localized na bersyon na puwede ninyong i-load bilang test locale sa app ninyo.

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
Magdagdag ng 'pseudo' locale sa language switcher ng app ninyo habang nasa development. Kapag lumipat dito ang mga developer, agad na makikita ang mga hindi-isinaling string. Alisin ang pseudo locale bago mag-ship sa production.
3

7 Transformation Strategy

Nagbibigay ang i18n-pseudo ng 7 transformation strategy na bawat isa ay sumusubok ng ibang aspeto ng inyong i18n implementation. Gamitin ang mga ito nang paisa-isa para sa targeted testing o pagsamahin gamit ang mga preset para sa mas komprehensibong coverage.

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 Built-In Preset

Pinagsasama ng mga preset ang maraming strategy sa mga karaniwang kailangang configuration. Gumamit ng preset para sa mabilisang testing, o gumawa ng custom na kombinasyon para sa inyong partikular na pangangailangan.

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

Integrasyon sa CI/CD

Patakbuhin ang pseudo-localization sa CI para awtomatikong matukoy ang mga i18n regression. Mag-generate ng pseudo-localized file, i-render ang mga key screen, at i-compare laban sa baseline screenshots. Anumang tekstong hindi na-transform sa screenshots ay regression—isang bagong hardcoded string na nakalusot sa translation function.

.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

Subukan ang i18n Agent Ngayon

I-drop dito ang inyong translation file

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

o i-click para mag-browse

Mga target language

Hindi kailangan ang signupInstant na estimate

FAQ sa Pseudo-Localization