A Python internationalization (i18n) package
Project description
Pi18n
Pi18n is an internationalization library for Python
Installation
Install using pip
pip install pi18n
Getting started
Pi18n lets you internationalize your Python app in a simple way. It works like this:
-
Provide Pi18n with as many JSON files as languages your app is going to support.
-
Each file will be named with the locale of the language it represents.
-
The content that is going to be placed in the app will be in each of these files, translated into the language that
the file represents and associated with a code.
- The way a translation is associated with a code is by a JSON object: each key of the object is the code, and the value
is the translation associated to the code for every language.
-
Every JSON object of every file must have the same keys.
-
Translations can contain named parameters (placeholders) that will be replaced by a certain value on translation-time. Provide
as many as needed with this syntax:
{param-code}. -
-
Instantiate an object of
TranslationServiceclass. Its constructor must receive:-
The path with the translation files.
-
The default locale.
-
-
Call the
getmethod of theTranslationServiceinstance for getting a translation:-
Provide the translation code to the
getmethod as the first argument. -
Optionally, provide parameters to the translation either as a dict or as keyword arguments.
-
Usage
1. Place some translation files in your project
resources/es.json
{
"HELLO_WORLD": "Hola mundo!",
"WITH_PARAMS": "Los parámetros son: {fruit1}, {fruit2} and {fruit3}"
}
resources/en.json
{
"HELLO_WORLD": "Hello world!",
"WITH_PARAMS": "Params are: {fruit1}, {fruit2} and {fruit3}"
}
2. Create an instance of TranslationService
main.py
from pi18n import TranslationService
translation_service = TranslationService('resources', 'es')
3. Use the TranslationService
Get a translation:
translation = translation_service.get("HELLO_WORLD")
print(f"Message in Spanish: {translation}")
>>> "Message in Spanish: Hola mundo!"
Change locale at runtime:
translation_service.change_locale("en")
translation = translation_service.get("HELLO_WORLD")
print(f"Message in English: {translation}")
>>> "Message in English: Hello world!"
Get a translation that receives some params as a dict:
params = {"fruit1": "apple", "fruit2": "orange", "fruit3": "banana"}
translation = translation_service.get("WITH_PARAMS", params)
print(f"Message with params: {translation}")
>>> "Message with params: Params are: apple, orange and banana"
Get a translation that receives some params as kerword arguments:
translation = translation_service.get("WITH_PARAMS", fruit1="apple", fruit2="orange", fruit3="banana")
print(f"Message with params: {translation}")
>>> "Message with params: Params are: apple, orange and banana"
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
File details
Details for the file pi18n-0.1.3.tar.gz.
File metadata
- Download URL: pi18n-0.1.3.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b52e1bbc3b2fbf2936348437885a75d0d7e7a58053dce8508affb376c14282ca
|
|
| MD5 |
9f2be3109047d957a7f0d408e1269617
|
|
| BLAKE2b-256 |
6c25a77808afbd263016e7ed1c83953d2c0087a5aeb86a243102a2837855f4e2
|