From e38c2eac332a68ee440f0bdf34444c5150b4504c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Ainsworth?= Date: Mon, 19 Feb 2024 16:58:21 +0100 Subject: [PATCH 1/4] Add fixup script for translated files --- .github/scripts/fix-i18n.sh | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 .github/scripts/fix-i18n.sh diff --git a/.github/scripts/fix-i18n.sh b/.github/scripts/fix-i18n.sh new file mode 100755 index 000000000..ad0f76a47 --- /dev/null +++ b/.github/scripts/fix-i18n.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +LOCALES=("ja" "ko" "zh") + +for locale in ${LOCALES[@]}; do + + # Fix broken MDX components in all files + + for file in src/content/docs/**/*-$locale.mdx; do + echo "Fixing formatting for $locale content"; + + sed -i -e 's/)/\1\n\2/g' $file; + sed -zri 's/([^\n]\n)(<\/Accordion)/\1\n\2/g' $file; + sed -zri 's/([^\n]\n)(<\/MinorVersion)/\1\n\2/g' $file; + done; + + # Replace slugs + + for file in src/content/docs/**/*-$locale.mdx; do + echo "Updating slugs for $locale content"; + sed -i -E "s/(slug)(.*)(en)/\1\2$locale/g" $file; + done; + + for file in src/content/docs/**/*-$locale.mdx; do + echo "Updating URLs for $locale content"; + sed -i -E "s/\/en\//\/$locale\//g" $file; + done; + +done; From 225684018d8c76c6101be8942f4e6ff42c225a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Ainsworth?= Date: Mon, 19 Feb 2024 21:21:36 +0100 Subject: [PATCH 2/4] Use POSIX-compliant scripting --- .github/scripts/fix-i18n.sh | 89 ++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 51 deletions(-) diff --git a/.github/scripts/fix-i18n.sh b/.github/scripts/fix-i18n.sh index ad0f76a47..5d4668d6c 100755 --- a/.github/scripts/fix-i18n.sh +++ b/.github/scripts/fix-i18n.sh @@ -1,53 +1,40 @@ #!/bin/sh -LOCALES=("ja" "ko" "zh") - -for locale in ${LOCALES[@]}; do - - # Fix broken MDX components in all files - - for file in src/content/docs/**/*-$locale.mdx; do - echo "Fixing formatting for $locale content"; - - sed -i -e 's/)/\1\n\2/g' $file; - sed -zri 's/([^\n]\n)(<\/Accordion)/\1\n\2/g' $file; - sed -zri 's/([^\n]\n)(<\/MinorVersion)/\1\n\2/g' $file; - done; - - # Replace slugs - - for file in src/content/docs/**/*-$locale.mdx; do - echo "Updating slugs for $locale content"; - sed -i -E "s/(slug)(.*)(en)/\1\2$locale/g" $file; - done; - - for file in src/content/docs/**/*-$locale.mdx; do - echo "Updating URLs for $locale content"; - sed -i -E "s/\/en\//\/$locale\//g" $file; - done; - -done; +set -- ja ko zh + +for locale in "$@"; do + + # Fix broken MDX components in all files + + find 'src/content/docs/' -name "*-$locale.mdx" -type f -exec sh -c \ + 'for file do echo '\''Fixing formatting for '"${locale}"' content'\''; \ + sed -i -e "s/)/\1\n\2/g ; \ + s/([^\n]\n)(<\/Accordion)/\1\n\2/g ; \ + s/([^\n]\n)(<\/MinorVersion)/\1\n\2/g" "${file}"; \ + echo "Updating slugs for '"${locale}"' content"; \ + sed -i -E "s/(slug)(.*)(en)/\1\2'"${locale}"'/g" "${file}"; \ + echo "Updating URLs for '"${locale}"' content"; \ + sed -i -E "s/\/en\//\/'"${locale}"'\//g" "${file}"; done' none {} + + +done From 313a610671f83eb764f2a77a786744adae1368c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Ainsworth?= Date: Mon, 19 Feb 2024 21:22:31 +0100 Subject: [PATCH 3/4] Add GitHub action for translation fixes --- .github/workflows/fix_translations.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/fix_translations.yml diff --git a/.github/workflows/fix_translations.yml b/.github/workflows/fix_translations.yml new file mode 100644 index 000000000..40afc9e06 --- /dev/null +++ b/.github/workflows/fix_translations.yml @@ -0,0 +1,21 @@ +name: Fix translations +on: + pull_request: + workflow_dispatch: +jobs: + i18n-fixes: + name: Fix translated files + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Checkout the latest commit + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - name: Run translation fixes script + run: sh .github/scripts/fix-i18n.sh + - name: Commit changes + run: | + git config --global user.name github-actions + git config --global user.email github-actions@github.com + git commit -am "Fix translated files" + git push From d80683a68af34132fd13e46e62dde44281eaca8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Ainsworth?= Date: Mon, 19 Feb 2024 21:27:34 +0100 Subject: [PATCH 4/4] Add check for git status. --- .github/workflows/fix_translations.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/fix_translations.yml b/.github/workflows/fix_translations.yml index 40afc9e06..2b60694b7 100644 --- a/.github/workflows/fix_translations.yml +++ b/.github/workflows/fix_translations.yml @@ -13,7 +13,11 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Run translation fixes script run: sh .github/scripts/fix-i18n.sh + - name: Check for modified files + id: git-check + run: echo ::set-output name=modified::$(if [ -n "$(git status --porcelain)" ]; then echo "true"; else echo "false"; fi) - name: Commit changes + if: steps.git-check.outputs.modified == 'true' run: | git config --global user.name github-actions git config --global user.email github-actions@github.com