문서

프로젝트의 국제화 작업 수행

국제화 마법사를 실행하여 프로젝트를 다국어로 만드세요. Coroid가 저장소를 읽고 언어 및 설정을 제안하며 하나의 pull request을 준비합니다.

국제화 마법사는 프로젝트를 다국어로 만들어줍니다. 이 마법사는 사용자의 저장소를 읽어서 발견한 내용을 바탕으로 모든 단계를 진행하며, 최종적으로는 pull request를 열어주는 하나의 작업만 생성합니다. 언어 코드를 직접 입력하거나 JSON를 편집할 필요가 없으며, 원하는 부분만 변경하면 되고 병합하기 전까지는 저장소 내의 내용은 변경되지 않습니다.

소유자와 관리자는 이 마법사를 실행할 수 있습니다. 다음 경로에서 시작하세요:글로벌화 → 국제화: 다음을 선택하세요프로젝트 국제화하기, 또는마법사 시작하기프로젝트 행에서 해당 작업을 수행할 수 있습니다. 이미 다국어로 구성된 프로젝트의 경우,설정 → 언어 변경워크벤치에서 이 경로를 선택하면 동일한 마법사가 변경 사항을 제안해줍니다.

수행 단계

1. 스캔

Coroid는 코드를 실행하지 않고 기본 브랜치를 읽습니다. 그런 다음 카탈로그와 해당 언어, 사용 중인 프레임워크, 코드에 직접 작성된 텍스트를 파일별로 확인합니다.

  • 카탈로그가 발견되었습니다.마법사는 이 카탈로그를 그대로 유지하며: Coroid가 검증 절차를 추가하고 누락된 내용을 번역합니다. 이 과정을 '적용'이라고 합니다.
  • **아직 카탈로그가 없습니다.**Coroid가 코드 내의 텍스트를 카탈로그로 옮기고 조회 문구로 대체합니다. 이 과정을 '도입'이라고 합니다.
  • 이미 설정이 완료되었습니다.해당 프로젝트에는 이미 Coroid 설정이 적용되어 있으며, 마법사가 이에 대한 변경 사항을 제안합니다.

2. 소스 언어

제품이 작성된 언어로, 다른 모든 언어는 이 언어를 기준으로 번역됩니다. 마법사는 카탈로그에서 소스 언어를 감지하거나 코드 내의 텍스트를 바탕으로 추정합니다. 어떤 언어든 소스 언어로 지정할 수 있으며, 스웨덴어로 작성된 제품을 영어와 독일어로 번역하는 경우에도 동일하게 작동합니다.

3. 언어

언어를 하나씩 선택하거나 한 번에 특정 시장의 언어를 모두 추가할 수 있습니다:사용 인구가 가장 많은 언어, 유럽, 북유럽, 동아시아, 아메리카또는오른쪽에서 왼쪽으로 쓰는 언어. 각 언어의 이름, 오른쪽에서 왼쪽으로 쓰는지 여부, 필요한 복수형의 개수가 표시됩니다.

지역별 변형은 번역 대신 파생시켜 사용할 수 있습니다. 영국식 영어는 미국식 영어를 바탕으로 영국식 철자로 파생되며, 스위스 독일어는 독일어를 바탕으로 스위스식 철자로 파생되므로 추가 비용이 들지 않고 상위 언어와 일관성을 유지할 수 있습니다.

국제화
국제화 마법사

모든 단계는 저장소에 이미 존재하는 내용을 기반으로 시작됩니다. 원하는 부분만 변경하십시오. pull request가 병합되기 전까지는 아무것도 변경되지 않습니다.

단계 3 / 총 8단계
추가할 언어

언어를 개별적으로 선택하거나 특정 시장 전체를 추가할 수 있습니다. 영국식 영어와 같은 지역별 변형은 번역 과정 없이 규칙에 따라 자동으로 생성됩니다.

