name: i18n - Upload Curriculum on: workflow_dispatch: schedule: # runs every weekday at 7:30 AM UTC - cron: '30 7 * * 1-5' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_SERVICE_TOKEN }} CROWDIN_API_URL: 'https://freecodecamp.crowdin.com/api/v2/' CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID_CURRICULUM }} permissions: contents: read jobs: i18n-upload-curriculum-files: name: Learn runs-on: ubuntu-24.04 steps: - name: Checkout Source Files uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Generate Crowdin Config uses: freecodecamp/crowdin-action@36a78cbf92f5a6c05a3a32dc8bf434a19a7c59e2 # main env: PLUGIN: 'generate-config' PROJECT_NAME: 'curriculum' - name: Crowdin Upload uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2.16.2 # options: https://github.com/crowdin/github-action/blob/master/action.yml with: # uploads upload_sources: true upload_translations: false auto_approve_imported: false import_eq_suggestions: false # downloads download_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 - name: Remove deleted files uses: freecodecamp/crowdin-action@36a78cbf92f5a6c05a3a32dc8bf434a19a7c59e2 # main env: PLUGIN: 'remove-deleted-files' FILE_PATHS: '["curriculum/challenges/english", "curriculum/dictionaries/english"]' - name: Hide Non-Translated Strings uses: freecodecamp/crowdin-action@36a78cbf92f5a6c05a3a32dc8bf434a19a7c59e2 # main env: PLUGIN: 'hide-curriculum-strings' - name: Hide a String uses: freecodecamp/crowdin-action@36a78cbf92f5a6c05a3a32dc8bf434a19a7c59e2 # main env: PLUGIN: 'hide-string' FILE_NAME: 'basic-html-and-html5/nest-an-anchor-element-within-a-paragraph.md' STRING_CONTENT: Here's a link to www.freecodecamp.org for you to follow. - name: Unhide Title of Use && For a More Concise Conditional uses: freecodecamp/crowdin-action@36a78cbf92f5a6c05a3a32dc8bf434a19a7c59e2 # main env: PLUGIN: 'unhide-string' FILE_NAME: 'react/use--for-a-more-concise-conditional.md' STRING_CONTENT: 'Use && for a More Concise Conditional'