Skip to content

Sync and Translate Documentation #205

Sync and Translate Documentation

Sync and Translate Documentation #205

name: Sync and Translate Documentation
on:
push:
branches:
- main
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
sync-and-translate:
runs-on: ubuntu-latest
steps:
- name: Checkout user's repo (main branch)
uses: actions/checkout@v2
with:
repository: fan-ziqi/IsaacLab
ref: main
- name: Configure git user
run: |
git config --global user.name 'fan-ziqi'
git config --global user.email '[email protected]'
- name: Add upstream repository
run: git remote add upstream https://github.com/isaac-sim/IsaacLab.git
- name: Merge upstream changes while keeping local changes
run: |
git fetch upstream
git checkout main
git merge upstream/main --strategy-option ours --allow-unrelated-histories --verbose
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools polib==1.2.0 openai==v1.3.6 python-dotenv==1.0.0 pytest==8.2.2 sphinx-intl sphinx-book-theme==1.0.1 myst-parser sphinxcontrib-bibtex==2.5.0 autodocsumm sphinx-copybutton sphinx-icon sphinx_design sphinxemoji numpy matplotlib warp-lang gymnasium
- name: Generate gettext
run: |
pushd docs
make gettext
popd
- name: Update translations
run: |
pushd docs
sphinx-intl update -p _build/gettext -l zh_CN
popd
- name: Translate using custom script
run: |
pushd docs
python po_translator.py --folder ./locale --lang zh_CN --folder-language --bulk --fuzzy
popd
- name: Build HTML with translations
run: |
pushd docs
make -e SPHINXOPTS="-D language='zh_CN'" html
popd
- name: Copy generated HTML files to temporary Path
run: |
mkdir -p temp_html
cp -r docs/_build/html/* temp_html/
rm -rf docs/_build/html/
- name: Check if po files changed
id: po_files_changed
run: |
git checkout main
git add docs/locale/zh_CN/LC_MESSAGES/**/*.po
git diff-index --quiet HEAD -- || echo "po_changed=true" >> $GITHUB_ENV
- name: Commit and push po files to main branch
run: |
if [ "$po_changed" = "true" ]; then
git commit -am "Update po files"
git push origin main
else
echo "No changes to commit"
fi
- name: Commit and push changes to gh-pages-zhcn branch
run: |
git checkout --orphan gh-pages-zhcn
git rm -rf .
rm -rf docs source
cp -r temp_html/* .
rm -rf temp_html
git add .
git commit -m "Update translated documentation"
git push origin gh-pages-zhcn --force