5언어들
  • Deutsch독일어 · de · 2복수형들
  • Français프랑스어 · fr · 3복수형들
  • 日本語일본어 · ja · 1복수형들
  • العربية아랍어 · ar · 오른쪽에서 왼쪽으로 · 6복수형들
  • British English영어(영국) · en-GB · 2복수형들영국식 철자 기반의 파생어
시장 추가하기
가장 많이 사용되는 언어유럽북유럽동아시아미주 지역오른쪽에서 왼쪽으로 정렬
뒤로계속하기

국제화 마법사의 언어 단계: 각 언어의 문자 방향과 복수형, 규칙에 따라 파생된 영국식 영어, 그리고 한 번에 추가할 수 있는 시장들. 설명용 데이터입니다.

4. 문자열

도입 시에는 Coroid가 번역을 유지하는 카탈로그를 선택하세요. 이때 해당 키와 구조는 그대로 유지됩니다. 새로 추가할 경우에는 Coroid가 카탈로그로 옮길 텍스트가 포함된 파일을 선택하면 되며, 제외한 파일은 원래 상태 그대로 유지됩니다.

5. 스타일 및 용어

모두 선택 사항이며 모든 언어에서 동일하게 적용됩니다:

  • 격식 있는 표현 또는 비격식적인 표현.독일어와 같이 독자에게 격식 있거나 비격식적으로 접근하는 언어의 경우Sie및du. 기본적으로 각 표현은 원본 텍스트의 어조를 따릅니다.
  • 용어는 원문 그대로 유지됩니다.모든 언어에서 동일하게 사용되는 제품명, 브랜드명 및 기능명입니다.
  • 제품에 관하여.제품과 그 대상 독자에 대한 간단한 설명으로, 모든 번역 작업에서 적절한 단어를 선택하는 데 참고됩니다.

6. 문화

각 시장별로 날짜, 숫자 및 가격 표기 방식이 다릅니다. 코드가 독자를 위해 형식을 지정하는 방식을 선택하세요. 마법사는 발견된 프레임워크(예: next-intl 또는 react-intl)에 맞는 포맷터를 제안하거나 직접 지정할 수도 있습니다. 그 다음 각 시장에서 사용하는 통화를 선택하되, 기본값은 해당 지역의 통화로 설정됩니다. 각 시장별로 샘플 날짜와 숫자, 주 시작 요일 및 용지 크기가 표시됩니다. Coroid의 에이전트는 이러한 설정을 모두 준수하며, 자세한 내용은문화.

7. 품질 및 자동화

기본적으로 활성화되어 있으며, 각 항목은 나중에 변경할 수 있습니다:

  • **변경 사항이 있을 때마다 번역 내용을 확인하세요.**The 글로벌화 검사문자열이 누락되거나 손상되었거나, 카탈로그가 아닌 코드에 텍스트가 추가된 경우 변경 사항을 다시 전송합니다.
  • Coroid 외부에서 병합된 문자열을 번역하세요.누군가 Coroid 없이 새 텍스트를 병합하면, 해당 텍스트는 작업으로 번역됩니다.
  • 매일 밤 수정 사항을 적용합니다.기여자가 제안한 승인된 내용은 매일 밤 하나의 pull request로 전달됩니다.
  • 초대받은 사람들이 표현 방식을 제안할 수 있도록 허용하세요.초대한 원어민 사용자는 귀하의 사이트에서 번역 내용을 수정할 수 있습니다. 확인해 보세요 제안 기능을 활용하여 번역 내용을 관리하세요.

구성 파일에는 마지막에 적용된 설정이 저장됩니다. Coroid는 pull request이 병합된 후 소유자나 관리자가 글로벌화 메뉴를 열 때 다른 설정을 활성화하는데, 이는 단 한 번만 발생합니다. 나중에 해당 설정을 비활성화해도 그 상태가 유지됩니다.

8. 리뷰

프로젝트 요약에는 작업 내용, 소스 언어, 대상 언어 및 파생 언어, 번역 분량, 그대로 유지할 용어, 포맷터와 통화 정보, 그리고 병합 후의 동작이 포함됩니다. 번역 비용은 다른 에이전트 작업과 마찬가지로 모델 사용량으로 산정되며 작업별로 한도가 적용됩니다.

