Skip to content

i18n - Download Curriculum #8

i18n - Download Curriculum

i18n - Download Curriculum #8

name: i18n - Download Curriculum
on:
workflow_dispatch:
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_CURRICULUM }}
jobs:
i18n-download-curriculum-translations:
name: Curriculum
runs-on: ubuntu-22.04
strategy:
matrix:
node-version: [20.x]
fail-fast: true
steps:
- name: Checkout Source Files
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
token: ${{ secrets.CROWDIN_CAMPERBOT_PAT }}
- name: Generate Crowdin Config
uses: freecodecamp/crowdin-action@main
env:
PLUGIN: 'generate-config'
PROJECT_NAME: 'curriculum'
##### 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_strings: false
# 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: '["/curriculum/challenges/chinese/", "/curriculum/dictionaries/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_strings: false
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_strings: false
# 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_strings: false
# 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_strings: false
# 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_strings: false
# 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_strings: false
# 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_strings: false
# 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 Swahili #####
# - name: Crowdin Download Swahili 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: sw
# skip_untranslated_strings: false
# 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 Korean #####
# - name: Crowdin Download Korean 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: ko
# skip_untranslated_strings: false
# 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
# # Validate the Download #
# # All languages should go ABOVE this. #
# - name: Setup pnpm
# uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d #v3.0.0
# with:
# version: 9
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
# with:
# node-version: ${{ matrix.node-version }}
# cache: pnpm
# - name: Set Environment variables
# run: |
# cp sample.env .env
# echo 'SHOW_NEW_CURRICULUM=true' >> .env
# cat .env
# - name: Build Source Files
# run: |
# echo pnpm version $(pnpm -v)
# pnpm install
# pnpm run create:shared
# pnpm run build:curriculum
# pnpm run build:server
# # We do not need to run tests because they are run after the PR is created.
# ###### Lowercase directory names #####
# - name: Lowercase Directories
# uses: freecodecamp/crowdin-action@main
# env:
# PLUGIN: 'lowercase-directories'
# FILE_PATH: 'curriculum/challenges'
# - name: Overwrite Execute-Brain.md
# run: sudo tools/scripts/move-bf.sh
- name: Check Paths
uses: freecodecamp/crowdin-action@main
env:
PLUGIN: 'check-paths'
- name: Debug 1
run: |
git status
# 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-curriculum'
GH_MESSAGE: 'chore(i18n,learn): processed translations'
- name: Debug 2
run: |
git status
git log --oneline -1
# Create PR
- name: Create PR
uses: freecodecamp/crowdin-action@main
env:
PLUGIN: 'pull-request'
GH_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_PAT }}
BRANCH: 'i18n-sync-curriculum'
REPOSITORY: 'moT01/fcc'
BASE: 'main'
TITLE: 'chore(i18n,learn): processed translations'
BODY: 'This PR was opened auto-magically by Crowdin.'