자동화된 현지화: GitLab CI/CD ❤ Localazy

프로젝트에 대한 완전 자동화된 현지화를 한 번 설정하고 모든 번거로움을 영원히 잊으십시오. GitLab의 CI/CD와 함께라면 즐겁다!

Localazy를 빌드 프로세스에 통합하는 이유는 무엇입니까?



현지화는 그 자체로 어려울 수 있으며 릴리스가 한 지점에서 제대로 종료되지 않기 전에 최신 현지화 버전을 포함하도록 개발자(또는 자신)에게 정기적으로 상기시켜야 합니다. GitLab의 강력한 기능CI/CD을 사용하면 한 번만 올바르게 구성하면 됩니다. 그 후에 평화롭게 이것을 마음에서 잊을 수 있습니다.

Localazy와 앱 통합



모바일, 데스크톱 또는 웹 앱이 현지화할 준비가 되어 있고 소스 언어의 문자열이 JSON, YAML, iOS의 문자열, Flutter의 ARB 또는 기타 일반적인 형식으로 저장되어 있다고 가정해 보겠습니다.

Sign up to Localazy , 새 앱 install the CLI tool 을 생성한 다음 localazy.json configuration 을 생성하고 테스트합니다. 소스 언어 파일을 업로드하고 현지화된 파일을 다운로드할 수 있어야 합니다.

기본 구성은 다음과 같을 수 있습니다.

{
  "readKey": "your-read-key",
  "writeKey": "your-write-key",

  "upload": {  
    "type": "json",
    "files": "locales/en.json"         
  },

  "download": {
    "files": "locales/${lang}.json"
  }
}


readKey 및 writeKey를 입력했다면 이미 앱과 Localazy 간에 문자열을 수동으로 업로드하고 다운로드할 수 있습니다. 이 프로세스를 자동화해 보겠습니다.

설정 비밀



종종 저장소에서 비밀을 숨기는 것이 바람직하며 Localazy 키도 다르지 않습니다. 이를 위해 GitLab의 변수를 사용합니다. GitLab 프로젝트에서 설정 -> CI/CD -> 변수로 이동하여 LOCALAZY_WRITE_KEY 및 LOCALAZY_READ_KEY라는 두 개의 변수를 만듭니다. 결과는 다음과 같아야 합니다.



자동 업로드



GitLab CI/CD는 수많은 옵션이 있는 강력한 자동화 도구입니다. 특별한 구성 없이 업로드 부분만 자동화하면 되는 경우(예: 특정 분기에서만 트리거하거나 풀 요청에 대해 트리거하는 경우)에 대해 많이 알 필요가 없습니다. 그러나 복잡한 자동화 규칙을 만들려는 경우 해당 규칙documentation을 확인해야 합니다.

프로젝트의 루트에 gitlab-ci.yml라는 파일을 만들고 다음을 붙여넣습니다.

# This is a base template for Gitlab CI / CD 
# that integrates Localazy upload process into your workflow
# For available upload options https://localazy.com/docs/cli/command-line-options

default:
  image:
    name: localazy/cli:latest

# There three ways how to authorize the operations (https://localazy.com/docs/cli/authorization)
# - authorization keys in the configuration file (localazy.json)
# - authorization keys in a separate file (localazy.keys.json)
# - authorization keys provided as command-line arguments
#
# If you wish to keep the writeKey and readKey as secrets, we recommend opting for the third option.
# - In Gitlab, define new environment variables (In project: Settings -> CI / CD - > Variables) 
#   called LOCALAZY_WRITE_KEY and LOCALAZY_READ_KEY.
# - Type in your writeKey and readKey respectively

localazy-upload:
    # For additional CLI options, see https://localazy.com/docs/cli/command-line-options
    script: 
        - localazy upload
          -w $LOCALAZY_WRITE_KEY
          -r $LOCALAZY_READ_KEY


이 파일은 GitLab에서 자동으로 선택되며 localazy-upload라는 단일 작업을 트리거합니다. 보시다시피 인증을 위해 -w $LOCALAZY_WRITE_KEY-r $LOCALAZY_READ_KEY 인수를 사용합니다. 리포지토리에 푸시할 때마다(대상 브랜치에 관계없이) Localazy에 대한 업로드 작업이 트리거됩니다.

자동 다운로드



여기의 다운로드 예제는 일반적으로 앱의 빌드 프로세스 중에 트리거되는 작업 중 하나일 뿐이므로 약간 인위적입니다. 그러나 그럼에도 불구하고 좋은 출발점입니다.

구성은 업로드 예제와 매우 유사합니다. 원하는 경우 자연스럽게 이 두 작업을 같은 파일gitlab-ci.yml에 넣을 수 있습니다.

# This is a base template for Gitlab CI / CD 
# that integrates Localazy download process into your workflow
# For available download options https://localazy.com/docs/cli/command-line-options

default:
  image:
    name: localazy/cli:latest

# There three ways how to authorize the operations (https://localazy.com/docs/cli/authorization)
# - authorization keys in the configuration file (localazy.json)
# - authorization keys in a separate file (localazy.keys.json)
# - authorization keys provided as command-line arguments
#
# If you wish to keep the writeKey and readKey as secrets, we recommend opting for the third option.
# - In Gitlab, define new environment variables (In project: Settings -> CI / CD - > Variables) 
#   called LOCALAZY_WRITE_KEY and LOCALAZY_READ_KEY.
# - Type in your writeKey and readKey respectively

localazy-download:
    # For additional CLI options, see https://localazy.com/docs/cli/command-line-options
    script: 
      - localazy download
        -w $LOCALAZY_WRITE_KEY
        -r $LOCALAZY_READ_KEY


보시다시피 이 작업은 업로드 대신 다운로드 작업을 트리거한다는 점을 제외하면 동일합니다.
물론 이 예제는 파일이 CI/CD 파이프라인 중에만 다운로드되기 때문에 사실상 아무 작업도 수행하지 않으며 릴리스 빌드를 생성하는 데 파일을 사용하지 않는 경우 파이프라인이 완료되고 지워지면 파일이 손실됩니다. 정확한 빌드 구성은 요구 사항에 따라 크게 달라집니다.

닫는 말



이것은 GitLab CI/CD의 시작 템플릿일 뿐입니다. 각 브랜치에 대한 푸시가 있을 때마다 이 자동화를 실행하지 않고 스테이징 또는 프로덕션 브랜치에 대해 수락된 끌어오기 요청이 있는 경우에만 이 자동화를 실행하기를 원할 가능성이 큽니다. 이 경우 only/except 에 대한 설명서를 참조하십시오. 그럼에도 불구하고 이것은 추가로 구축할 수 있는 완벽한 기본 구성입니다.

좋은 웹페이지 즐겨찾기