Skip to content

Fetch and update translations (Lokalise) #16

Fetch and update translations (Lokalise)

Fetch and update translations (Lokalise) #16

name: Fetch and update translations (Lokalise)
on:
workflow_dispatch:
inputs:
langs:
description: >
Optional filter of languages to fetch and update. Pass a comma-delimited string of language codes,
like `en,fr,de` to fetch and update translations for the selected languages only.
type: string
default: "en,fr,de,ja,ru,es,uk_UA,zh-Hant,it"
update_app_localizations:
type: boolean
default: true
description: Update localizations in the main app target
update_bsdk_localizations:
type: boolean
default: false
description: Update localizations in the BlockchainSDK target
jobs:
update-localizations:
runs-on: macos-14
env:
APP_LOCALIZATIONS_DESTINATION: "Tangem/Resources/Localizations"
BSDK_LOCALIZATIONS_DESTINATION: "BlockchainSdk/Resources/Localizations"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@01dd5d3ca463c7f10f7f4f7b4f177225ac661ee4 # v6.1.0
with:
gpg_private_key: ${{ secrets.PGP_PRIVATE_SERVICE }}
git_user_signingkey: true
git_commit_gpgsign: true
- name: Bundle install
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Fetch and update main app localizations
if: ${{ github.event.inputs.update_app_localizations == 'true' }}
env:
LOKALISE_PROJECT_ID: ${{ secrets.LOKALISE_APP_PROJECT_ID }}
LOKALISE_API_TOKEN: ${{ secrets.LOKALISE_ACCESS_TOKEN }}
run: |
bundle exec fastlane update_translations languages:${{ github.event.inputs.langs }} destination:${{ env.APP_LOCALIZATIONS_DESTINATION }}
- name: Fetch and update BSDK localizations
if: ${{ github.event.inputs.update_bsdk_localizations == 'true' }}
env:
LOKALISE_PROJECT_ID: ${{ secrets.LOKALISE_BSDK_PROJECT_ID }}
LOKALISE_API_TOKEN: ${{ secrets.LOKALISE_ACCESS_TOKEN }}
run: |
bundle exec fastlane update_translations languages:${{ github.event.inputs.langs }} destination:${{ env.BSDK_LOCALIZATIONS_DESTINATION }}
- name: Push changes and open a pull-request
env:
GH_TOKEN: ${{ github.token }}
SOURCE_BRANCH: lokalise-translations-sync
TARGET_BRANCH: ${{ github.ref_name }}
LANGUAGES: ${{ github.event.inputs.langs }}
GH_RUN_ID: ${{ github.run_id }}
run: |
git config --global user.name "Tangem Service"
git config --global user.email "[email protected]"
git checkout -b $SOURCE_BRANCH $TARGET_BRANCH
git add "${APP_LOCALIZATIONS_DESTINATION}"
git add "${BSDK_LOCALIZATIONS_DESTINATION}"
: "${LANGUAGES:="all"}"
commit_message="Sync translations for \`${LANGUAGES}\` languages"
pr_message="[Localise] ${commit_message} (${GH_RUN_ID})"
git commit -S -m "${commit_message}"
git push --set-upstream origin $SOURCE_BRANCH --force
gh pr create --base $TARGET_BRANCH --head $SOURCE_BRANCH --title "${pr_message}" --body ""