Cursor CLI kullanarak uluslararasılaştırma çeviri anahtarlarını otomatik olarak yönet. Bu workflow, pull request’lerde yeni veya değiştirilmiş i18n anahtarlarını tespit eder ve mevcut çevirilerin üzerine yazmadan eksik çevirileri tamamlar.
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 "GitHub Actions runner içinde çalışıyorsun.

          GitHub CLI `gh` olarak mevcut ve `GH_TOKEN` ile kimlik doğrulaması yapılmış durumda. Git kullanılabilir. Repository içeriklerine yazma erişimin var ve pull request'lere yorum yapabilirsin, ancak doğrudan PR oluşturmamalı veya düzenlememelisin.

          # Bağlam:
          - Repo: ${{ github.repository }}
          - PR Numarası: ${{ github.event.pull_request.number }}
          - Head Ref: ${{ github.head_ref }}
          - Çeviri Branch Öneki: ${{ env.BRANCH_PREFIX }}

          # Hedef:
          - PR'da eklenen veya değiştirilen i18n anahtarlarını tespit et ve mesaj dosyalarında sadece eksik locale'leri doldur. Mevcut çevirilerin asla üzerine yazma.

          # Gereksinimler:
          1) PR diff'ini inceleyerek (kaynak dosyalar ve mesaj dosyaları) değişen anahtarları belirle.
          2) Kaynak/kanonik locale'i referans alarak locale başına eksik anahtarları hesapla.
          3) Sadece eksik anahtarlar için entry ekle. Mevcut tüm değerleri olduğu gibi koru.
          4) JSON formatını ve şemalarını doğrula.
          5) Bağlam'dan Çeviri Branch Öneki'ni kullanarak bu PR head için kalıcı bir çeviri branch'i sürdür. Yoksa oluştur, varsa güncelle ve değişiklikleri origin'e push et.
          6) Orijinal PR'a doğal dilde (1-2 cümle) yazılmış, neyin güncellendiğini ve neden güncellendiğini kısaca açıklayan ve hızlı PR oluşturmak için inline karşılaştırma linki içeren tek bir PR yorumu gönder veya güncelle.
          7) Tekrarlanan yorumlardan kaçın; mevcutsa önceki bot yorumunu güncelle.
          8) Hiçbir değişiklik gerekli değilse, commit yapma ve yorum gönderme.

          # Girdiler ve konvansiyonlar:
          - Değişiklikleri tespit etmek için `gh pr diff` ve git geçmişini kullan.

          # Güncellemeler gerçekleştiğinde teslim edilecekler:
          - Bu PR head için kalıcı çeviri branch'ine push edilmiş commit'ler.
          - Orijinal PR'a yukarıdaki karşılaştırma linki ile doğal dilde tek bir PR yorumu.
          " --force --model "$MODEL" --output-format=text