Mac 앱의 번역을 왕복 처리하려면 Xcode 현지화 카탈로그를 내보내고, 복수형 구조와 인수 매핑을 보존한 다음, 반환된 패키지를 가져와 테스트하세요. 이 가이드에서는 예시용 선택 항목 레이블을 사용해 무엇을 전달하고 확인해야 하는지 정확히 보여 줍니다.

이 작업은 Mac에서 Xcode로 번역가에게 전달할 자료를 준비하는 사람을 위한 것입니다. 개수에 따라 달라지는 메시지 하나를 번역하도록 보내고, 동작을 그대로 유지해 돌려받는 과정입니다. 예시 레이블은 그룹 2개에서 타일 3개를 선택했습니다.입니다. 두 개수는 서로 독립적으로 바뀔 수 있으므로, 전달 자료는 읽기 쉬운 문구만 보존해서는 충분하지 않습니다.

내보내기 전에 메시지 계약을 정의하세요

메시지 계약을 간단한 명세로 다루세요. 앱이 조회하는 항목, 앱이 제공하는 런타임 값, 문법적 변형을 결정하는 값을 명시합니다. Apple 문서에 따르면 String.LocalizationValue는 런타임에 제공되는 값을 포함해 보간을 사용하는 현지화 가능 문자열을 지원합니다. 식별자를 화면에 표시되는 원문과 다르게 지정해야 할 때 정적 키와 별도의 기본값을 사용하는 방법도 설명합니다. String.LocalizationValue

이 예시에서는 번역 요청서에 다음 계약을 기록하세요. 이는 예시용 레이블에 대한 설명이며 Apple 파일 형식이 아닙니다.

계약 요소 이 예시의 요구 사항
메시지 목적 현재 선택 항목 요약
영어 원문 런타임에 두 숫자를 제공하는 Selected 3 tiles in 2 groups.
인수 1 타일 개수. tile의 형태를 결정합니다.
인수 2 그룹 개수. group의 형태를 결정합니다.
숫자 표현 각 인수에 대해 Xcode가 기록하는 유형과 형식 지정자를 유지합니다.
번역의 재량 각 인수의 의미를 보존하면서 문장 순서를 바꿀 수 있습니다.
필수 동작 각 명사가 각각의 개수에 맞게 호응해야 합니다.

프로젝트의 실제 카탈로그, 테이블, 키도 기록하세요. 번역 중에 대체 키를 새로 만들지 마세요. Apple의 준비 가이드에서는 현지화 API가 빌드 중 카탈로그를 채우며 table 또는 tableName 매개변수가 카탈로그를 선택한다고 설명합니다. 문자열의 맥락을 설명하는 주석도 지원합니다. 앱 텍스트를 번역할 수 있도록 준비하기

유용한 예시 주석은 다음과 같습니다. 선택 항목 요약입니다. 인수 1은 선택한 타일의 개수입니다. 인수 2는 해당 타일이 속한 그룹의 개수입니다. 두 개수는 서로 독립적으로 달라집니다. 각 개수를 해당 명사와 연결해 두세요. 숫자 유형이 같더라도 두 인수를 구분할 수 있도록 번역가에게 충분한 정보를 제공합니다.

카탈로그에서 독립적인 복수형 변형을 준비하세요

앱의 현지화 가능한 소스에 메시지를 추가한 다음 프로젝트를 빌드하세요. 문자열 카탈로그 편집기에서 해당 키를 Control-클릭하고 복수형에 따라 변형을 선택합니다. Apple 문서에 따르면 Xcode는 보간의 형식 지정자를 확인하고 언어의 복수형을 추가하며, 변형 필드에 기존 값을 처음 입력합니다. 미리 입력된 값은 계속 편집해야 합니다. 문자열 카탈로그로 텍스트 현지화 및 변형하기

영어 원문에서 의도한 표시 결과에는 Selected 1 tile in 1 group., Selected 3 tiles in 1 group., Selected 1 tile in 2 groups.가 포함됩니다. 타일 개수만 기준으로 한 번만 선택하면 모든 조합을 올바르게 만들 수 없습니다.

Apple의 문자열 카탈로그 소개 자료에서는 대체를 통해 여러 인수를 변형하는 방법을 설명합니다. 각 대체에는 복수형 사례가 들어 있으며, 인스펙터에는 인수 위치와 C 스타일 형식 지정자가 표시됩니다. 런타임은 선택된 대체를 주변 메시지와 결합합니다. 문자열 카탈로그 알아보기

두 개의 독립적인 개수에 이 방식을 사용하세요. 개수와 호응해야 하는 단어는 문장에 고정해 두지 말고 해당 변형 안에 넣으세요. 편집기에서 허용하면 대체에 의미 있는 이름을 지정한 다음 매핑을 확인하세요. 타일 대체는 여전히 인수 1을 사용하고 그룹 대체는 인수 2를 사용해야 합니다.

