Translatable-Enums is a i18n tool which uses built-in Enums as an convenient way to store translation keys.
Project description
Translatable-Enums
Translatable-Enums is an i18n tool which uses built-in Enums as a convenient way to store translation keys.
Key-Features
- No dependencies except the Python's standard library. Based on built-in enums & gettext
- Powerful utility for extracting translation-keys
- Easy-to-Use
Installation
You can use PIP:
pip install translatable-enums
Or Poetry:
poetry add translatable-enums
Getting-Started
from i18n import (
TranslatableEnum,
set_domain,
set_language,
language
)
class Messages(TranslatableEnum):
HELLO = 'Hello,'
WORLD = 'World!'
set_domain('app', './resources/languages')
set_language('en_US')
print(Messages.HELLO, Messages.WORLD) # Hello, World!
set_language('uk_UA')
print(Messages.HELLO, Messages.WORLD) # Привіт, Світ!
set_language('fr_FR')
print(Messages.HELLO, Messages.WORLD) # Bonjour le monde!
print(Messages.HELLO.language('uk'), Messages.WORLD.language('en')) # Привіт, World!
with language('uk_UA'):
print(Messages.HELLO, Messages.WORLD) # Привіт, Світ!
print(Messages.HELLO, Messages.WORLD) # Bonjour le monde!
Extraction-Tools
To extract the translation-keys from application:
python -m i18n main.py application.pot
You will obtain a .pot file like this:
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: \n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
# Messages.WORLD
msgid "World!"
msgstr ""
# Messages.HELLO
msgid "Hello,"
msgstr ""
Key-Format
python -m i18n main.py application.pot --key-format "{enum}.{name}.{value}"
Default: "{value}"
- enum - enum name
- name - attribute name
- value - attribute value
Examples:
{enum}.{name}.{value}
# Messages.WORLD
msgid "Messages.WORLD.World!"
msgstr ""
{enum}.{name}
# Messages.WORLD
msgid "Messages.WORLD"
msgstr ""
{value}
# Messages.WORLD
msgid "World!"
msgstr ""
Examples
See /examples for more examples.
Status
0.0.6
- RELEASED
Licence
Translatable-Enums is released under the MIT License. See the bundled LICENSE file for details.
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
Built Distribution
File details
Details for the file translatable_enums-0.0.7.tar.gz
.
File metadata
- Download URL: translatable_enums-0.0.7.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.1 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89dc6de14c54016a63c0c88db199801c9a8e3511c80c877ea099551b78ae71c0 |
|
MD5 | a5f92c88c895f0b7b025060e55d924d1 |
|
BLAKE2b-256 | 279935fbbfb00099ccf5cc8e79d5bff846dcef0263637dcf423053e06e248821 |
File details
Details for the file translatable_enums-0.0.7-py3-none-any.whl
.
File metadata
- Download URL: translatable_enums-0.0.7-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.1 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb158a99eebef01c2fc6210ec7a7001e3109edcb49881a8c0b9c690cf301d00e |
|
MD5 | 12e549e8142157be67729a517b1119cb |
|
BLAKE2b-256 | f597806aa57015dea725544984810c300996464ff063c34a0ab71871da07439f |