From a2b7132cf361c516c2b10797d73e59423f31e539 Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Mon, 17 Jun 2024 12:26:17 -0400 Subject: [PATCH] [BWA-28] Sync translations with Crowdin (#129) --- .github/workflows/crowdin-pull.yml | 50 ++++++++++++++++++++++++++++++ .github/workflows/crowdin-push.yml | 43 +++++++++++++++++++++++++ crowdin.yml | 9 ++++++ 3 files changed, 102 insertions(+) create mode 100644 .github/workflows/crowdin-pull.yml create mode 100644 .github/workflows/crowdin-push.yml create mode 100644 crowdin.yml diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml new file mode 100644 index 0000000000..21818dfc14 --- /dev/null +++ b/.github/workflows/crowdin-pull.yml @@ -0,0 +1,50 @@ +name: Crowdin Sync + +on: + workflow_dispatch: + inputs: {} + schedule: + - cron: '0 0 * * 5' + +jobs: + crowdin-sync: + name: Autosync + runs-on: ubuntu-20.04 + env: + _CROWDIN_PROJECT_ID: "673718" + steps: + - name: Check out repo + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + + - name: Log in to Azure - CI Subscription + uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0 + with: + creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: bitwarden/gh-actions/get-keyvault-secrets@main + with: + keyvault: "bitwarden-ci" + secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase" + + - name: Download translations + uses: crowdin/github-action@67705afb6985401459cd143d5f5f00c9dc212f23 # v1.20.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} + with: + config: crowdin.yml + crowdin_branch_name: main + upload_sources: false + upload_translations: false + download_translations: true + github_user_name: "bitwarden-devops-bot" + github_user_email: "106330231+bitwarden-devops-bot@users.noreply.github.com" + commit_message: "Autosync the updated translations" + localization_branch_name: crowdin-auto-sync + create_pull_request: true + pull_request_title: "Autosync Crowdin Translations" + pull_request_body: "Autosync the updated translations" + gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }} + gpg_passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }} diff --git a/.github/workflows/crowdin-push.yml b/.github/workflows/crowdin-push.yml new file mode 100644 index 0000000000..73d9f066fb --- /dev/null +++ b/.github/workflows/crowdin-push.yml @@ -0,0 +1,43 @@ +name: Crowdin Push + +on: + workflow_dispatch: + push: + branches: + - "main" +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JAVA_VERSION: 17 + +jobs: + crowdin-push: + name: Crowdin Push + runs-on: ubuntu-22.04 + env: + _CROWDIN_PROJECT_ID: "673718" + steps: + - name: Check out repo + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + + - name: Log in to Azure + uses: Azure/login@cb79c773a3cfa27f31f25eb3f677781210c9ce3d # v1.6.1 + with: + creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: bitwarden/gh-actions/get-keyvault-secrets@main + with: + keyvault: "bitwarden-ci" + secrets: "crowdin-api-token" + + - name: Upload sources + uses: crowdin/github-action@67705afb6985401459cd143d5f5f00c9dc212f23 # v1.20.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} + with: + config: crowdin.yml + crowdin_branch_name: main + upload_sources: true + upload_translations: false diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000000..725469a192 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,9 @@ +project_id_env: _CROWDIN_PROJECT_ID +api_token_env: CROWDIN_API_TOKEN +preserve_hierarchy: true +base_path: "app/src/main" +files: + - source: "/res/values/strings.xml" + translation: "/res/values-%android_code%/%original_file_name%" + update_option: update_as_unapproved + type: android