Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG - Fix i18n files and compilation for distribution #2042

Merged
merged 17 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
# if not we use the default version
# example substitution: tox run -e compile-assets,i18n-compile,py39-tests
else
python -Im tox run -e compile,i18n-compile,py$(echo ${{ matrix.python-version }} | tr -d .)-tests
python -Im tox run -e compile-assets,i18n-compile,py$(echo ${{ matrix.python-version }} | tr -d .)-tests
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For whatever reason I had missed this when renaming to compile-assets

fi
- name: "Upload coverage data to GH artifacts 📤"
if: matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' && matrix.sphinx-version == 'dev'
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@ jobs:
python -Im tox run -e compile-assets,i18n-compile,py$(echo ${{ matrix.python-version }} | tr -d .)-tests-no-cov
echo "PYTEST_ERRORS=$?" >> $GITHUB_ENV

- name: "Build and inspect package 📦"
uses: hynek/build-and-inspect-python-package@v2
gabalafou marked this conversation as resolved.
Show resolved Hide resolved
if: matrix.python-version == '3.9'
id: baipp

- run: echo Packages can be found at ${{ steps.baipp.outputs.dist }}
if: matrix.python-version == '3.9'

# If either the docs build or the tests resulted in an error, create an issue to note it
- name: "Create an issue if failure"
uses: JasonEtco/create-an-issue@v2
Expand Down
2 changes: 1 addition & 1 deletion docs/community/topics/i18n.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ file, and visible to localizers. For example:

