Skip to main content

Ψευδοτοπικοποίηση: Ελέγξτε την ετοιμότητα i18n χωρίς πραγματικές μεταφράσεις

Οι πραγματικές μεταφράσεις απαιτούν χρόνο και χρήματα. Η ψευδοτοπικοποίηση μετασχηματίζει τις συμβολοσειρές προέλευσης σε ευανάγνωστο αλλά εμφανώς τεχνητό κείμενο, το οποίο αποκαλύπτει αμέσως σφάλματα i18n — κείμενα ενσωματωμένα στον κώδικα, υπερχείλιση κειμένου, προβλήματα RTL και προβλήματα συνένωσης.

1

Τι είναι η ψευδοτοπικοποίηση;

Η ψευδοτοπικοποίηση αντικαθιστά χαρακτήρες στις συμβολοσειρές προέλευσης με οπτικά παρόμοιους τονισμένους ή εκτεταμένους χαρακτήρες, προσθέτει συμπλήρωση για την επέκταση του κειμένου και περικλείει τις συμβολοσειρές σε αγκύλες. Το αποτέλεσμα παραμένει ευανάγνωστο για τους προγραμματιστές, αλλά διαφέρει εμφανώς από το πραγματικό κείμενο — έτσι, εντοπίζονται πανεύκολα οι συμβολοσειρές που δεν έχουν περάσει από συναρτήσεις μετάφρασης.

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
Η ψευδοτοπικοποίηση είναι ο ταχύτερος τρόπος εντοπισμού σφαλμάτων i18n. Δημιουργείται μέσα σε δευτερόλεπτα, δεν κοστίζει τίποτα και εντοπίζει προβλήματα που παραμένουν αόρατα μέχρι να κάνετε δοκιμές με μια πραγματική γλώσσα. Κάθε έργο που είναι έτοιμο για i18n πρέπει να τη χρησιμοποιεί πριν αναθέσει πραγματικές μεταφράσεις.
2

Χρήση στο έργο σας

Εγκαταστήστε το i18n-pseudo και εκτελέστε το στα αρχεία locale. Το εργαλείο εντοπίζει αυτόματα τη μορφή των αρχείων και δημιουργεί μια ψευδοτοπικοποιημένη έκδοση, την οποία μπορείτε να φορτώσετε ως δοκιμαστικό locale στην εφαρμογή σας.

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
Προσθέστε ένα locale 'pseudo' στον επιλογέα γλώσσας της εφαρμογής σας κατά την ανάπτυξη. Όταν οι προγραμματιστές μεταβαίνουν σε αυτό, τα αμετάφραστα κείμενα γίνονται αμέσως ορατά. Αφαιρέστε το locale 'pseudo' πριν από τη διάθεση στην παραγωγή.
3

7 στρατηγικές μετασχηματισμού

Το i18n-pseudo παρέχει 7 στρατηγικές μετασχηματισμού, καθεμία από τις οποίες ελέγχει διαφορετική πτυχή της υλοποίησης i18n. Χρησιμοποιήστε τις μεμονωμένα για στοχευμένες δοκιμές ή συνδυάστε τις μέσω προεπιλογών για ολοκληρωμένη κάλυψη.

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 ενσωματωμένες προεπιλογές

Οι προεπιλογές συνδυάζουν πολλαπλές στρατηγικές σε διαμορφώσεις που χρησιμοποιούνται συχνά. Χρησιμοποιήστε μια προεπιλογή για γρήγορες δοκιμές ή δημιουργήστε προσαρμοσμένους συνδυασμούς για τις συγκεκριμένες ανάγκες σας.

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

Εκτελέστε την ψευδοτοπικοποίηση στο CI, ώστε να εντοπίζονται αυτόματα παλινδρομήσεις i18n. Δημιουργήστε ψευδοτοπικοποιημένα αρχεία, αποδώστε τις βασικές οθόνες και συγκρίνετέ τις με στιγμιότυπα αναφοράς. Κάθε μη μετασχηματισμένο κείμενο στα στιγμιότυπα αποτελεί παλινδρόμηση — μια νέα συμβολοσειρά ενσωματωμένη στον κώδικα που παρέκαμψε τη συνάρτηση μετάφρασης.

.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

Αφήστε εδώ το αρχείο μετάφρασής σας

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

ή κάντε κλικ για να επιλέξετε αρχείο

Γλώσσες-στόχοι

Δεν απαιτείται εγγραφήΆμεση εκτίμηση

Συχνές ερωτήσεις για την ψευδοτοπικοποίηση