sphinx-togglebutton icon indicating copy to clipboard operation
sphinx-togglebutton copied to clipboard

Add i18n support

Open douden opened this issue 6 months ago • 0 comments

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 avatar Jul 30 '25 14:07 douden