Skip to main content

Pseidolokalizācija: pārbaudiet i18n gatavību bez īstiem tulkojumiem

Īstiem tulkojumiem vajadzīgs laiks un nauda. Pseidolokalizācija pārveido avota virknes lasāmā, bet acīmredzami neīstā tekstā, kas uzreiz atklāj i18n kļūdas — kodā ierakstītas virknes, teksta pārplūdi, RTL problēmas un savienošanas trūkumus.

1

Kas ir pseidolokalizācija?

Pseidolokalizācija aizstāj rakstzīmes avota virknēs ar vizuāli līdzīgām rakstzīmēm ar diakritiskajām zīmēm vai paplašinātām rakstzīmēm, pievieno teksta paplašināšanas pildījumu un ietver virknes iekavās. Rezultāts izstrādātājiem joprojām ir lasāms, bet acīmredzami atšķiras no īsta teksta, tāpēc ir viegli pamanīt virknes, kas nav apstrādātas ar tulkošanas funkcijām.

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
Pseidolokalizācija ir ātrākais veids, kā atrast i18n kļūdas. Tās ģenerēšana aizņem sekundes, neko nemaksā un atklāj problēmas, kas nav redzamas, kamēr neveicat pārbaudi ar īstu valodu. Katram i18n gatavam projektam tā jāizmanto pirms īstu tulkojumu pasūtīšanas.
2

Lietošana projektā

Instalējiet i18n-pseudo un palaidiet to pret saviem lokāļu failiem. Rīks automātiski nosaka faila formātu un ģenerē pseidolokalizētu versiju, ko varat ielādēt lietotnē kā testa lokāli.

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
Izstrādes laikā lietotnes valodu pārslēdzējam pievienojiet „pseudo“ lokāli. Kad izstrādātāji uz to pārslēdzas, netulkotās virknes ir uzreiz redzamas. Pirms publicēšanas produkcijā pseidolokāli noņemiet.
3

7 pārveidošanas stratēģijas

i18n-pseudo nodrošina 7 pārveidošanas stratēģijas, no kurām katra pārbauda citu i18n ieviešanas aspektu. Izmantojiet tās atsevišķi mērķtiecīgai testēšanai vai apvienojiet ar sākotnējiem iestatījumiem visaptverošam pārklājumam.

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 iebūvēti sākotnējie iestatījumi

Sākotnējie iestatījumi apvieno vairākas stratēģijas bieži vajadzīgās konfigurācijās. Izmantojiet sākotnējo iestatījumu ātrai testēšanai vai izveidojiet pielāgotas kombinācijas savām vajadzībām.

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 integrācija

Palaidiet pseidolokalizāciju CI vidē, lai automātiski atklātu i18n regresijas. Ģenerējiet pseidolokalizētus failus, renderējiet galvenos ekrānus un salīdziniet tos ar bāzes ekrānuzņēmumiem. Jebkurš nepārveidots teksts ekrānuzņēmumos ir regresija — jauna kodā ierakstīta virkne, kas apgājusi tulkošanas funkciju.

.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

Izmēģiniet i18n Agent tūlīt

Nometiet tulkošanas failu šeit

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

vai noklikšķiniet, lai izvēlētos

Mērķa valodas

Reģistrācija nav vajadzīgaTūlītēja tāme

Bieži uzdotie jautājumi par pseidolokalizāciju