의사 지역화는 실제 번역이 시작되기 전에 소스 텍스트를 가짜 언어로 변환하여 국제화(i18n) 문제를 식별하는 강력한 테스트 기법입니다. 이 가이드는 pseudo-l10n npm 패키지를 사용하여 의사 지역화 테스트를 자동화하는 방법을 보여줍니다.
의사 지역화는 애플리케이션의 소스 텍스트를 변경된 가짜 언어로 변환하여 번역 후 UI가 어떻게 작동하는지를 모방하는 과정입니다. 이는 QA 엔지니어와 개발자가 개발 주기 초기에 i18n 문제를 식별하는 데 도움을 줍니다.

의사 지역화를 사용하여 잠재적인 국제화 문제를 식별하는 예시입니다. 양쪽의 글꼴과 크기는 동일하지만, 다른 스크립트를 지원하려면 종종 더 많은 공간이 필요합니다.
의사 지역화는 i18n 문제를 조기에 포착하는 데 도움을 줍니다:
다음은 의사 지역화를 사용하여 i18n 테스트를 자동화하기 위한 검증된 전략입니다:
문자 인코딩 및 글꼴 지원을 테스트하기 위해 라틴 문자를 악센트가 있는 형태나 다른 스크립트로 교체합니다.
예시: "Save" → "Šàvē"
QA 체크: 모든 문자가 올바르게 표시되고 인코딩 문제로 인해 아무것도 깨지지 않는지 확인합니다.
독일어 또는 핀란드어와 같은 긴 언어를 모방하기 위해 각 문자열을 ~30-40% 자동으로 확장합니다. 쉽게 클리핑을 감지할 수 있도록 시각적 마커로 감쌉니다.
예시: "Save" → ⟦Šàvēēēēē⟧
QA 체크: 자동화된 스크린샷 비교를 사용하여 UI 오버플로우, 클리핑 또는 정렬 오류를 발견합니다.
보이는 마커로 보간 변수(플레이스홀더)를 교체하여 번역 중에 보존되는지 확인합니다.
예시: "당신은 {{count}} 항목이 있습니다" → "당신은 <COUNT> 항목이 있습니다"
QA 체크: 회귀 테스트를 실행합니다; 마커가 누락되거나 잘못 이스케이프된 경우 실패합니다 (<COUNT>).
아랍어 또는 히브리어를 시뮬레이션하기 위해 텍스트를 오른쪽에서 왼쪽(RTL) 마커로 감쌉니다.
QA 체크: RTL 언어에 대한 정렬, 텍스트 방향 및 미러링이 올바른지 확인합니다.
생산에 도달하기 전에 i18n 문제를 포착하기 위해 자동화된 테스트 파이프라인에 의사 지역화를 추가합니다.
QA 체크: 테스트가 누락된 번역, 깨진 플레이스홀더 또는 레이아웃 문제를 감지하면 배포를 차단합니다.
pseudo-l10n npm 패키지는 JSON 번역 파일에 대한 의사 지역화를 자동화하여 i18n 테스트를 개발 워크플로에 쉽게 통합할 수 있도록 합니다.
명령줄 사용을 위해 pseudo-l10n을 전역으로 설치하세요:
npm install -g pseudo-l10n또는 개발 종속성으로 추가하세요:
npm install --save-dev pseudo-l10n소스 번역 파일을 pseudo-localized 버전으로 변환하세요:
pseudo-l10n input.json output.json입력 (en.json):
{
"welcome": "Welcome to our application",
"greeting": "Hello, {{name}}!",
"itemCount": "You have {{count}} items"
}출력 (pseudo-en.json):
{
"welcome": "⟦Ŵëļçõɱë ţõ õür àƥƥļïçàţïõñēēēēēēēēēēēēēēēēēē⟧",
"greeting": "⟦Ĥëļļõēēēēēē, {{name}}!ēēēēē⟧",
"itemCount": "⟦Ŷõü ĥàṽë {{count}} ïţëɱšēēēēēēēēēēēēēēēē⟧"
}pseudo-l10n en.json pseudo-en.json --expansion=30아랍어 또는 히브리어와 같은 오른쪽에서 왼쪽으로 읽는 언어를 시뮬레이션하세요:
pseudo-l10n en.json pseudo-ar.json --rtl시각적 탐지를 쉽게 하기 위해 플레이스홀더를 대문자 마커로 교체하세요:
pseudo-l10n en.json pseudo-en.json --replace-placeholders
# Input: { "greeting": "Hello, {{name}}!" }
# Output: { "greeting": "⟦Ĥëļļõēēēēēē, <NAME>!ēēēēē⟧" }이 패키지는 다양한 i18n 라이브러리에서 사용하는 여러 플레이스홀더 형식을 지원합니다:
# For i18next (default)
pseudo-l10n en.json pseudo-en.json --placeholder-format="{{key}}"
# For Angular/React Intl
pseudo-l10n en.json pseudo-en.json --placeholder-format="{key}"
# For sprintf style
pseudo-l10n en.json pseudo-en.json --placeholder-format="%key%"Node.js 스크립트나 빌드 프로세스에서 프로그래밍 방식으로 pseudo-l10n을 사용하세요:
const { generatePseudoLocaleSync, pseudoLocalize } = require('pseudo-l10n');
// Generate a pseudo-localized JSON file
generatePseudoLocaleSync('en.json', 'pseudo-en.json', {
expansion: 40,
rtl: false
});
// Pseudo-localize a single string
const result = pseudoLocalize('Hello, {{name}}!');
console.log(result);
// Output: ⟦Ĥëļļõēēēēēēēēēēēēēē, {{name}}!ēēēēē⟧package.json 스크립트에 pseudo-localization 생성을 추가하세요:
{
"scripts": {
"pseudo": "pseudo-l10n src/locales/en.json src/locales/pseudo-en.json",
"pseudo:rtl": "pseudo-l10n src/locales/en.json src/locales/pseudo-ar.json --rtl"
}
}빌드 프로세스의 일환으로 pseudo-locale을 생성하세요:
// build.js
const { generatePseudoLocaleSync } = require('pseudo-l10n');
// Generate pseudo-locales as part of build
generatePseudoLocaleSync(
'./src/locales/en.json',
'./src/locales/pseudo-en.json',
{ expansion: 40 }
);
generatePseudoLocaleSync(
'./src/locales/en.json',
'./src/locales/pseudo-ar.json',
{ rtl: true }
);지속적인 통합 파이프라인에 pseudo-localization을 통합하세요:
# .github/workflows/test.yml
- name: Generate pseudo-locales
run: |
npm install -g pseudo-l10n
pseudo-l10n src/locales/en.json src/locales/pseudo-en.json
- name: Run i18n tests
run: npm run test:i18npseudo-localization으로 i18n 구현을 검증한 후, 실제 사용자들을 위해 애플리케이션을 번역할 시간입니다. 이때 l10n.dev와 같은 AI 기반 번역 서비스가 필요합니다.
pseudo-localization으로 애플리케이션이 국제화를 올바르게 처리하는지 확인한 후, 전문 AI 기반 번역을 위해 l10n.dev를 사용하세요:
i18n 문제를 조기에 발견하고 로컬라이제이션 작업 흐름을 간소화할 준비가 되셨나요?
Pseudo-localization은 프로덕션에 도달하기 전에 국제화 문제를 발견하는 데 도움이 되는 필수 테스트 기법입니다. pseudo-l10n 패키지를 사용하여 pseudo-localization 테스트를 자동화함으로써, 애플리케이션이 진정으로 글로벌 청중을 위해 준비되었는지 확인할 수 있습니다.
l10n.dev의 AI 기반 번역과 결합하여, 더욱 강력하고 다국어 애플리케이션을 더 빠르고 확신을 가지고 구축할 수 있습니다.