Skip to main content

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 TranslationService class. Its constructor must receive:

    1. The path with the translation files.

    2. The default locale.

  • Call the get method of the TranslationService instance for getting a translation:

    1. Provide the translation code to the get method as the first argument.

    2. 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

pi18n-0.1.1.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pi18n-0.1.1-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file pi18n-0.1.1.tar.gz.

File metadata

  • Download URL: pi18n-0.1.1.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for pi18n-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ade3ab95115a0c83da8c08d5a78638bd8c71750ace57bb83b278f3f7a977aa05
MD5 8db78536003687fdac8e26862ce8e2fe
BLAKE2b-256 422049a2b808542e3681c450fbf29e4ee14f20cf35ba4ad30bf5771dc85bcde0

See more details on using hashes here.

File details

Details for the file pi18n-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pi18n-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for pi18n-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5e30c0deacd715ece5511068be46a6c0374ffdd63acc6a8a2766a53a6aaa360
MD5 6ff04a45ed6310b5db83eb1759355ab4
BLAKE2b-256 184da58ed0c4f77955581157a9fecd59b50ed0767f4d21ad2576a8a690352df8

See more details on using hashes here.

Supported by

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