Lingo.dev는 GitHub에서 지속적 로컬라이제이션을 실행하는 두 가지 방식을 지원합니다. 관리형 GitHub App과 GitHub Actions 작업에서 @lingo.dev/cli를 실행하는 방식입니다.
어떤 방식을 써야 하나요?
우선 GitHub App부터 시작하세요. 서버 측에서 실행되며, 푸시와 풀 리퀘스트에 자동으로 반응하고, 러너도 API 키 시크릿도 lockfile 관리도 필요하지 않습니다. 다른 CI 단계와 함께 자체 파이프라인 안에서 로컬라이제이션을 실행하고 싶다면 GitHub Actions를 선택하세요.
GitHub App(권장)#
GitHub App은 GitHub에서 지속적 로컬라이제이션을 실행하는 가장 쉬운 방법입니다. 한 번 설치하고 엔진에 연결해 두면, 모든 푸시와 풀 리퀘스트에 자동으로 반응합니다.
- GitHub App 페이지에서 앱을 설치하고 리포지토리에 대한 액세스 권한을 부여하세요.
- 리포지토리 루트에 버킷과 로캘을 정의하는
.lingo/config.json을 커밋하세요. 여기에는 앱이 사용할 엔진의engineId도 포함되어야 합니다. 파일 형식은 Configuration을 참고하세요. - 푸시하면 앱이 변경된 콘텐츠를 서버 측에서 로컬라이즈하고, 결과를 다시 커밋하거나 풀 리퀘스트를 생성해
.lingo/lock.json을 자동으로 최신 상태로 유지합니다.
앱은 서버 측에서 실행되므로 관리할 러너가 없고, 저장해 둘 LINGO_API_KEY 시크릿도 없으며, lockfile 명령을 따로 실행할 필요도 없습니다.
GitHub Actions#
자체 파이프라인에서 로컬라이제이션을 실행하려면 작업에 CLI를 설치한 뒤 lingo push를 실행하고, 기존 도구를 사용해 결과를 커밋하거나 풀 리퀘스트를 생성하세요.
API 키를 LINGO_API_KEY라는 이름의 리포지토리 시크릿으로 저장하세요(Settings > Secrets and variables > Actions). CLI는 이를 환경 변수에서 읽습니다.
현재 브랜치에 커밋#
.github/workflows/localize.yml 파일을 만드세요:
name: Localize
on:
push:
branches: [main]
permissions:
contents: write
jobs:
localize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Lingo.dev CLI
run: npm install -g @lingo.dev/cli
- name: Localize
run: lingo push
env:
LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
- name: Commit translations
run: |
git config user.name "Lingo.dev"
git config user.email "support@lingo.dev"
git add .
git diff --staged --quiet || git commit -m "feat: update translations"
git push이 방식은 변경된 콘텐츠를 로컬라이즈한 뒤, 푸시가 발생할 때마다 결과를 현재 브랜치에 직접 커밋합니다.
풀 리퀘스트 생성#
직접 커밋하는 대신 검토를 거쳐 번역을 반영하려면, 결과를 브랜치에 푸시한 다음 풀 리퀘스트를 생성하세요. 이 예제에서는 GitHub 호스팅 러너에 기본 설치된 GitHub CLI를 사용합니다.
name: Localize
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
localize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Lingo.dev CLI
run: npm install -g @lingo.dev/cli
- name: Localize
run: lingo push
env:
LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
- name: Open pull request
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.name "Lingo.dev"
git config user.email "support@lingo.dev"
branch="lingo/translations-${{ github.run_id }}"
git checkout -b "$branch"
git add .
git diff --staged --quiet && exit 0
git commit -m "feat: update translations"
git push origin "$branch"
gh pr create --fill --base "${{ github.ref_name }}" --head "$branch"PR 기반 워크플로를 사용하려면 Settings > Actions > General > Allow GitHub Actions to create and approve pull requests를 활성화하세요.
같은 작업은 기능 브랜치에서도 동작합니다. 로컬라이제이션을 어디에서 실행할지 제어하려면 on.push.branches 필터를 변경하세요(예: branches-ignore: [main]).
