tkinter-msgcat

Create multilingual interfaces for your tkinter applications


Keywords
i18n, tkinter, msgcat, gettext
License
BSD-3-Clause
Install
pip install tkinter-msgcat==0.1.0

Documentation

ci Tests Build Docs
pypi Version License Python Versions
qa security: bandit mypy: checked code style: black

tkinter-msgcat

Create multilingual interfaces for your tkinter applications.

tkinter-msgcat leverages Tk's msgcat to provide a per-instance message catalog which holds all the translations, while allowing them to be kept in separate files away from code.

Installation

tkinter-msgcat requires Python 3.7+

pip install tkinter-msgcat

Getting Started

  1. For storing the translation files I recommend this folder hierarchy:

      project (or src/project)
      ├── __init__.py
      └── msgs
          ├── __init__.py
          ├── hi.msg
          └── mr.msg
    

    This layout is recommended by Tcl.

  2. Add some translations in the .msg files, in this case hi.msg:

    ::msgcat::mcset hi "Hello" "नमस्ते"
  3. Create a Tkinter window or instance, technically.

  4. Let's put tkinter-msgcat into action!

    from pathlib import Path
    from tkmsgcat import *
    
    msgsdir = Path(__file__).parent / "msgs"
    load(msgsdir)
    locale("hi")
    get("Hello")  # "नमस्ते" 🥳

🤝 Contributing

All contributions are welcome and acknowledged. Please read the contributor's guide.

© License

The code in this project is released under the 3-Clause BSD License.