name: Translation job on: push: paths: - 'web/i18n/strings.json' - 'web/**/*.tsx' - 'web/**/*.js' - 'crowdin.yml' - '.github/workflows/translations.yml' - 'web/i18next-parser.config.mjs' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: generate-translations: defaults: run: working-directory: ./web runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install dependencies if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }} run: npm install - name: Generate translation files run: npm run translate - name: Commit changes uses: EndBug/add-and-commit@v9 with: author_name: Owncast author_email: owncast@owncast.online message: 'Commit updated translations' add: 'web/i18n/**' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Crowdin action uses: crowdin/github-action@v1 with: upload_sources: true download_translations: true localization_branch_name: translations config: crowdin.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}