
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.
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 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 visibleLietoš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.
// 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 text7 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.
// 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 pass5 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.
// 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.*"
]
}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
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: pseudoIzmēģ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