name: Sync I18n with Crowdin on: push: branches: - canary paths: - 'packages/frontend/i18n/**' workflow_dispatch: jobs: synchronize-with-crowdin: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout uses: actions/checkout@v4 - name: Crowdin action id: crowdin uses: crowdin/github-action@v2 with: upload_sources: true upload_translations: false download_translations: true auto_approve_imported: true import_eq_suggestions: true export_only_approved: true skip_untranslated_strings: true localization_branch_name: l10n_crowdin_translations create_pull_request: true pull_request_title: 'chore(i18n): sync translations' pull_request_body: 'New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)' pull_request_base_branch_name: 'canary' config: packages/frontend/i18n/crowdin.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} i18n-codegen: needs: synchronize-with-crowdin runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout uses: actions/checkout@v4 with: ref: l10n_crowdin_translations - name: Setup Node.js uses: ./.github/actions/setup-node with: electron-install: false full-cache: true - name: Run i18n codegen run: yarn affine @affine/i18n build - name: Commit changes run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git add . git commit -m "chore(i18n): i18n codegen" git push origin l10n_crowdin_translations