--- name: Translations Download # yamllint disable-line rule:truthy on: schedule: - cron: "0 8 * * *" workflow_dispatch: workflow_run: workflows: ["Translations Upload"] branches: [master] types: - completed jobs: json: name: Download Translations runs-on: ubuntu-latest steps: - name: โคต๏ธ Check out code from GitHub uses: actions/checkout@v3.5.3 with: fetch-depth: 0 - name: ๐Ÿ— Set up yq uses: frenck/action-setup-yq@v1.0.0 - name: ๐Ÿ— Set up the Lokalise CLI uses: frenck/action-setup-lokalise@v1.0.0 - name: โคต๏ธ Download translations run: | echo "Downloading translations to lokalise" lokalise2 file download \ --token "${LOKALISE_TOKEN}" \ --project-id "${LOKALISE_PROJECT}" \ --format yaml \ --original-filenames=false \ --export-empty-as base \ --bundle-structure ".translations/%LANG_ISO%.yaml" env: LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }} LOKALISE_PROJECT: ${{ secrets.LOKALISE_PROJECT }} - name: ๐Ÿš€ Process translations run: | addons=$(yq e '.addons | keys | .[]' .addons.yml) mkdir -p .translations for file in .translations/*.yaml; do filename=$(basename "${file}") language="${filename%.*}" if [[ "${language}" == "en" ]]; then continue fi echo "Processing downloaded translations in ${language}..." while read addon; do if [[ -f "${addon}/translations/en.yaml" ]]; then echo "Processing downloaded translations in ${language} for ${addon}..." yq e ".${addon}" "${file}" \ > "${addon}/translations/${filename}" fi done <<<"${addons}" done - name: ๐Ÿš€ Commit changes continue-on-error: true run: | git config --local user.email "action@github.com" git config --local user.name "${GITHUB_ACTOR}" git add . git commit -m "๐ŸŒ Updating translations" -a - name: ๐Ÿš€ Push changes uses: ad-m/github-push-action@v0.6.0 continue-on-error: true with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }}