diff --git a/.github/helper/update_pot_file.sh b/.github/helper/update_pot_file.sh new file mode 100644 index 00000000..d317c9d3 --- /dev/null +++ b/.github/helper/update_pot_file.sh @@ -0,0 +1,40 @@ +#!/bin/bash +set -e +cd ~ || exit + +echo "Setting Up Bench..." + +pip install frappe-bench +bench -v init frappe-bench --skip-assets --skip-redis-config-generation --python "$(which python)" --frappe-branch "${BASE_BRANCH}" +cd ./frappe-bench || exit + +echo "Get FCRM..." +bench get-app --skip-assets crm "${GITHUB_WORKSPACE}" + +echo "Generating POT file..." +bench generate-pot-file --app crm + +cd ./apps/crm || exit + +echo "Configuring git user..." +git config user.email "developers@erpnext.com" +git config user.name "frappe-pr-bot" + +echo "Setting the correct git remote..." +# Here, the git remote is a local file path by default. Let's change it to the upstream repo. +git remote set-url upstream https://github.com/frappe/crm.git + +echo "Creating a new branch..." +isodate=$(date -u +"%Y-%m-%d") +branch_name="pot_${BASE_BRANCH}_${isodate}" +git checkout -b "${branch_name}" + +echo "Commiting changes..." +git add crm/locale/main.pot +git commit -m "chore: update POT file" + +gh auth setup-git +git push -u upstream "${branch_name}" + +echo "Creating a PR..." +gh pr create --fill --base "${BASE_BRANCH}" --head "${branch_name}" -R frappe/crm \ No newline at end of file diff --git a/.github/workflows/generate-pot-file.yml b/.github/workflows/generate-pot-file.yml new file mode 100644 index 00000000..da422a74 --- /dev/null +++ b/.github/workflows/generate-pot-file.yml @@ -0,0 +1,35 @@ +name: Regenerate POT file (translatable strings) +on: + schedule: + # 9:30 UTC => 3 PM IST Sunday + - cron: "30 9 * * 0" + workflow_dispatch: + +jobs: + regenerate-pot-file: + name: Regenerate POT file + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + branch: ["develop"] + permissions: + contents: write + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch }} + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Run script to update POT file + run: | + bash ${GITHUB_WORKSPACE}/.github/helper/update_pot_file.sh + env: + GH_TOKEN: ${{ secrets.RELEASE_TOKEN }} + BASE_BRANCH: ${{ matrix.branch }} \ No newline at end of file diff --git a/crm/crowdin.yml b/crm/crowdin.yml new file mode 100644 index 00000000..aebaa70d --- /dev/null +++ b/crm/crowdin.yml @@ -0,0 +1,8 @@ +files: + - source: /crm/locale/main.pot + translation: /crm/locale/%two_letters_code%.po +pull_request_title: "chore: sync translations from crowdin" +pull_request_labels: + - translation +commit_message: "chore: %language% translations" +append_commit_message: false \ No newline at end of file diff --git a/crm/locale/main.pot b/crm/locale/main.pot new file mode 100644 index 00000000..e69de29b