선택하기국제화. Coroid는 사양과 수용 기준을 포함한 작업 하나를 생성하여 즉시 실행합니다.

작업의 내용

  • 적용하기는 마법사가 구성한 대로 설정 파일을 작성한 뒤 누락된 문자열을 번역합니다.
  • 소개하기는 프레임워크를 연결하고 선택한 파일의 텍스트를 카탈로그로 옮긴 뒤 언어 라우팅, 폴백 및 오른쪽에서 왼쪽으로 표시하는 기능을 추가한 다음 번역을 진행합니다.
  • 변경하기는 새로운 설정을 작성하고 변경으로 인해 영향을 받는 번역을 복구합니다.

작업은 하나의 pull request로 종료됩니다. 이를 기본 브랜치에 병합하면 모든 언어가 현지화에 표시되고, 월드 리디네스는 여전히 단일 언어를 가정하는 코드를 확인합니다.

포맷

Coroid는 다음 포맷의 카탈로그를 읽습니다:

포맷사용 용도
ICU JSONICU 복수형 및 선택문이 포함된 메시지 파일
i18next JSON복수형 접미사를 포함한 i18next 및 react-i18next 카탈로그
Vue i18n JSON링크된 메시지 및 파이프 복수형을 포함한 vue-i18n 메시지
Rails YAMLconfig/locales/*.yml,%{name}보간 및 복수형 키 포함
gettext PO.po파일과.pot템플릿,Plural-Forms언어별로
Markdown 및 MDX언어 폴더 내의 문서 페이지(docs/en/…): 텍스트, 이미지 설명 및 선택한 프론트매터 필드; 코드와 마크업은 그대로 유지됩니다.
사용자 정의리포지토리에 작은 어댑터 명령을 통해 다른 모든 포맷을 지원합니다.

설정 파일

마법사는.coroid/i18n.json. 이 파일은 리포지토리를 기술하며 리포지토리 내에 저장되고 풀 요청을 통해 변경됩니다:

{
  "version": 1,
  "cli": { "version": "1.16.0", "sha256": "…" },
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "ja", "ar"],
  "derivedLocales": [
    { "locale": "en-GB", "from": "en", "rules": "en-gb-spelling" }
  ],
  "catalogs": [
    {
      "id": "ui",
      "format": "i18next-json",
      "source": "messages/{locale}.json"
    }
  ],
  "protectedTerms": ["Storefront"],
  "localeInstructions": {
    "de": "Address the reader informally (du)."
  },
  "world": {
    "formatter": "useFormatter from next-intl",
    "currencies": { "de": "EUR", "fr": "EUR", "ja": "JPY", "ar": "SAR" }
  }
}
  • cli는 정확한 엔진 버전과 체크섬을 지정합니다. Coroid는 실행 전에 항상 해당 버전을 다운로드하여 검증하므로 업데이트로 인해 예기치 않게 출력 결과가 바뀌는 일이 없습니다.
  • derivedLocales는 규칙에 따라 생성된 지역별 변형 목록을 표시합니다.
  • protectedTerms및localeInstructions는 사용자가 선택한 내용을 스타일 및 용어, 그리고world는 사용자가 선택한 내용을문화. 글로벌화 검사는 나머지를 목록으로 보여줍니다.world.

이 파일에는 용어집, 제품 컨텍스트, 언어별 번역 경로 및 기여자를 위한 제안 바인딩 정보도 포함될 수 있습니다.

설정 → 설정 파일워크벤치의 는 기본 브랜치에 있는 정확한 파일을 보여줍니다. 해당 파일을 변경하려면 제안을 편집하고변경 제안: Coroid는 해당 파일을 적용하고 변경으로 인해 영향을 받는 번역을 복구하는 작업을 시작합니다. 언어 및 스타일의 경우 마법사를 사용하는 것이 더 간편합니다.