在 GitHub Actions 中使用 Cursor CLI 為專案自動翻譯鍵值
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 中運行。
GitHub CLI 可透過 `gh` 使用並透過 `GH_TOKEN` 進行身份驗證。Git 可用。你有專案內容的寫入權限,可以對 pull request 進行評論,但不能直接建立或編輯 PR。
# 背景:
- 專案:${{ github.repository }}
- PR 編號:${{ github.event.pull_request.number }}
- Head Ref:${{ github.head_ref }}
- 翻譯分支前綴:${{ env.BRANCH_PREFIX }}
# 目標:
- 偵測 PR 中新增或變更的 i18n 鍵值,並僅補齊訊息檔案中缺失的語系。絕不覆蓋現有翻譯。
# 要求:
1) 透過檢查 PR diff(原始檔案和訊息檔案)來確定變更的鍵值。
2) 使用來源/標準語系作為基準,計算每個語系缺失的鍵值。
3) 僅為缺失的鍵值新增項目。保持所有現有值不變。
4) 驗證 JSON 格式和結構。
5) 使用背景中的翻譯分支前綴為此 PR head 維護一個持久的翻譯分支。如果缺失則建立,否則更新,並將變更推送到 origin。
6) 在原始 PR 上發布或更新一個用自然語言撰寫的 PR 評論(1-2 句話),簡要說明更新了什麼以及原因,並包含一個內聯比較連結以快速建立 PR。
7) 避免重複評論;如果存在先前的機器人評論,則更新它。
8) 如果不需要變更,則不進行提交且不發布評論。
# 輸入和慣例:
- 使用 `gh pr diff` 和 git 歷史來偵測變更。
# 發生更新時的交付項目:
- 推送提交到此 PR head 的持久翻譯分支。
- 在原始 PR 上發布一個自然語言 PR 評論,包含上述比較連結。
" --force --model "$MODEL" --output-format=text