Skip to content

Commit

Permalink
add workflow to get j6 source
Browse files Browse the repository at this point in the history
  • Loading branch information
heelc29 committed Mar 17, 2024
1 parent b75bd17 commit dc72cf9
Show file tree
Hide file tree
Showing 4 changed files with 341 additions and 1 deletion.
106 changes: 106 additions & 0 deletions .github/workflows/core-get-language-source-v6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# This workflow fetches the V6 Version of the Joomla CMS and syncs the needed source language files
# into the core-translations repository. After this it creates a new commit

name: J6 Get Core Source Language files

on:
# Runs once a day at 7:42
schedule:
- cron: '42 7 * * *'
workflow_dispatch:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

jobs:
build:
if: (github.event_name == 'schedule' && github.repository == 'joomla/core-translations') || (github.event_name != 'schedule')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch and extract core j6 cms
run: |
cd ..
ls -l
wget -nv "https://github.com/joomla/joomla-cms/archive/refs/heads/6.0-dev.zip" -O joomla.zip
unzip joomla.zip
mv joomla-cms-*-dev joomla-cms
- name: Syncing j6 directories
# We use a simple copy paste syntax here if needed customization for different directories
run: |
cd ..
REPO_NAME=${{ github.event.repository.name }}
SYNC_VERION="v6"
SYNC_PATH="administrator/language/en-GB/"
echo /${SYNC_PATH}
mkdir -p ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete joomla-cms/${SYNC_PATH} ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
SYNC_PATH="administrator/manifests/packages/"
SYNC_FILE="administrator/manifests/packages/pkg_en-GB.xml"
echo /${SYNC_FILE}
mkdir -p ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete joomla-cms/${SYNC_FILE} ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_FILE}
SYNC_PATH="api/language/en-GB/"
echo /${SYNC_PATH}
mkdir -p ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete joomla-cms/${SYNC_PATH} ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
SYNC_PATH="installation/language/en-GB/"
echo /${SYNC_PATH}
mkdir -p ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete joomla-cms/${SYNC_PATH} ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
SYNC_PATH="language/en-GB/"
echo /${SYNC_PATH}
mkdir -p ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete joomla-cms/${SYNC_PATH} ${REPO_NAME}/joomla_${SYNC_VERION}/source/${SYNC_PATH}
- name: Push j6 to repo
run: |
git config user.name Translation Bot
git config user.email [email protected]
git status
git add .
git diff --quiet && git diff --staged --quiet || git commit -am "J6 Source Language update on `date +'%Y-%m-%d'`"
git push
# synchronize-with-crowdin:
# needs: build
# # 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@v4

# # Runs the Crowdin action command - https://github.com/crowdin/github-action
# - name: crowdin action package files
# uses: crowdin/[email protected]
# with:
# # Upload sources to Crowdin
# upload_sources: true
# # Option to specify a path to the configuration file, without / at the beginning
# config: 'Configurations/Crowdin-J6-All.yml'
# # Upload sources to Crowdin branch
# crowdin_branch_name: JoomlaV6
# # Use true for dryrun to test the run without actually processing anything
# dryrun_action: false

# - name: crowdin action installer files
# uses: crowdin/[email protected]
# with:
# # Upload sources to Crowdin
# upload_sources: true
# # Option to specify a path to the configuration file, without / at the beginning
# config: 'Configurations/Crowdin-J6-Installer.yml'
# # Upload sources to Crowdin branch
# crowdin_branch_name: JoomlaV6
# # Use true for dryrun to test the run without actually processing anything
# dryrun_action: false
204 changes: 204 additions & 0 deletions Configurations/Crowdin-J6-All.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
# Project Public Identifier: cms
project_id_env: CROWDIN_PROJECT_ID # The numeric project ID.
api_token_env: CROWDIN_PERSONAL_TOKEN
base_path: ".."
base_url: "https://joomla.crowdin.com"

preserve_hierarchy: true

