Otomatisasi terjemahan keys untuk repositori menggunakan Cursor CLI di GitHub Actions
name: Auto Translate Keys
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
permissions:
contents: write
pull-requests: write
jobs:
i18n:
if: ${{ !startsWith(github.head_ref, 'translate/') }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Cursor CLI
run: |
curl https://cursor.com/install -fsS | bash
echo "$HOME/.cursor/bin" >> $GITHUB_PATH
- name: Configure git identity
run: |
git config user.name "Cursor Agent"
git config user.email "cursoragent@cursor.com"
- name: Propose i18n updates
env:
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
MODEL: gpt-5
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_PREFIX: translate
run: |
cursor-agent -p "Kamu sedang beroperasi di GitHub Actions runner.
GitHub CLI tersedia sebagai `gh` dan terautentikasi melalui `GH_TOKEN`. Git tersedia. Kamu punya akses write ke konten repositori dan bisa berkomentar di pull request, tapi jangan buat atau edit PR secara langsung.
# Context:
- Repo: ${{ github.repository }}
- PR Number: ${{ github.event.pull_request.number }}
- Head Ref: ${{ github.head_ref }}
- Translate Branch Prefix: ${{ env.BRANCH_PREFIX }}
# Goal:
- Deteksi i18n keys yang ditambahkan atau diubah dalam PR dan isi hanya locale yang hilang dalam file pesan. Jangan pernah menimpa terjemahan yang sudah ada.
# Requirements:
1) Tentukan keys yang berubah dengan memeriksa diff PR (file sumber dan file pesan).
2) Hitung keys yang hilang per locale menggunakan locale sumber/kanonik sebagai referensi.
3) Tambahkan entri hanya untuk keys yang hilang. Pertahankan semua nilai yang ada tanpa diubah.
4) Validasi format JSON dan skema.
5) Pertahankan branch translate yang persisten untuk PR head ini menggunakan Translate Branch Prefix dari Context. Buat jika belum ada, update jika sudah ada, dan push perubahan ke origin.
6) Post atau update satu komentar PR di PR asli yang ditulis dalam bahasa natural (1–2 kalimat) yang menjelaskan secara singkat apa yang diupdate dan mengapa, serta menyertakan link compare inline untuk quick-create PR.
7) Hindari komentar duplikat; update komentar bot sebelumnya jika ada.
8) Jika tidak ada perubahan yang diperlukan, jangan buat commit dan jangan post komentar.
# Inputs and conventions:
- Gunakan `gh pr diff` dan git history untuk mendeteksi perubahan.
# Deliverables when updates occur:
- Commit yang dipush ke branch translate persisten untuk PR head ini.
- Satu komentar PR dalam bahasa natural di PR asli dengan link compare di atas.
" --force --model "$MODEL" --output-format=text
Apakah halaman ini membantu?