모든 대상 현지화에서 영어 분기 목록을 그대로 재현하도록 요구하지 마세요. Apple 문서에 따르면 Xcode는 언어별 복수형 변형을 추가합니다. 원본 현지화에 변형을 추가하면 번역에도 해당 변형이 전파되지만, 다른 현지화에만 추가한 경우에는 그 현지화에만 적용됩니다. 내보내기 전에 실제 대상 분기를 검토하세요. 문자열 카탈로그로 텍스트 현지화 및 변형하기

문구 순서를 바꿔도 인수 정체성을 보존하세요

문장에서 자리표시자가 놓이는 위치와 인수 번호는 서로 다른 역할을 합니다. 앱이 값을 제공하는 순서는 바꾸지 않고도 번역문에서 그룹 개수를 타일 개수보다 먼저 표시해야 할 수 있습니다.

Apple의 형식 지정자 참조 문서는 n$를 사용한 위치 표기법을 설명합니다. 예를 들어 %1$lld는 long long 정수 변환을 사용하는 인수 1을 가리키고, %2$lld는 같은 변환을 사용하는 인수 2를 가리킵니다. %d는 다른 정수 표현을 나타내며 %lld의 짧은 표기가 아닙니다. 이 참조 문서는 보관된 문서이므로, 현재 카탈로그 작업 흐름과 함께 확립된 형식 규칙을 확인하는 용도로 사용하세요. 문자열 형식 지정자

예시 형식 조각 Groups: %2$lld; tiles: %1$lld를 살펴보세요. 인수 1이 3이고 인수 2가 2라면 의도한 출력은 Groups: 2; tiles: 3입니다. 이 조각은 인수 순서만 보여 주며 문법적 복수형 선택을 구현하지 않으므로 카탈로그의 대체를 대신해서는 안 됩니다.

자리표시자를 의미, 인덱스, 유형에 따라 검토하세요. 퍼센트 기호가 두 개 그대로 있는지만 확인하면 개수가 바뀐 것을 놓칠 수 있습니다. 유형만 확인해도 두 값이 모두 정수이므로 뒤바뀐 것을 놓칠 수 있습니다. 반대로 한 번역에 맞추려고 애플리케이션의 인수 순서를 바꾸면 해당 항목을 사용하는 다른 모든 번역의 계약도 바뀝니다.

전달할 때 번역가에게 문구를 다듬되 내보낸 인수 연결 관계와 형식 유형은 유지하도록 요청하세요. 대체의 구조를 바꾸려면 계약에 비추어 명시적으로 검토해야 합니다. 단어 순서를 바꾸는 것은 충분히 적절할 수 있습니다.

번역가가 반환할 수 있는 패키지를 내보내세요

내보내기 전에 프로젝트의 Use Compiler to Extract Swift Strings 빌드 설정을 활성화해 Swift 현지화 가능 문자열을 포함하세요. Project 탐색기에서 프로젝트를 선택하고 Product > Export Localizations를 선택한 다음 필요한 현지화와 저장 위치를 지정해 내보냅니다. Apple은 이 단계와 결과물인 .xcloc 패키지를 문서화하고 있습니다. 현지화 내보내기

두 카탈로그 확장자는 서로 다른 역할을 합니다. 프로젝트의 .xcstrings 파일에는 문자열 카탈로그가 들어 있습니다. 내보낸 .xcloc 패키지는 번역가에게 전달하는 자료이며, Localized Contents 폴더에는 XLIFF가 들어 있고 Notes 폴더에는 보조 텍스트를 넣을 수 있습니다. 메시지를 화면에 보이는 문장 두 개의 목록으로 줄이지 말고 계약 메모와 함께 패키지를 보내세요. 현지화 내보내기

번역 도구가 XLIFF의 문자열 카탈로그 변형을 지원하는지 확인하세요. Apple은 카탈로그에서 생성된 변형 식별자가 문자열 키와 변형 구성을 인코딩한다고 설명하며, 해당 내보내기 표현에 대한 Localization Prefers String Catalogs 설정도 문서화하고 있습니다. 왕복 과정에서 이러한 구조가 보존되어야 합니다. 문자열 카탈로그 알아보기

다음 실무 전달 자료 점검표를 사용하세요. 이는 문서화된 패키지 구조와 예시 계약을 바탕으로 한 작업 흐름 권장 사항입니다.

  • 관련 리소스를 그대로 유지한 번역 완료 .xcloc 패키지를 반환합니다.
  • 의도적인 구조 변경을 문서화한 경우가 아니라면 메시지 식별자와 변형 경로를 보존합니다.
  • 대상 현지화에 필요한 복수형 분기마다 번역문을 제공합니다.
  • 인수 정체성, 숫자 유형, 대체 매핑을 유지합니다.
  • 내보낸 뒤 전달받은 원문 변경 사항을 식별해 가져오기 전에 반영할 수 있도록 합니다.

