diff --git a/.eslintrc.json b/.eslintrc.json index 77ed280adf..eef6375a9b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -361,6 +361,13 @@ "playwright/valid-expect-in-promise": "off", "playwright/valid-title": "off" } + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "comma-dangle": ["error", "never"] + } } ] } diff --git a/.github/workflows/pull-from-crowdin.yml b/.github/workflows/pull-from-crowdin.yml new file mode 100644 index 0000000000..84d1043f6c --- /dev/null +++ b/.github/workflows/pull-from-crowdin.yml @@ -0,0 +1,23 @@ +name: Pull Translations from Crowdin +on: + schedule: + - cron: "0 0 * * *" + workflow_dispatch: +jobs: + pull-from-crowdin: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Pull translations from Crowdin + uses: crowdin/github-action@2d540f18b0a416b1fbf2ee5be35841bd380fc1da # v2.3.0 + with: + upload_sources: false + download_translations: true + create_pull_request: true + localization_branch_name: automated-translations-update + pull_request_title: "GH Auto: Automated Update of Translations from Crowdin" + pull_request_base_branch_name: develop + env: + GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} + CROWDIN_TOKEN: ${{ secrets.CROWDIN_TRANSLATIONS_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1fdb78580c..090f9bd1aa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -131,3 +131,23 @@ jobs: npm_registry_token: ${{ secrets.NPM_REGISTRY_TOKEN }} npm_tag: ${{ env.TAG_NPM }} dry-run: ${{ inputs.dry-run-release }} + + push-translation-keys-to-crowdin: + name: Push translations keys to Crowdin + if: ${{ github.ref == 'refs/heads/develop' }} + runs-on: ubuntu-latest + permissions: + contents: read + packages: read + actions: read + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Push Source Files to Crowdin + uses: crowdin/github-action@2d540f18b0a416b1fbf2ee5be35841bd380fc1da # v2.3.0 + with: + upload_sources: true + upload_sources_args: --delete-obsolete + env: + CROWDIN_TOKEN: ${{ secrets.CROWDIN_TRANSLATIONS_TOKEN }} diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000000..b61783f5b8 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,13 @@ +"project_id": "13" +"api_token_env": "CROWDIN_TOKEN" +"base_path": "." +"base_url": "https://hyland.api.crowdin.com" +"preserve_hierarchy": true +"files": [ + { + "source": "/**/**/i18n/en.json", + "translation": "/%original_path%/%two_letters_code%.%file_extension%", + "export_only_approved": "true", + "update_option": "update_as_unapproved" + } +]