Skip to content

Commit

Permalink
Sync src/ with date in PO file when publishing
Browse files Browse the repository at this point in the history
Before, we always used the latest English source files when
publishing. This means that translations become outdated as soon as
anything is changed in the source.

This PR changes will instead freeze translations in place: they will
keep using the same English source files until a new POT file is
merged into the translation. We do this by relying on the
POT-Creation-Date field in the PO files.

We still update all the files around the Markdown files: this allows
us to fix things in the theme, for example.

Part of google/mdbook-i18n-helpers#16. The
logic here should eventually be moved to somewhere in
mdbook-i18n-helpers, most likely to the renderer that @sakex is
building in google/mdbook-i18n-helpers#84.
  • Loading branch information
mgeisler committed Sep 24, 2023
1 parent a9183eb commit d51d653
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 24 deletions.
54 changes: 32 additions & 22 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
name: Publish

on:
push:
branches:
- main
workflow_dispatch:
pull_request:
# push:
# branches:
# - main
# workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write
#permissions:
# contents: read
# pages: write
# id-token: write

# Allow one concurrent deployment
concurrency:
Expand All @@ -23,13 +24,15 @@ env:

jobs:
publish:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# environment:
# name: github-pages
# url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch full history

- name: Setup Rust cache
uses: ./.github/workflows/setup-rust-cache
Expand All @@ -45,8 +48,15 @@ jobs:

- name: Build all translations
run: |
set -x
for po_lang in ${{ env.LANGUAGES }}; do
echo "::group::Building $po_lang translation"
POT_CREATION_DATE=$(grep --max-count 1 '^"POT-Creation-Date:' po/$po_lang.po | sed -E 's/".*: (.*)\\n"/\1/')
if [[ $POT_CREATION_DATE == "" ]]; then
POT_CREATION_DATE=now
fi
git checkout "HEADn@{$POT_CREATION_DATE}" src/
MDBOOK_BOOK__LANGUAGE=$po_lang \
MDBOOK_OUTPUT__HTML__SITE_URL=/comprehensive-rust/$po_lang/ \
mdbook build -d book/$po_lang
Expand All @@ -55,14 +65,14 @@ jobs:
echo "::endgroup::"
done
- name: Setup Pages
uses: actions/configure-pages@v2

- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: book/html

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
# - name: Setup Pages
# uses: actions/configure-pages@v2
#
# - name: Upload artifact
# uses: actions/upload-pages-artifact@v1
# with:
# path: book/html
#
# - name: Deploy to GitHub Pages
# id: deployment
# uses: actions/deploy-pages@v1
2 changes: 1 addition & 1 deletion po/da.po
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Comprehensive Rust 🦀\n"
"POT-Creation-Date: \n"
"POT-Creation-Date: 2023-09-24T14:16:08+02:00\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
Expand Down
2 changes: 1 addition & 1 deletion po/ko.po
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: [한국어]Comprehensive Rust 🦀\n"
"POT-Creation-Date: \n"
"POT-Creation-Date: 2023-08-24T14:16:08+02:00\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
Expand Down

0 comments on commit d51d653

Please sign in to comment.