번역가의 도구가 변형된 항목을 보존하지 못한다면 Xcode를 사용해 내보낸 현지화를 편집하거나 프로젝트 카탈로그에 번역을 입력하세요. Apple은 XLIFF 대상 언어를 편집하는 방법과 Xcode에서 문자열 카탈로그를 편집하는 방법을 문서화하고 있으며, 이후 내보내기에는 카탈로그 변경 사항이 포함됩니다. 평문만 주고받으면 누군가가 변형 구조를 다시 구성해야 합니다. XLIFF 및 문자열 카탈로그 파일 편집하기

반환된 자료를 가져오고 실제 차이를 살펴보세요

비교할 수 있도록 원본 내보내기 파일을 보관하세요. 번역된 패키지를 받으면 프로젝트를 선택하고 Product > Import Localizations를 선택합니다. Xcode Localization Catalog 폴더를 선택하세요. 가져오기 인터페이스에서 Issues View를 통해 경고와 오류를 확인하고, 가져오기를 완료하기 전에 File View에서 변경 사항을 살펴보세요. Apple에 따르면 비교 편집기에는 왼쪽에 가져온 버전이, 오른쪽에 현재 프로젝트 버전이 표시됩니다. 현지화 가져오기

문자열 카탈로그에서 온 문자열의 경우 Apple은 적절한 문자열 카탈로그로 번역을 다시 가져오는 방법을 설명합니다. 가져온 뒤 선택 요약 항목을 다시 열고 두 대체 항목과 인수 매핑, 대상 분기를 확인하세요. 문자열 카탈로그 알아보기

문제가 있어 보이면 다음 진단 순서를 사용하세요. 항목이 없다면 테이블과 키를 원본 내보내기 파일과 비교합니다. 복수형 변형이 없다면 반환된 변형 구조를 비교합니다. 개수가 잘못된 명사에 연결되어 있다면 인수 매핑을 비교합니다. 특정 조합 하나만 어색하다면 애플리케이션 코드를 바꾸기 전에 해당 분기의 문구를 살펴봅니다. 이 순서는 예시의 의존 관계에 따른 것이며 Xcode가 모든 계약 위반을 자동으로 감지한다는 뜻은 아닙니다.

서로 다른 개수로 테스트해 인수 뒤바뀜을 찾아내세요

가져오기가 성공하면 Xcode가 전달 자료를 받아들였다는 뜻입니다. 그래도 예시의 동작을 확인해야 합니다. 앱의 테스트 데이터나 개발용 픽스처를 사용해 다음 조합을 표시하세요. 예상 문장은 영어 원문 계약을 보여 주는 예시이며, 대상 언어의 문구와 분기 선택은 대상 현지화에 따라야 합니다.

타일 개수 그룹 개수 예상 영어 원문 출력 확인할 수 있는 사항
1 1 Selected 1 tile in 1 group. 두 단수형
3 1 Selected 3 tiles in 1 group. 타일의 독립적인 변형
1 2 Selected 1 tile in 2 groups. 그룹의 독립적인 변형
3 2 Selected 3 tiles in 2 groups. 인수가 바뀌었는지 드러내는 서로 다른 값

앱에서 선택 항목이 비어 있는 상태를 표시할 수 있다면 개수가 0인 경우도 확인하세요. 또한 대상 현지화에서 필요한 모든 복수 범주가 적용되는 값을 선택하세요. 위 네 행은 영어 단수형과 복수형 조합을 다룰 뿐, 가능한 모든 대상 분기를 다루지는 않습니다.

Mac 앱을 대상 현지화로 실행하려면 Product > Scheme > Edit Scheme을 선택하고 Run을 선택한 뒤 Options를 엽니다. App Language와 필요한 경우 App Region을 설정하고 편집기를 닫은 다음 Mac 실행 대상을 선택해 실행합니다. Apple은 이 구성표 기반 테스트 작업 흐름을 문서화하고 있습니다. 앱 실행 중 현지화 테스트하기

표시된 메시지를 읽고 데스크톱 인터페이스에 잘 맞는지 확인하세요. 개수가 올바른 명사에 계속 연결되고, 필요한 각 분기가 제대로 동작하며, 반환된 구조가 의도한 계약과 일치한다면 번역 왕복 과정에서 이 레이블에 필요한 동작이 보존된 것입니다. 다음에 문구를 변경할 때도 같은 명시적 요구 사항을 기준으로 확인할 수 있도록 계약 메모를 전달 자료와 함께 보관하세요.

출처