Add a Github Action to send translations to Crowdin for each merge in main (#25869)
parent
d184524233
commit
626a7b6a77
3 changed files with 116 additions and 0 deletions
@ -0,0 +1,76 @@ |
|||||||
|
name: Crowdin / Download translations |
||||||
|
on: |
||||||
|
schedule: |
||||||
|
- cron: '17 4 * * *' # Every day |
||||||
|
workflow_dispatch: |
||||||
|
|
||||||
|
permissions: |
||||||
|
contents: write |
||||||
|
pull-requests: write |
||||||
|
|
||||||
|
jobs: |
||||||
|
download-translations: |
||||||
|
runs-on: ubuntu-latest |
||||||
|
|
||||||
|
steps: |
||||||
|
- name: Checkout |
||||||
|
uses: actions/checkout@v3 |
||||||
|
|
||||||
|
- name: Increase Git http.postBuffer |
||||||
|
# This is needed due to a bug in Ubuntu's cURL version? |
||||||
|
# See https://github.com/orgs/community/discussions/55820 |
||||||
|
run: | |
||||||
|
git config --global http.version HTTP/1.1 |
||||||
|
git config --global http.postBuffer 157286400 |
||||||
|
|
||||||
|
# Download the translation files from Crowdin |
||||||
|
- name: crowdin action |
||||||
|
uses: crowdin/github-action@v1 |
||||||
|
with: |
||||||
|
upload_sources: false |
||||||
|
upload_translations: false |
||||||
|
download_translations: true |
||||||
|
crowdin_branch_name: main |
||||||
|
push_translations: false |
||||||
|
create_pull_request: false |
||||||
|
env: |
||||||
|
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }} |
||||||
|
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} |
||||||
|
|
||||||
|
# As the files are extracted from a Docker container, they belong to root:root |
||||||
|
# We need to fix this before the next steps |
||||||
|
- name: Fix file permissions |
||||||
|
run: sudo chown -R runner:docker . |
||||||
|
|
||||||
|
# This is needed to run the normalize step |
||||||
|
- name: Install native Ruby dependencies |
||||||
|
run: sudo apt-get install -y libicu-dev libidn11-dev |
||||||
|
|
||||||
|
- name: Set up Ruby |
||||||
|
uses: ruby/setup-ruby@v1 |
||||||
|
with: |
||||||
|
ruby-version: .ruby-version |
||||||
|
bundler-cache: true |
||||||
|
|
||||||
|
- name: Run i18n normalize task |
||||||
|
run: bundle exec i18n-tasks normalize |
||||||
|
|
||||||
|
# Create or update the pull request |
||||||
|
- name: Create Pull Request |
||||||
|
uses: peter-evans/create-pull-request@v5.0.2 |
||||||
|
with: |
||||||
|
commit-message: 'New Crowdin translations' |
||||||
|
title: 'New Crowdin Translations (automated)' |
||||||
|
author: 'GitHub Actions <noreply@github.com>' |
||||||
|
body: | |
||||||
|
New Crowdin translations, automated with Github Actions |
||||||
|
|
||||||
|
See `.github/workflows/crowdin-download.yml` |
||||||
|
|
||||||
|
This PR will be updated every day with new translations. |
||||||
|
|
||||||
|
Due to a limitation in Github Actions, checks are not running on this PR without manual action. |
||||||
|
If you want to run the checks, then close and re-open it. |
||||||
|
branch: i18n/crowdin/translations |
||||||
|
base: main |
||||||
|
labels: i18n |
@ -0,0 +1,35 @@ |
|||||||
|
name: Crowdin / Upload translations |
||||||
|
|
||||||
|
on: |
||||||
|
push: |
||||||
|
branches: |
||||||
|
- main |
||||||
|
paths: |
||||||
|
- crowdin.yml |
||||||
|
- app/javascript/mastodon/locales/en.json |
||||||
|
- config/locales/en.yml |
||||||
|
- config/locales/simple_form.en.yml |
||||||
|
- config/locales/activerecord.en.yml |
||||||
|
- config/locales/devise.en.yml |
||||||
|
- config/locales/doorkeeper.en.yml |
||||||
|
- .github/workflows/crowdin-upload.yml |
||||||
|
|
||||||
|
jobs: |
||||||
|
upload-translations: |
||||||
|
runs-on: ubuntu-latest |
||||||
|
|
||||||
|
steps: |
||||||
|
- name: Checkout |
||||||
|
uses: actions/checkout@v3 |
||||||
|
|
||||||
|
- name: crowdin action |
||||||
|
uses: crowdin/github-action@v1 |
||||||
|
with: |
||||||
|
upload_sources: true |
||||||
|
upload_translations: false |
||||||
|
download_translations: false |
||||||
|
crowdin_branch_name: main |
||||||
|
|
||||||
|
env: |
||||||
|
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }} |
||||||
|
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} |
Loading…
Reference in new issue