From dc72cf9bd7678ede6f9fd90181e033622fefefa0 Mon Sep 17 00:00:00 2001 From: Christian Heel <66922325+heelc29@users.noreply.github.com> Date: Sun, 17 Mar 2024 12:49:16 +0100 Subject: [PATCH] add workflow to get j6 source --- .../workflows/core-get-language-source-v6.yml | 106 +++++++++ Configurations/Crowdin-J6-All.yml | 204 ++++++++++++++++++ Configurations/Crowdin-J6-Installer.yml | 29 +++ README.md | 3 +- 4 files changed, 341 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/core-get-language-source-v6.yml create mode 100644 Configurations/Crowdin-J6-All.yml create mode 100644 Configurations/Crowdin-J6-Installer.yml diff --git a/.github/workflows/core-get-language-source-v6.yml b/.github/workflows/core-get-language-source-v6.yml new file mode 100644 index 00000000000..bd1b00cd9d7 --- /dev/null +++ b/.github/workflows/core-get-language-source-v6.yml @@ -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 release+translation-bot@joomla.org + 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/github-action@v1.19.0 + # 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/github-action@v1.19.0 + # 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 diff --git a/Configurations/Crowdin-J6-All.yml b/Configurations/Crowdin-J6-All.yml new file mode 100644 index 00000000000..c47b494692c --- /dev/null +++ b/Configurations/Crowdin-J6-All.yml @@ -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 diff --git a/Configurations/Crowdin-J6-Installer.yml b/Configurations/Crowdin-J6-Installer.yml new file mode 100644 index 00000000000..c1ffde8fb79 --- /dev/null +++ b/Configurations/Crowdin-J6-Installer.yml @@ -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 diff --git a/README.md b/README.md index 72adf5fd41c..5770181f0f1 100644 --- a/README.md +++ b/README.md @@ -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