의사 번역 도구
출시 전에 i18n UI를 테스트하세요. 실제 번역을 기다리지 않고 레이아웃, 인코딩, 양방향 렌더링을 집중 테스트하는 의사 번역을 생성해요.
문제
영어에서는 UI가 완벽해 보여요. 하지만 독일어 문자열이 40% 길어지면 모든 버튼이 깨지고 표 머리글이 잘려요. 아랍어는 전체 레이아웃을 뒤집고 아이콘이 잘못된 방향을 가리키게 해요. 일본어에는 다른 줄 높이가 필요해 세심하게 간격을 맞춘 카드가 무너져요. 번역 비용을 지불한 뒤에야 이 모든 문제를 발견하게 돼요.
해결책
i18n-pseudo는 실제 번역가를 기다리지 않고 UI를 집중 테스트하는 의사 번역을 생성해요. ICU 플레이스홀더, 복수형 구문, 보간 변수를 유지하면서 악센트 문자, CJK 문자, 텍스트 확장, RTL 표시 등 7가지 변환 전략을 적용해요.
설치
i18n-pseudo는 npm 패키지나 Homebrew Formula로 사용할 수 있고 Cargo로 소스에서 빌드할 수도 있어요.
npm install -g @i18n-agent/i18n-pseudo7가지 변환 전략
각 전략은 특정 유형의 i18n 버그를 대상으로 해요. 플래그로 개별 사용하거나 프리셋으로 결합할 수 있어요.
| Strategy | Flag | Input | Output |
|---|---|---|---|
| Accents | --accents | Hello | Ĥéľľó |
| CJK | --cjk | Hello | 你好世界你好 |
| Special Chars | --special | Hello | Hello |
| Expansion | --expansion N | Save | Save~~~~ |
| Brackets | --brackets | Hello | [Hello] |
| RTL | --rtl | Hello | Hello |
| Unicode Stress | --unicode-stress | Hello | H́ȩl̈l̀õ |
프리셋
프리셋은 일반적인 테스트 상황에 맞춰 여러 전략을 묶어요. --preset을 사용하면 전략 그룹을 한 번에 적용할 수 있어요.
| Preset | Strategies | Use Case |
|---|---|---|
default | accents + brackets | Quick visual check that all strings are externalized |
layout | expansion (1.4x) + brackets | Catch truncation and overflow before real translations |
charset | CJK + special + brackets | Test font rendering and character encoding |
rtl | RTL markers + brackets | Verify bidirectional layout without switching locale |
full | All strategies combined | Maximum stress test — everything at once |
사용 예시
원문 로케일 파일에 i18n-pseudo를 실행하세요. JSON, YAML, PO 및 기타 i18n 형식을 읽고 선택한 전략을 적용한 뒤 변환된 결과를 저장해요.
# Default (accents + brackets)
i18n-pseudo en.json -o output/
# Layout testing (text expansion + brackets)
i18n-pseudo en.json --preset layout -o output/
# Specific strategies
i18n-pseudo en.json --accents --expansion 1.5 -o output/
# Kitchen sink
i18n-pseudo en.json --preset full -o output/변환 전후
기본 프리셋 (악센트 문자 + 대괄호)을 일반적인 번역 파일에 적용한 결과예요. ICU 복수형 구문과 보간 플레이스홀더가 정확히 유지되는지 확인하세요.
// Input (en.json):
{
"greeting": "Hello, {name}!",
"save": "Save",
"items": "{count, plural, one {# item} other {# items}}"
}
// Output (default preset — accents + brackets):
{
"greeting": "[Ĥéľľó, {name}!]",
"save": "[Šáṽé]",
"items": "[{count, plural, one {# íťéɱ} other {# íťéɱš}}]"
}CI 통합
CI 파이프라인에 의사 번역을 추가해 i18n 회귀를 자동으로 찾아내세요. 의사 번역 파일을 생성한 뒤 해당 파일로 시각적 회귀 테스트를 실행하세요.
# Generate pseudo-translations and run visual regression
i18n-pseudo locales/en.json --preset layout -o locales/pseudo/
NEXT_PUBLIC_LOCALE=pseudo npx playwright test --project=visual지금 i18n Agent 사용해 보기
번역 파일을 여기에 드롭
JSON, YAML, PO, XML, CSV, Markdown, Properties
또는 클릭하여 파일 선택
대상 언어