mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-05 17:29:39 -06:00
121 lines
3.6 KiB
YAML
121 lines
3.6 KiB
YAML
name: POEditor Translation Synchronization
|
|
|
|
on:
|
|
# For manual triggering
|
|
workflow_dispatch:
|
|
inputs:
|
|
languages:
|
|
description: "Languages to synchronize (comma separated, e.g.: tr,en,es)"
|
|
required: false
|
|
default: "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn"
|
|
format:
|
|
description: "Export format (key_value_json or json)"
|
|
required: false
|
|
default: "key_value_json"
|
|
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
sync-translations:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
issues: write
|
|
pull-requests: write
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
fetch-depth: 0
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "22"
|
|
|
|
- name: Create package.json for scripts
|
|
run: |
|
|
mkdir -p .github/scripts
|
|
cat > .github/scripts/package.json << EOF
|
|
{
|
|
"name": "poeditor-scripts",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"dependencies": {
|
|
"axios": "^1.6.0",
|
|
"fs-extra": "^11.1.1"
|
|
}
|
|
}
|
|
EOF
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
cd .github/scripts
|
|
npm install
|
|
|
|
- name: Download translations from POEditor
|
|
env:
|
|
POEDITOR_API: ${{ secrets.POEDITOR_API }}
|
|
POEDITOR_PROJECT_ID: ${{ secrets.POEDITOR_PROJECT_ID }}
|
|
LANGUAGES: ${{ github.event.inputs.languages || 'tr,en' }}
|
|
EXPORT_FORMAT: ${{ github.event.inputs.format || 'key_value_json' }}
|
|
run: |
|
|
mkdir -p temp
|
|
node .github/scripts/download-translations.js
|
|
|
|
- name: Verify translation files
|
|
run: |
|
|
echo "Verifying translation files..."
|
|
for file in temp/*.json; do
|
|
echo "Checking $file"
|
|
if [ ! -s "$file" ]; then
|
|
echo "Error: $file is empty or does not exist"
|
|
exit 1
|
|
fi
|
|
# Validate JSON format
|
|
cat "$file" | jq . > /dev/null || { echo "Error: $file is not valid JSON"; exit 1; }
|
|
done
|
|
echo "All translation files are valid"
|
|
|
|
- name: Copy translations to project
|
|
run: |
|
|
mkdir -p client/src/locales
|
|
cp -r temp/* client/src/locales/
|
|
echo "Translation files copied to client/src/locales/"
|
|
|
|
- name: Get current date
|
|
id: date
|
|
run: echo "date=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_OUTPUT
|
|
|
|
- name: Format client code
|
|
run: |
|
|
cd client
|
|
npm ci
|
|
npm run format
|
|
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v7
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
commit-message: "feat: translations updated from POEditor"
|
|
title: "🌐 Updated Translations from POEditor"
|
|
body: |
|
|
This PR contains the latest translations from POEditor.
|
|
|
|
📅 Update Date: ${{ steps.date.outputs.date }}
|
|
🔄 Updated Languages: ${{ github.event.inputs.languages || 'tr,en' }}
|
|
|
|
⚠️ Please review the translations and approve the PR if everything looks correct.
|
|
branch: translation-update-${{ github.run_number }}
|
|
delete-branch: true
|
|
base: develop
|
|
add-paths: |
|
|
client/src/locales/*.json
|
|
committer: GitHub Action <github-actions[bot]@users.noreply.github.com>
|
|
author: GitHub Action <github-actions[bot]@users.noreply.github.com>
|