Skip to content

Conversation

@douden
Copy link

@douden douden commented Jul 30, 2025

This PR references and solves issue #22.
Closes #22

This pull request introduces internationalization (i18n) support for the sphinx_togglebutton package, enabling translations for toggle button text, and adds functionality to dynamically synchronize toggle states in the DOM. The most important changes include adding translation infrastructure, updating configuration to support translations, and enhancing JavaScript functionality for better toggle state management.

Internationalization (i18n) Support:

  • Added translation files in .po and .mo formats for multiple languages, along with JSON source files (sphinx_togglebutton/translations/jsons/*.json) and a script (_convert.py) to convert JSON to .po and .mo files. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
  • Updated setup.py to include translation-related files in the package distribution.
  • Modified sphinx_togglebutton/__init__.py to integrate Sphinx's translation system and register the message catalog. [1] [2]
  • Updated configuration variables for toggle button hints to use translated strings.

JavaScript Enhancements:

  • Added new functions (syncToggleHint, syncAllToggleHints) to dynamically update toggle button hints based on the current state.
  • Introduced a MutationObserver to monitor changes in toggle states and synchronize button hints accordingly.

Packaging and Manifest Updates:

  • Updated MANIFEST.in to include translation-related files and directories in the source distribution.

douden added 3 commits July 30, 2025 15:47
Introduces internationalization for Sphinx-ToggleButton by adding translation infrastructure, updating config values to use translated strings, and including translation files (.json, .po, .mo) for multiple languages. Updates MANIFEST.in to package translation assets and adjusts .gitignore to allow .mo files. Also adds a conversion script for generating locale files from JSON.
Added translation-related files and directories to the package_data section in setup.py to ensure they are included in the distribution. This supports proper packaging and deployment of translation resources.
Adds functions to synchronize toggle button hints and aria-expanded attributes with the current state. Introduces a MutationObserver to update button hints when toggle item classes change, ensuring external extensions or DOM changes are reflected in the UI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Is togglebutton_hint translatable?

1 participant