Skip to main content

A package for easy creating and using translated messages withgettext in python projects

Project description

S-Translation

A package for easy creating and using translated messages with gettext in python projects

Pypi Codecov Coverage downloads

Requirements

  • gettext installed in your system (gettext)
  • python: tested for 3.10, 3.11
  • python package python-dotenv (pip install python-dotenv)

Getting started

With .env file

  1. First, create a new .env file in your project, eg:

    GETTEXT_DOMAIN=myapp
    LOCALE_DIR=locales  # => directory inside your project base dir to store the gettext translations
    GETTEXT_LANGUAGES='pl,en'
    GETTEXT_LANGUAGE=pl
    
  2. Load environment variables from .env file to use above environment variables:

    from dotenv import load_dotenv
    
    load_dotenv()
    
  3. In your code add something with translation e.g.:

    from s_translation import gettext as _
    
    print(_("Hello, world"))
    
  4. Create translations files .po:

    from s_translation import MessageCreator
    
    creator = MessageCreator()
    creator.create_message_files()
    
  5. Next, put your translations to the created files in the previous step ./locales/{language}/LC_MESSAGES/myapp.po e.g. ./locales/pl/LC_MESSAGES/myapp.po.

  6. Finally, now generate gettext message object files mo:

    from s_translation import MessageCreator
    
    creator = MessageCreator()
    creator.generate_message_objects()
    

Without .env file

  1. In your code add something with translation e.g.:

    from s_translation import Translation
    
    _ = Translation(domain='myapp', language_code='pl', locale_dir='locales').gettext
    
    print(_("Hello, world"))
    
  2. Create translations files:

    from s_translation import MessageCreator
    
    creator = MessageCreator(domain='myapp', languages=['en', 'pl'], locale_dir='locales')
    creator.create_message_files()
    
  3. Next, put your translations to the created files in the previous step ./locales/{language}/LC_MESSAGES/myapp.po e.g. ./locales/pl/LC_MESSAGES/myapp.po.

  4. So, now generate gettext message object files mo:

    from s_translation import MessageCreator
    
    creator = MessageCreator(domain='myapp', languages=['en', 'pl'], locale_dir='locales')
    creator.generate_message_objects()
    

Now, your gettext translation is ready to use.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s_translation-1.0.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

s_translation-1.0.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file s_translation-1.0.0.tar.gz.

File metadata

  • Download URL: s_translation-1.0.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for s_translation-1.0.0.tar.gz
Algorithm Hash digest
SHA256 89c2ebaffca507212ac8bab65096007e2c05f879553ea324f55dd321513e3cca
MD5 f29265e807fbcdc810af9661affd8704
BLAKE2b-256 b8f0317cf05ff2b0b6f478d2fa96dd8874c752cf765daa7ec1f10d67124b62d2

See more details on using hashes here.

File details

Details for the file s_translation-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for s_translation-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f44fcfafea21fe2d9347414ac3c84f0a4fe9a3d5d4f2f61b2bce23beb37ddf11
MD5 7c6ed7384d40b6cc25952c4a161e9e0f
BLAKE2b-256 a890fc25c2059227d4f1072b185389a5b6226259cb3f174edf4ef806f9a6648e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page