Skip to content
Wilco Alsemgeest edited this page Jun 13, 2021 · 12 revisions

Support Sources

Crowdin Yaml file example

This file must be named "crowdin.yml" and be in the root of the repository. Other locations is also possible, but requires a change in the workflow file.

# Project Public Identifier: joomla-xxx-xxx
project_id: number
api_token_env: CROWDIN_PERSONAL_TOKEN
base_path: language
base_url: "https://joomla.crowdin.com"

preserve_hierarchy: true

files:
  - source: "/en-GB/en-GB.com_language.ini"
    dest: "Joomla! Downloads/en-GB.com_language.ini"
    translation: "/%locale%/%locale%.com_language.ini"
    type: joomla
    update_option: update_as_unapproved

  - source: "/en-GB/en-GB.com_language1.ini"
    dest: "Joomla! Downloads/en-GB.com_language1.ini"
    translation: "/%locale%/%locale%.com_language1.ini"

  - source: "/en-GB/en-GB.com_language2.ini"
    dest: "Joomla! Downloads/en-GB.com_language2.ini"
    translation: "/%locale%/%locale%.com_language2.ini"

Github Actions workflow file example

This file is used within the the Github Actions configuration.

name: Crowdin Action
# Controls when the action will run. 
on:
  # Triggers the workflow on a schedule
  schedule:
    - cron: '15 * * * *'
  # Triggers the workflow on push or pull request events but only for the master branch
  push:
    branches: [ master ]
  
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel  
jobs:
  # This workflow contains a single job called "build"
  synchronize-with-crowdin:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
    - name: Checkout
      uses: actions/checkout@v2
    
    # Runs the Crowdin action command
    - name: crowdin action
      # Version of the Crowdin Github action to use
      uses: crowdin/[email protected]
      with:
        # Upload sources to Crowdin
        upload_sources: true
        # Upload translations to Crowdin, only use true at initial run
        upload_translations: false
        # Download translations from Crowdin
        download_translations: false
        # Only download translated strings
        skip_untranslated_strings: false
        # Download translations with pushing to branch
        push_translations: true
        # To download translations to the specified version branch
        localization_branch_name: 'l10n_crowdin_translations'
        # Create pull request after pushing to branch
        create_pull_request: true
        # Configuration file to use
        config: 'crowdin.yml'
        # Use true for dryrun to test the run without actually processing anything
        dryrun_action: false
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

Github Repostitory secret

Go to "Settings" - "Secrets" - "New repository secret"
Use name: CROWDIN_PERSONAL_TOKEN
Use value: Received from Crowdin project manager