From 096f03432cfca75bc2740f65d7d6cb6fed4c4eaa Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Wed, 4 Dec 2024 21:43:02 +0100 Subject: [PATCH] feat: integrate crowdin #1402 (#1599) --- .../workflows/crowdin-schedule-download.yml | 39 +++++++++++++++++++ .github/workflows/crowdin-upload.yml | 27 +++++++++++++ crowdin.yml | 10 +++++ 3 files changed, 76 insertions(+) create mode 100644 .github/workflows/crowdin-schedule-download.yml create mode 100644 .github/workflows/crowdin-upload.yml create mode 100644 crowdin.yml diff --git a/.github/workflows/crowdin-schedule-download.yml b/.github/workflows/crowdin-schedule-download.yml new file mode 100644 index 000000000..c68e24d0f --- /dev/null +++ b/.github/workflows/crowdin-schedule-download.yml @@ -0,0 +1,39 @@ +name: "[Crowdin] Download translations" + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" # every day at midnight + +jobs: + download-crowdin-translations: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Obtain token + id: obtainToken + uses: tibdex/github-app-token@v2 + with: + private_key: ${{ secrets.CROWDIN_APP_PRIVATE_KEY }} + app_id: ${{ secrets.CROWDIN_APP_ID }} + + - name: Download Crowdin translations + uses: crowdin/github-action@v2 + with: + upload_sources: false + upload_translations: false + download_translations: true + localization_branch_name: crowdin + create_pull_request: true + pull_request_title: "chore(lang): updated translations from crowdin" + pull_request_body: "New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)" + pull_request_base_branch_name: "dev" + github_user_name: "Crowdin Homarr" + github_user_email: "190541745+homarr-crowdin[bot]@users.noreply.github.com" + env: + GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} + CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml new file mode 100644 index 000000000..fa024a94c --- /dev/null +++ b/.github/workflows/crowdin-upload.yml @@ -0,0 +1,27 @@ +name: "[Crowdin] Upload translations" + +on: + push: + paths: + - "packages/translation/src/lang/**" + branches: [dev] + +jobs: + upload-crowdin-translations: + # Don't run this action if the downloaded translations are being pushed + if: "!contains(github.event.head_commit.message, 'chore(lang)')" + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Upload Crowdin translations + uses: crowdin/github-action@v2 + with: + upload_sources: true + upload_translations: true + download_translations: false + env: + CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} \ No newline at end of file diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 000000000..19fed39f6 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,10 @@ +files: + - source: /packages/translation/src/lang/en.json + translation: /packages/translation/src/lang/%two_letters_code%.json + +# Title of pull request and so the commit that will be used for squashed merge commit +pull_request_title: "chore(lang): updated translations from crowdin" + +# Custom commit message that is not only appended +commit_message: "chore(lang): update translations %original_file_name% from crowdin [skip ci]" +append_commit_message: false \ No newline at end of file