문서

의사 현지화

누군가 번역하기 전에 가짜 번역, 발음 구별 기호가 붙은 텍스트, 더 긴 문자열 및 오른쪽에서 왼쪽으로 표시되는 언어용으로 페이지를 렌더링해 보세요. 카탈로그에 누락된 텍스트, 잘린 라벨 및 비대칭 레이아웃을 미리 확인할 수 있습니다.

의사 번역은 모든 문자열을 알아볼 수 있는 가짜 텍스트로 대체합니다. 왼쪽에서 오른쪽으로 쓰는 언어에서는 각 글자에 발음 구별 기호가 붙고 문자열이 괄호 안에서 늘어납니다:변경 사항 저장로 변환됩니다⟦Šáṽé çĥáñĝéš··········⟧. 오른쪽에서 왼쪽으로 쓰는 언어에서는 각 문자열의 순서가 반전되고 방향이 재정의되어 아랍어나 히브리어가 존재하기 전에도 페이지가 오른쪽에서 왼쪽으로 표시됩니다.

이렇게 렌더링된 페이지에서는 세 가지 문제가 확인됩니다:

  • 일반 텍스트은 카탈로그에서 가져온 것이 아니라 코드에 직접 작성되거나 런타임에 생성됩니다.
  • 잘려 나간 텍스트은 더 긴 언어용 공간을 확보하지 못했습니다.
  • 제자리에 고정된 레이아웃은 오른쪽에서 왼쪽으로 쓰는 페이지에서 시작과 끝 대신 왼쪽과 오른쪽을 사용합니다.
독일어 · 의사 번역/de-DE/
당신의 장바구니⟦당신의 장바구니········⟧

모든 주문에 무료 배송

변경 사항 저장⟦변경 사항 저장········⟧

가격에는 세금이 포함됩니다.⟦가격에는 세금이 포함됩니다.············⟧

아랍어 · 의사 번역/ar-SA/
당신의 장바구니‮당신의 장바구니‬

모든 주문에 무료 배송

변경 사항 저장‮변경 사항 저장‬

가격에는 세금이 포함됩니다.‮가격에는 세금이 포함됩니다.‬

탐지된 내용
  1. 카탈로그에 포함되지 않은 텍스트/{locale}/ · p#promo · “모든 주문에 무료 배송” · runtime_text (de-DE, ar-SA)
  2. 텍스트가 길어져 잘려 나간 부분/{locale}/ · button#save · “⟦변경 사항 저장········⟧” · clipped_text (de-DE)
  3. 오른쪽에서 왼쪽으로 미러링되지 않는 레이아웃/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)

의사-현지화된 페이지에서 보이는 모습: 동일한 페이지를 독일어로는 모든 문자에 발음 구별 부호를 붙이고 길게 표시하며, 아랍어로는 오른쪽에서 왼쪽으로 반전하여 렌더링합니다. 프로브는 코드에 작성된 텍스트, 텍스트가 잘리는 버튼 및 왼쪽에 유지되는 규칙을 표시합니다. 설명용 데이터입니다.

글로벌화 검사에서

설정 파일에 애플리케이션 실행 방법이 명시되어 있을 때,글로벌화 검사는 변경 사항이 발생할 때마다 페이지를 렌더링하여 검사합니다. 검사용 샌드박스 내의 변경 사항 복사본에서 작동하므로 의사 번역이 사용자의 저장소나 다른 검사에 전달되지 않습니다:

  1. 의사 번역을 프로젝트의 왼쪽에서 오른쪽으로 쓰는 언어와 오른쪽에서 왼쪽으로 쓰는 언어 각각에 적용합니다.
  2. 종속 요소를 설치하고 애플리케이션을 실행합니다.
  3. 해당 언어로 설정된 브라우저에서 두 언어로 된 모든 페이지를 열어 화면에 표시되는 내용을 확인합니다.
  4. 애플리케이션을 중단하고 복사본을 삭제합니다.

확인된 내용이 검사 결과로 나타납니다:

코드확인된 내용
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 페이지도 원본 그대로 유지됩니다.