files:
# All Backend INI Files
- source: /joomla_v6/source/administrator/language/en-GB/*.ini
dest: 'Package/administrator/language/en-GB/%file_name%.ini'
translation: /joomla_v6/translations/package/%locale%/administrator/language/%locale%/%file_name%.ini
update_option: update_as_unapproved
type: joomla

# Backend XML
- source: /joomla_v6/source/administrator/language/en-GB/install.xml
dest: 'Package/administrator/language/en-GB/install.xml'
translation: /joomla_v6/translations/package/%locale%/administrator/language/%locale%/install.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /extension/name
- /extension/tag
- /extension/version
- /extension/creationDate
- /extension/author
- /extension/authorEmail
- /extension/authorUrl
- /extension/copyright
- /extension/license
- /extension/description

- source: /joomla_v6/source/administrator/language/en-GB/langmetadata.xml
dest: 'Package/administrator/language/en-GB/langmetadata.xml'
translation: /joomla_v6/translations/package/%locale%/administrator/language/%locale%/langmetadata.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /metafile/name
- /metafile/version
- /metafile/creationDate
- /metafile/author
- /metafile/authorEmail
- /metafile/authorUrl
- /metafile/copyright
- /metafile/license
- /metafile/description
- /metafile/metadata/name
- /metafile/metadata/nativeName
- /metafile/metadata/tag
- /metafile/metadata/rtl
- /metafile/metadata/locale
- /metafile/metadata/firstDay
- /metafile/metadata/weekEnd
- /metafile/metadata/calendar

# Backend Specials
- source: /joomla_v6/source/administrator/language/en-GB/localise.php
dest: 'Package/administrator/language/en-GB/localise.txt'
translation: /joomla_v6/translations/package/%locale%/administrator/language/%locale%/localise.php
update_option: update_as_unapproved
type: txt

- source: /joomla_v6/source/administrator/manifests/packages/pkg_en-GB.xml
dest: 'Package/pkg_en-GB.xml'
translation: /joomla_v6/translations/package/%locale%/pkg_%locale%.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /extension/name
- /extension/packagename
- /extension/version
- /extension/creationDate
- /extension/author
- /extension/authorEmail
- /extension/authorUrl
- /extension/copyright
- /extension/license
- /extension/url
- /extension/packager
- /extension/packagerurl
- /extension/description
- /extension/files/folder
- /extension/files/folder[@id]
- /extension/updateservers/server[@name]

# All Frontend INI Files
- source: /joomla_v6/source/language/en-GB/*.ini
dest: 'Package/language/en-GB/%file_name%.ini'
translation: /joomla_v6/translations/package/%locale%/language/%locale%/%file_name%.ini
update_option: update_as_unapproved
type: joomla

- source: /joomla_v6/source/language/en-GB/com_finder.commonwords.txt
dest: 'Package/language/en-GB/com_finder.commonwords.txt'
translation: /joomla_v6/translations/package/%locale%/language/%locale%/com_finder.commonwords.txt
update_option: update_as_unapproved
type: txt

# Frontend XML
- source: /joomla_v6/source/language/en-GB/install.xml
dest: 'Package/language/en-GB/install.xml'
translation: /joomla_v6/translations/package/%locale%/language/%locale%/install.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /extension/name
- /extension/tag
- /extension/version
- /extension/creationDate
- /extension/author
- /extension/authorEmail
- /extension/authorUrl
- /extension/copyright
- /extension/license
- /extension/description

- source: /joomla_v6/source/language/en-GB/langmetadata.xml
dest: 'Package/language/en-GB/langmetadata.xml'
translation: /joomla_v6/translations/package/%locale%/language/%locale%/langmetadata.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /metafile/name
- /metafile/version
- /metafile/creationDate
- /metafile/author
- /metafile/authorEmail
- /metafile/authorUrl
- /metafile/copyright
- /metafile/license
- /metafile/description
- /metafile/metadata/name
- /metafile/metadata/nativeName
- /metafile/metadata/tag
- /metafile/metadata/rtl
- /metafile/metadata/locale
- /metafile/metadata/firstDay
- /metafile/metadata/weekEnd
- /metafile/metadata/calendar

# Frontend Specials
- source: /joomla_v6/source/language/en-GB/localise.php
dest: 'Package/language/en-GB/localise.txt'
translation: /joomla_v6/translations/package/%locale%/language/%locale%/localise.php
update_option: update_as_unapproved
type: txt

# API Files
- source: /joomla_v6/source/api/language/en-GB/joomla.ini
dest: 'Package/api/language/en-GB/joomla.ini'
translation: /joomla_v6/translations/package/%locale%/api/language/%locale%/joomla.ini
update_option: update_as_unapproved
type: joomla

- source: /joomla_v6/source/api/language/en-GB/install.xml
dest: 'Package/api/language/en-GB/install.xml'
translation: /joomla_v6/translations/package/%locale%/api/language/%locale%/install.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /extension/name
- /extension/tag
- /extension/version
- /extension/creationDate
- /extension/author
- /extension/authorEmail
- /extension/authorUrl
- /extension/copyright
- /extension/license
- /extension/description

- source: /joomla_v6/source/api/language/en-GB/langmetadata.xml
dest: 'Package/api/language/en-GB/langmetadata.xml'
translation: /joomla_v6/translations/package/%locale%/api/language/%locale%/langmetadata.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /metafile/name
- /metafile/version
- /metafile/creationDate
- /metafile/author
- /metafile/authorEmail
- /metafile/authorUrl
- /metafile/copyright
- /metafile/license
- /metafile/description
- /metafile/metadata/name
- /metafile/metadata/nativeName
- /metafile/metadata/tag
- /metafile/metadata/rtl
- /metafile/metadata/locale
- /metafile/metadata/firstDay
- /metafile/metadata/weekEnd
- /metafile/metadata/calendar
29 changes: 29 additions & 0 deletions Configurations/Crowdin-J6-Installer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Project Public Identifier: cms
project_id_env: CROWDIN_PROJECT_ID # The numeric project ID.
api_token_env: CROWDIN_PERSONAL_TOKEN
base_path: ".."
base_url: "https://joomla.crowdin.com"

preserve_hierarchy: true

files:
# Installation files
- source: /joomla_v6/source/installation/language/en-GB/joomla.ini
dest: 'Installer/language/en-GB/joomla.ini'
translation: /joomla_v6/translations/core/installation/language/%locale%/joomla.ini
update_option: update_as_unapproved
type: joomla

- source: /joomla_v6/source/installation/language/en-GB/langmetadata.xml
dest: 'Installer/language/en-GB/langmetadata.xml'
translation: /joomla_v6/translations/core/installation/language/%locale%/langmetadata.xml
update_option: update_as_unapproved
content_segmentation: 0
type: xml
translatable_elements:
- /metafile/name
- /metafile/author
- /metafile/metadata/name
- /metafile/metadata/nativeName
- /metafile/metadata/tag
- /metafile/metadata/rtl
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ These two files can't be processed manual, because of the amount of work and ris
* UTC 06:12-07:12 -> Get J4 Core Source and Upload to Crowdin
* UTC 03:30-04:30 -> J5 Download Installer Translations Crowdin Action
* UTC 04:01-05:00 -> J5 Download Package Translations Crowdin Action
* UTC 07:12-08:12 -> Get J5 Core Source and Upload to Crowdin
* UTC 07:12-07:41 -> Get J5 Core Source and Upload to Crowdin
* UTC 07:42-08:12 -> Get J6 Core Source
* UTC 08:01-08:15 -> Get J4 Russian and upload Translations to Crowdin
* UTC 08:16-08:30 -> Get J5 Ukrainian and upload Translations to Crowdin
* UTC 08:31-08:45 -> Get J4 Japanese and upload Translations to Crowdin
Expand Down

0 comments on commit dc72cf9

Please sign in to comment.