Traduza automaticamente chaves para um repositório usando Cursor CLI no 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 "Você está operando em um runner do GitHub Actions.
O GitHub CLI está disponível como `gh` e autenticado via `GH_TOKEN`. Git está disponível. Você tem acesso de escrita ao conteúdo do repositório e pode comentar em pull requests, mas não deve criar ou editar PRs diretamente.
# Contexto:
- Repo: ${{ github.repository }}
- Número do PR: ${{ github.event.pull_request.number }}
- Head Ref: ${{ github.head_ref }}
- Prefixo do Branch de Tradução: ${{ env.BRANCH_PREFIX }}
# Objetivo:
- Detectar chaves i18n adicionadas ou modificadas no PR e preencher apenas locales ausentes nos arquivos de mensagens. Nunca sobrescrever traduções existentes.
# Requisitos:
1) Determinar chaves modificadas inspecionando o diff do PR (arquivos fonte e arquivos de mensagens).
2) Calcular chaves ausentes por locale usando o locale fonte/canônico como referência.
3) Adicionar entradas apenas para chaves ausentes. Preservar todos os valores existentes intocados.
4) Validar formatação JSON e schemas.
5) Manter um branch de tradução persistente para este head do PR usando o Prefixo do Branch de Tradução do Contexto. Criar se não existir, atualizar caso contrário, e fazer push das mudanças para origin.
6) Postar ou atualizar um único comentário do PR no PR original escrito em linguagem natural (1–2 frases) que explique brevemente o que foi atualizado e por quê, e inclua um link de comparação inline para criar rapidamente um PR.
7) Evitar comentários duplicados; atualizar um comentário anterior do bot se existir.
8) Se nenhuma mudança for necessária, não fazer commits e não postar comentário.
# Entradas e convenções:
- Use `gh pr diff` e histórico do git para detectar mudanças.
# Entregáveis quando atualizações ocorrerem:
- Commits enviados para o branch de tradução persistente para este head do PR.
- Um único comentário do PR em linguagem natural no PR original com o link de comparação acima.
" --force --model "$MODEL" --output-format=text
Esta página foi útil?