의사 번역은 모든 문자열을 알아볼 수 있는 가짜 텍스트로 대체합니다. 왼쪽에서 오른쪽으로 쓰는 언어에서는 각 글자에 발음 구별 기호가 붙고 문자열이 괄호 안에서 늘어납니다:변경 사항 저장로 변환됩니다⟦Šáṽé çĥáñĝéš··········⟧. 오른쪽에서 왼쪽으로 쓰는 언어에서는 각 문자열의 순서가 반전되고 방향이 재정의되어 아랍어나 히브리어가 존재하기 전에도 페이지가 오른쪽에서 왼쪽으로 표시됩니다.
이렇게 렌더링된 페이지에서는 세 가지 문제가 확인됩니다:
- 일반 텍스트은 카탈로그에서 가져온 것이 아니라 코드에 직접 작성되거나 런타임에 생성됩니다.
- 잘려 나간 텍스트은 더 긴 언어용 공간을 확보하지 못했습니다.
- 제자리에 고정된 레이아웃은 오른쪽에서 왼쪽으로 쓰는 페이지에서 시작과 끝 대신 왼쪽과 오른쪽을 사용합니다.
모든 주문에 무료 배송
변경 사항 저장⟦변경 사항 저장········⟧가격에는 세금이 포함됩니다.⟦가격에는 세금이 포함됩니다.············⟧
모든 주문에 무료 배송
변경 사항 저장변경 사항 저장가격에는 세금이 포함됩니다.가격에는 세금이 포함됩니다.
- 카탈로그에 포함되지 않은 텍스트/{locale}/ · p#promo · “모든 주문에 무료 배송” · runtime_text (de-DE, ar-SA)
- 텍스트가 길어져 잘려 나간 부분/{locale}/ · button#save · “⟦변경 사항 저장········⟧” · clipped_text (de-DE)
- 오른쪽에서 왼쪽으로 미러링되지 않는 레이아웃/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)
의사-현지화된 페이지에서 보이는 모습: 동일한 페이지를 독일어로는 모든 문자에 발음 구별 부호를 붙이고 길게 표시하며, 아랍어로는 오른쪽에서 왼쪽으로 반전하여 렌더링합니다. 프로브는 코드에 작성된 텍스트, 텍스트가 잘리는 버튼 및 왼쪽에 유지되는 규칙을 표시합니다. 설명용 데이터입니다.
글로벌화 검사에서
설정 파일에 애플리케이션 실행 방법이 명시되어 있을 때,글로벌화 검사는 변경 사항이 발생할 때마다 페이지를 렌더링하여 검사합니다. 검사용 샌드박스 내의 변경 사항 복사본에서 작동하므로 의사 번역이 사용자의 저장소나 다른 검사에 전달되지 않습니다:
- 의사 번역을 프로젝트의 왼쪽에서 오른쪽으로 쓰는 언어와 오른쪽에서 왼쪽으로 쓰는 언어 각각에 적용합니다.
- 종속 요소를 설치하고 애플리케이션을 실행합니다.
- 해당 언어로 설정된 브라우저에서 두 언어로 된 모든 페이지를 열어 화면에 표시되는 내용을 확인합니다.
- 애플리케이션을 중단하고 복사본을 삭제합니다.
확인된 내용이 검사 결과로 나타납니다:
| 코드 | 확인된 내용 |
|---|---|
runtime_text | 의사 마크가 없는 눈에 보이는 텍스트 |
clipped_text | 박스에 의해 잘려 나간 의사 텍스트로,overflow숨겨져 있거나 생략 부호로 표시됩니다 |
unmirrored_layout | 오른쪽에서 왼쪽으로 쓰는 페이지: 오른쪽에서 왼쪽으로 표시되지 않는 페이지, 왼쪽이나 오른쪽으로 정렬되거나 배치된 텍스트, 또는 왼쪽/오른쪽 여백이나 패딩이 적용된 요소 |
두 언어에서 동일하게 확인된 텍스트는 하나의 결과로 간주됩니다. 이 결과는 작업의발견된 문제에 페이지, 요소, 텍스트 및 언어 정보와 함께 표시됩니다. 예:/{locale}/ · p#promo · “Free shipping on every order” · runtime_text (de-DE, ar-SA).
이러한 결과는 보고되지만 사용자가 선택하기 전까지는 어떤 것도 차단하지 않습니다.품질 관리 → 글로벌화, 페이지 렌더링은 해당 단계를 비활성화하며,수정이 필요한 페이지 문제은 어떤 코드를 차단할지 결정합니다.
설치나 실행에 실패하는 애플리케이션은 제대로 렌더링되지 않았다고 보고되며, 출력 내용이 함께 표시됩니다. 페이지 문제를 차단하도록 설정한 경우에만 해당 변경 사항이 유지됩니다.
설정하기
다음을 추가하세요:world.render을.coroid/i18n.json:
{
"world": {
"render": {
"start": "npm run dev",
"pages": ["/{locale}/", "/{locale}/pricing", "/{locale}/checkout"]
}
}
}| 필드 | 의미 |
|---|---|
start | 애플리케이션을 실행합니다. 반드시$PORT; HOST은127.0.0.1 |
pages | 애플리케이션 루트부터 최대 열 개의 경로입니다.{locale}은 해당 언어의 태그로 변환되므로/{locale}/pricing은/de-DE/pricing을 열며; 언어가 쿼리 매개변수인 경우/?lang={locale}를 사용하세요 |
directory | 루트가 아닌 경우 저장소 내의 애플리케이션 폴더 |
install | 종속 요소를 설치하는 명령어입니다. 이 명령어가 없으면 Coroid 에서는package.json에 어떤 항목이라도 선언되어 있을 때 |
locales | 렌더링할 대상 언어는 최대 세 개입니다. 지정하지 않으면 첫 번째 왼쪽에서 오른쪽으로 쓰는 언어와 첫 번째 오른쪽에서 왼쪽으로 쓰는 언어가 사용됩니다. |
readyTimeoutMs | 애플리케이션이 응답하는 데 걸리는 시간으로, 기본값은 120,000입니다. |
브라우저는 각 언어를 선호 언어로도 전송하므로 브라우저에서 언어를 선택하는 애플리케이션은{locale}.
이 필드는 설정의cli핀 버전에 따라 CLI 1.16.0 이상이 필요합니다. 구버전 엔진은 이 설정을 거부합니다.
제외되는 항목
검사는 사람이 보는 내용만 확인합니다. 숨겨진 요소, 코드(code, pre, kbd, samp), 양식 필드의 값, 그리고translate="no", aria-hidden="true", data-i18n-ignore또는 해당 클래스가 적용된 요소notranslate. 설정의world.allow목록에 포함된 제품명과 같은 항목은 일반 텍스트로 보고되지 않습니다.
제품명이나 사용자 생성 콘텐츠 등 자체 데이터에서 가져온 텍스트도 카탈로그에서 번역되지 않습니다. 해당 컨테이너에translate="no"또는data-i18n-ignore속성을 적용하세요. 이렇게 하면 브라우저 번역 도구도 해당 텍스트를 번역하지 않습니다.
직접 체험해 보기
의사 번역 기능은 명령줄 도구에 포함되어 있습니다. 임시 체크아웃 환경에서 실행하세요. 언어별 번역 내용이 대체되기 때문입니다:
coroid-i18n pseudo --locale de-DE # accented and longer
coroid-i18n pseudo --locale ar-SA # reversed, right to left
coroid-i18n pseudo --locale de-DE --style rtl # choose the style yourself그런 다음 애플리케이션을 실행하고 해당 언어로 페이지를 열어보세요. 플레이스홀더, 복수형 및 마크업은 그대로 유지되므로 애플리케이션이 평소처럼 작동합니다. Markdown 및 MDX 페이지도 원본 그대로 유지됩니다.