{# L10n: Navigation button at the bottom of the page #}
<button type="button">
{{- _("Next page") -}}
{{- _('Next page') -}}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit as we use single quotes in a lot of our localisable strings

</button>

.. _updating-localization-files:
Expand Down
6 changes: 2 additions & 4 deletions src/pydata_sphinx_theme/locale/ca/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
# Translators:
# Cristhian Rivera, 2024
# Oriol Abril-Pla <[email protected]>, 2024
#
msgid ""
msgstr ""

Expand Down Expand Up @@ -145,11 +144,10 @@ msgstr "Fosc"
msgid "System Settings"
msgstr "Configuració del sistema"

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"Construïda amb el <a href=\"https://pydata-sphinx-"
Expand Down
5 changes: 2 additions & 3 deletions src/pydata_sphinx_theme/locale/cs/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,10 @@ msgstr "Tmavý"
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"Vytvořeno pomocí <a href=\"https://pydata-sphinx-"
Expand Down
11 changes: 8 additions & 3 deletions src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,10 @@ msgstr ""
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""

Expand Down Expand Up @@ -182,3 +181,9 @@ msgstr ""

#~ msgid "light/dark"
#~ msgstr ""

#~ msgid ""
#~ "Built with the <a href=\"https://pydata-"
#~ "sphinx-theme.readthedocs.io/en/stable/index.html\">PyData "
#~ "Sphinx Theme</a> %(theme_version)s."
#~ msgstr ""
9 changes: 3 additions & 6 deletions src/pydata_sphinx_theme/locale/es/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
# Cristhian Rivera, 2024
# Felipe Moreno, 2024
# Tania Allard, 2024
#
msgid ""
msgstr ""

Expand Down Expand Up @@ -42,8 +41,7 @@ msgstr "Error"

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/search.html:9
msgid "Please activate JavaScript to enable the search functionality."
msgstr ""
"Por favor, active JavaScript para habilitar la funcionalidad de búsqueda."
msgstr "Por favor, active JavaScript para habilitar la funcionalidad de búsqueda."

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/breadcrumbs.html:6
msgid "Breadcrumb"
Expand Down Expand Up @@ -148,11 +146,10 @@ msgstr "Oscuro"
msgid "System Settings"
msgstr "Sistema"

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"Construido con el <a href=\"https://pydata-sphinx-"
Expand Down
6 changes: 2 additions & 4 deletions src/pydata_sphinx_theme/locale/fr/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
# Translators:
# Rambaud Pierrick <[email protected]>, 2024
# Denis Bitouzé <[email protected]>, 2024
#
msgid ""
msgstr ""

Expand Down Expand Up @@ -145,11 +144,10 @@ msgstr "Sombre"
msgid "System Settings"
msgstr "Paramètres système"

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"Construit avec le <a href=\"https://pydata-sphinx-"
Expand Down
5 changes: 2 additions & 3 deletions src/pydata_sphinx_theme/locale/it/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,10 @@ msgstr "Scuro"
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"Prodotto con il tema <a href=\"https://pydata-sphinx-"
Expand Down
5 changes: 2 additions & 3 deletions src/pydata_sphinx_theme/locale/ja/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,10 @@ msgstr "ダーク"
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"<a href=\"https://pydata-sphinx-"
Expand Down
5 changes: 2 additions & 3 deletions src/pydata_sphinx_theme/locale/ru/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,10 @@ msgstr "темная"
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"Собрано с использованием темы <a href=\\\"https://pydata-sphinx-"
Expand Down
10 changes: 5 additions & 5 deletions src/pydata_sphinx_theme/locale/sphinx.pot
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: pydata-sphinx-theme 0.16.0rc0\n"
"Project-Id-Version: pydata-sphinx-theme 0.16.1.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-09-30 17:53+0100\n"
"POT-Creation-Date: 2024-11-18 12:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
Expand Down Expand Up @@ -150,11 +151,10 @@ msgstr ""
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""

Expand Down
5 changes: 2 additions & 3 deletions src/pydata_sphinx_theme/locale/zh/LC_MESSAGES/sphinx.po
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,10 @@ msgstr "暗色"
msgid "System Settings"
msgstr ""

#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:3
#: src/pydata_sphinx_theme/theme/pydata_sphinx_theme/components/theme-version.html:4
#, python-format
msgid ""
"Built with the <a href=\"https://pydata-sphinx-"
"theme.readthedocs.io/en/stable/index.html\">PyData Sphinx Theme</a> "
"Built with the <a href=\"%(PST_url)s\">PyData Sphinx Theme</a> "
"%(theme_version)s."
msgstr ""
"使用 <a href=\"https://pydata-sphinx-"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<div
id="{{ page_navigation_heading_id }}"
class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> {{ _("On this page") }}
<i class="fa-solid fa-list"></i> {{ _('On this page') }}
</div>
<nav class="bd-toc-nav page-toc" aria-labelledby="{{ page_navigation_heading_id }}">
{{ page_toc }}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{# Displays the version of pydata-sphinx-theme used to build the documentation. #}
<p class="theme-version">
{% trans theme_version=theme_version|e %}Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> {{ theme_version }}.{% endtrans %}
<!-- # L10n: Setting the PST URL as an argument as this does not need to be localized -->
{% trans trimmed theme_version=theme_version|e, PST_url="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html" %}
Built with the <a href="{{ PST_url }}">PyData Sphinx Theme</a> {{ theme_version }}.
{% endtrans %}
</p>
5 changes: 3 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ env_list =
# helping contributors run common tasks without needing to call all the steps
# For example to run the tests: tox run -m tests
labels =
tests = compile-assets, i18n-compile, py312-tests
tests = compile-assets, i18n-compile, py312-tests
a11y = compile-assets, i18n-compile, py312-docs, a11y-tests
i18n = i18n-extract, i18n-compile
live-server = compile-assets, i18n-compile, docs-live
Expand Down Expand Up @@ -156,7 +156,8 @@ allowlist_externals = bash
commands =
# explicitly pass this as a bash command to set PST_VERSION
bash -c "PST_VERSION=$(pip show pydata-sphinx-theme | grep Version | awk -F': ' '{print $2}') && \
pybabel extract . -F babel.cfg -o src/pydata_sphinx_theme/locale/sphinx.pot --project=pydata-sphinx-theme --copyright-holder='PyData developers' --version=$PST_VERSION"
pybabel extract . -F babel.cfg -o src/pydata_sphinx_theme/locale/sphinx.pot --keywords='_ __ l_ lazy_gettext' \
trallard marked this conversation as resolved.
Show resolved Hide resolved
--project=pydata-sphinx-theme --copyright-holder='PyData developers' --version=$PST_VERSION"
pybabel update -i src/pydata_sphinx_theme/locale/sphinx.pot -d src/pydata_sphinx_theme/locale -D sphinx {posargs}

# add a new locale for translations based on the catalog template
Expand Down
34 changes: 32 additions & 2 deletions webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const dedent = require("dedent");
const { Compilation } = require("webpack");
const { exec } = require("child_process");

/*******************************************************************************
* Paths for various assets (sources and destinations)
*/

const scriptPath = resolve(__dirname, "src/pydata_sphinx_theme/assets/scripts");
const staticPath = resolve(__dirname, "src/pydata_sphinx_theme/theme/pydata_sphinx_theme/static");
const localePath = resolve(__dirname, "src/pydata_sphinx_theme/locale");
trallard marked this conversation as resolved.
Show resolved Hide resolved

/*******************************************************************************
* functions to load the assets in the html head
Expand Down Expand Up @@ -96,8 +98,8 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({
templateContent: macroTemplate,
});

module.exports = {
mode: "production",
// webpack main configuration
var config = {
devtool: "source-map",
entry: {
"pydata-sphinx-theme": resolve(scriptPath, "pydata-sphinx-theme.js"),
Expand Down Expand Up @@ -170,3 +172,31 @@ module.exports = {
topLevelAwait: true,
},
};

module.exports = (env, argv) => {
// Sphinx Theme Builder creates a completely isolated working directory
// when packaging the theme. That means that we cannot follow a workflow
// like this:
// 1. run command to compile the translations
// 2. run command to package the theme (`stb package`)
// We must instead compile the translations **as part of** the command
// that builds the theme:
// 1. command to package theme
// a. compile translations
// The theme builder calls `npm run-script build` (`webpack --mode=production` per our
// package.json) so we compile the translations here.
if (argv.mode === 'production') {
exec(`pybabel compile -d ${localePath} -D sphinx`, (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
if (stderr) {
console.error(`stderr: ${stderr}`);
trallard marked this conversation as resolved.
Show resolved Hide resolved
return;
}
console.log(`stdout: ${stdout}`);
});
}
return config;
};
Loading