name: i18n - Download Client UI on: workflow_dispatch: schedule: # runs every weekday at 12:15 PM UTC - cron: '15 12 * * 1-5' env: GITHUB_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_PAT }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_SERVICE_TOKEN }} CROWDIN_API_URL: 'https://freecodecamp.crowdin.com/api/v2/' CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID_CLIENT }} jobs: i18n-download-client-ui-translations: name: Client runs-on: ubuntu-20.04 steps: - name: Checkout Source Files uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3 with: token: ${{ secrets.CROWDIN_CAMPERBOT_PAT }} - name: Generate Crowdin Config uses: freecodecamp/crowdin-action@main env: PLUGIN: 'generate-config' PROJECT_NAME: 'client' ##### Download Chinese ##### - name: Crowdin Download Chinese Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: zh-CN skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true # Convert Simplified Chinese to Traditional # - name: Convert Chinese uses: freecodecamp/crowdin-action@main env: PLUGIN: 'convert-chinese' FILE_PATHS: '["client/i18n/locales/chinese"]' ##### Download Espanol ##### - name: Crowdin Download Espanol Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: es-EM skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ##### Download Italian ##### - name: Crowdin Download Italian Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: it skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ##### Download Brazilian Portuguese ##### - name: Crowdin Download Portuguese (Brazilian) Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: pt-BR skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ##### Download Ukrainian ##### - name: Crowdin Download Ukrainian Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: uk skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ##### Download Japanese ##### - name: Crowdin Download Japanese Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: ja skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ##### Download German ##### - name: Crowdin Download German Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: de skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ##### Download Arabic ##### - name: Crowdin Download Arabic Translations uses: crowdin/github-action@master # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: false upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_translations: true download_language: ar skip_untranslated_files: false export_only_approved: true push_translations: false # pull-request create_pull_request: false # global options config: './crowdin-config.yml' base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} # Uncomment below to debug # dryrun_action: true ###### Format JSON ##### # Crowdin gives the files read-only permissions, so we first have to allow # writes. - name: Format JSON run: | sudo chown -R $(whoami): client/i18n/locales npx --yes prettier --write client/i18n/locales/**/*.json # Create Commit - name: Commit Changes uses: freecodecamp/crowdin-action@main env: PLUGIN: 'commit-changes' GH_USERNAME: 'camperbot' GH_EMAIL: ${{ secrets.ACTIONS_CAMPERBOT_EMAIL }} GH_BRANCH: 'i18n-sync-client' GH_MESSAGE: 'chore(i18n,client): processed translations' # Generate PR # # All languages should go ABOVE this. # - name: Create PR uses: freecodecamp/crowdin-action@main env: PLUGIN: 'pull-request' GH_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_PAT }} BRANCH: 'i18n-sync-client' REPOSITORY: 'freecodecamp/freecodecamp' BASE: 'main' TITLE: 'chore(i18n,client): processed translations' BODY: 'This PR was opened auto-magically by Crowdin.' LABELS: 'crowdin-sync' TEAM_REVIEWERS: 'i18n'