Phrase Strings CLI 도구를 사용하면 API를 탐색하여 Curl 요청 대신 명령줄에서 빠르게 프로젝트와 번역을 관리할 수 있습니다.
미국 데이터 센터를 이용하는 경우 호스트에 presence init --host https://api.us.app.phrase.com/v2
를 전달합니다. 구성이 이미 생성된 경우 다음 코드를 추가합니다.
phrase: host: https://api.us.app.phrase.com/v2
.phrase.yml
구성 파일을 편집하여 클라이언트가 파일을 Push하고 Pull하는 방법을 제어합니다.
-
프로젝트 초기화
phrase init
를 실행하여 프로젝트를 초기화합니다. 로캘 파일 형식, 소스 파일 등을 정의합니다.$ phrase init
-
로캘 파일 업로드
로캘 파일을 업로드하려면
Push
하위 명령을 사용하십시오.$ phrase push
-
로캘 파일 다운로드
최신 로캘 파일을 프로젝트로 다시 다운로드하려면
Pull
하위 명령을 사용하십시오.$ phrase pull
-
더 많은 하위 명령
사용 가능한 하위 명령의 목록을 보려면 하위 명령을 지정하지 않고
Phrase를
실행하십시오. 특정 하위 명령에 대해 지원되는 모든 옵션을 보려면--help
플래그를 사용하십시오.$ phrase locales list --help
샘플 구성 파일
이스케이프 규칙 및 따옴표 사용 현황
JSON 개체를 명령줄에서 건너뛰는 경우 이스케이프 규칙과 견적 사용 현황은 사용된 Shell에 따라 다를 수 있습니다.
Windows Shell을 사용하는 경우 전체 JSON 문자열을 큰 따옴표""
로 묶고 백슬래시 \
문자를 사용하여 JSON 내에서 큰따옴표를 이스케이프합니다. 예:
phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123
API 엔드포인트 액세스
클라이언트를 사용하여 모든 API 엔드포인트에 액세스할 수 있습니다. 예를 들어, 모든 프로젝트를 목록화합니다.
$ phrase projects list --access_token ACCESS_TOKEN
Phrase 자격 증명을 사용한 인증
--username
플래그와 함께 사용자 이름을 지정하면 암호가 요청됩니다.
$ phrase projects list --username user@example.com Password: ********
사용자 또는 조직에 대해 2단계 인증이 활성화된 경우에는 --tfa
플래그를 통해 유효한 다단계 토큰을 제공해야 합니다.
$ phrase projects list --username user@example.com --tfa Password: ******** TFA: ********
액세스 토큰을 사용한 인증
--access_token
플래그를 사용하여 액세스 토큰을 지정합니다.
$ phrase projects list --access_token ACCESS_TOKEN
또는 PHRASE_ACCESS_TOKEN
환경 변수를 사용하여 토큰을 저장합니다.
export PHRASE_ACCESS_TOKEN="ACCESS_TOKEN"
2단계 인증이 활성화된 경우 --x_phrase_app_otp
플래그를 통해 유효한 다단계 토큰을 제공해야 합니다.
$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD
토큰은 --tfa
플래그와 함께 대화형 모드로도 제공할 수 있습니다.
$ phrase projects list --access_token ACCESS_TOKEN --tfa TFA: ********
액세스 토큰은 기본적으로 .phrase.yml
구성 파일에서 읽지만 언급된 플래그 또는 환경 변수를 사용하여 동작을 재정의할 수 있고 플래그 또는 환경 변수를 통해 제공된 토큰을 대신 사용할 수 있습니다. 플래그를 통해 제공된 토큰은 환경 변수를 통해 제공된 토큰을 재정의합니다.
.phrase.yml
파일을 코드 리포지토리에 저장할 때는 토큰을 먼저 제거하고 대체 방법을 사용하는 것이 좋습니다(예: 환경을 통해 토큰을 전달하거나 명령줄 플래그를 통한 경우). 비밀 토큰을 직접 리포지토리 저장하면 보안 문제 될 수 있습니다.
Push 및 pull
push 및 pull 명령을 사용하여 로캘 파일을 업로드하고 다운로드하십시오. 명령줄 인수 대신 Push 및 Pulldms 프로젝트 루트 폴더에 있는 .phrase.yml
구성 파일에 저장된 구성에 의존합니다.
Push에
옵션이 참으로 설정된 경우, Push는 번역을 덮어쓰기합니다. Pull은 항상 로컬 파일의 번역을 덮어씁니다.일반 Rails 애플리케이션의 로캘 파일 업로드 및 다운로드 예시 구성:
phrase: access_token: "ACCESS_TOKEN" project_id: "PROJECT_ID" file_format: "yml" push: sources: - file: "./config/locales/<locale_name>.yml" pull: targets: - file: "./config/locales/<locale_name>.yml"
Push 명령을 사용하여 구성/로켈 폴더에서 de.yml
및 en.yml
파일과 일치하는 project_id
로 식별된 프로젝트에 로캘 파일을 업로드합니다. 새 키가 있는 경우 현지화 파일에 추가됩니다.
$ phrase push Uploading config/locales/de.yml Uploaded config/locales/de.yml successfully. Uploading config/locales/en.yml Uploaded config/locales/en.yml successfully.
pull 명령을 사용하여 project_id
로 식별된 프로젝트에서 로캘 파일을 각 파일 경로로 다운로드합니다. 새 키가 있는 경우 프로젝트에 추가됩니다.
$ phrase pull Downloaded de to config/locales/de.yml Downloaded en to config/locales/en.yml
요금 제한 지원
클라이언트는 로캘 다운로드에 대한 요금 제한을 지원합니다. 요금 제한에 도달하면 클라이언트는 요금 제한이 만료될 때까지 기다리고 그 후에 로캘을 계속 다운로드합니다. 클라이언트에 요금 제한이 표시되었으며 다운로드는 x초 안에 재개됩니다.
업로드 클리닝
업로드 클리닝 명령은 프로젝트에서 찾을 수 있지만 업로드된 파일에 포함되지 않은 키를 삭제하는 데 제공됩니다. 로캘 파일을 푸시한 후 기본 로캘 또는 다른 로캘 포함되지 않은 모든 키를 삭제해야 할 수 있습니다.
$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>
형식 옵션
CSV와 같은 여러 형식은 업로드 중 추가 형식 옵션을 지원합니다. 다음 옵션에 액세스하려면 --format_options
로 옵션을 시작합니다.
phrase uploads create \ --project_id PROJECT_ID \ --file ./en.csv \ --file_format csv \ --locale_mapping ‘{“en”:3, “de”:2}’ \ --format_options ‘{“key_index”:1}’ \ --access token YOUR_ACCESS_TOKEN
번역 키 접두사 사용
번역 키 접두사는 프로젝트나 파일 간의 키 충돌을 방지하고 번역 키의 추적성을 개선합니다. CLI 인터페이스는 pull 및 push 작업을 모두 위해 키 접두사 처리를 지원합니다.
-
Push 매개 변수:
-
translation_key_prefix
: 지정된 접두사는 푸시된 번역 핵심어에 미리 설정됩니다.-
<file_path>
마법 자리 표시자를 사용하여 현재 파일 경로로translation_key_prefix을
자동으로 설정합니다. 경로의 최대 길이는 255자입니다.
-
-
-
Pull 매개 변수:
-
translation_key_prefix
: 이 매개 변수를 사용하면 pull 작업 중 번역 키 이름에서 접두사를 차감할 수 있습니다.-
<file_path>
마법 자리 표시자를 사용하여 현재 파일 경로로translation_key_prefix을
자동으로 설정합니다. 경로의 최대 길이는 255자입니다.
-
-
filter_by_prefix
: Pull 하기 전에 접두사에 따라 번역 핵심어를 필터링하는 불 옵션입니다.
-
Phrase.yml
파일의 구성 예시:
phrase: access_token: access_token file_format: yml push: sources: - 파일: path/to/your/file.yml project_id: project_id params: locale_id: en translation_key_prefix: prefix_ pull: targets: - 파일: path/to/your/file.yml project_id: project_id params: translation_key_prefix: prefix_ filter_by_prefix: true
롤 명령 예:
curl "https://api.phrase.com/v2/projects/:project_id/uploads?translation_key_prefix=prefix_" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F file=@/path/to/my/file.format \ -F file_format=format \ -F locale_id = locale_id
"https: //api.phrase.com/v2/projects/:project_id/locales/:ID/다운로드?file_format=file_format&translation_key_prefix=prefix_&filter_by_prefix=true" \ -u USERNAME_OR_ACCESS_TOKEN
프록시
프록시 뒤에 있는 경우 HTTPS_PROXY
환경 변수를 사용하여 프록시 설정을 지정합니다.
export HTTPS_PROXY=https://user:password@host:port
하나의 프로젝트에 대한 여러 현지화 파일
프로젝트 각 로캘에 하나의 파일을 사용합니다. 도구 또는 프레임워크로 인해 여러 파일의 사용이 강제되는 경우 프로젝트 설정 방법에 대한 자세한 내용은 관리 파일 구조를 참조하십시오.
하나의 현지화 프로젝트에 대한 여러 프로젝트
대규모 현지화 프로젝트를 작업할 때 여러 프로젝트에 번역을 배포합니다. CLI를 하나의 현지화 프로젝트의 여러 현지화 파일로 작업하도록 구성합니다.
형식 옵션
일부 파일 형식은 파일 구문에 대한 더 큰 제어를 위해 형식 옵션을 지정할 수 있습니다. .phrase.yml
구성 파일의 형식 옵션을 지정합니다.
phrase: pull: targets: - file: file.xml params: format_options: convert_placeholder: true push: sources: - file: file.csv params: format_options: column_separator: ";"
Android 프로젝트 구성
Android는 표준 ISO 언어 코드를 파일 패턴으로 사용하지 않습니다. .phrase.yml
에서 필수 패턴을 지정합니다.
.phrase.yml
파일에서 각 로캘을 명시적으로 지정합니다. 이 예는 기본 언어인 영어, 독일 로캘, 오스트리아 독일 로캘을 사용하는 독일 지역 로캘을 사용하는 .phrase.yml
구성을 보여줍니다.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: xml pull: targets: - file: ./app/src/main/res/values/strings.xml params: file_format: xml # Unique locale id for English locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml # Unique locale id for German locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml # Unique locale id for Austrian locale_id: LOCALE_ID push: sources: - file: ./app/src/main/res/values/strings.xml params: file_format: xml locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml locale_id: LOCALE_ID