Skip to main content

A small package to localise your python application

Project description

LocalLang

Installation

pip install local-lang

Usage

python -m locallang --help  # Show help
python -m locallang --default-lang en_us  # Reload localisation
python -m locallang --version  # Show version

Json file structure

placeholders is optional

no_f_string is optional

  • This parameter is used to disable the use of f-string in the localization if you use {} in your translation.

format is only for datetime and time type

{
  "key": "value {placeholder_name}",
  "@key": {
    "no_f_string": "bool",
    "placeholders": {
      "placeholder_name": {
        "type": "str|int|float|bool|datetime|time",
        "format": "format"
      }
    }
  }
}

Example

test.py

from locallang import LangInit, getLocalisation
import datetime

localisation = LangInit()

local = getLocalisation(local="en_us")

print(local.hey())
print(local.hello_world())
print(local.toDay(date=datetime.datetime.now()))
print(local.thisTime(time=datetime.datetime.now().time()))
print(local.testStr(strText="Hello world!"))
print(local.testInt(intNum=1))
print(local.testFloat(floatNum=1.5))
print(local.testBool(boolValue=True))
print(local.test(test=1.5))

local = getLocalisation(local="fr")

print(local.hey())
print(local.hello_world())
print(local.toDay(date=datetime.datetime.now()))
print(local.thisTime(time=datetime.datetime.now().time()))
print(local.testStr(strText="Bonjour tout le monde !"))
print(local.testInt(intNum=2))
print(local.testFloat(floatNum=2.5))
print(local.testBool(boolValue=False))
print(local.test(test="coucou"))

en_us.json

{
    "hey": "Hey!",
    "hello_world": "Hello world!",
    "toDay": "Date: {date}",
    "@toDay": {
        "placeholders": {
            "date": {
                "type": "datetime",
                "format": "%Y/%m/%d %H:%M"
            }
        }
    },
    "thisTime": "Time: {time}",
    "@thisTime": {
        "placeholders": {
            "time": {
                "type": "time",
                "format": "%H:%M"
            }
        }
    },
    "testStr": "Test: {strText}",
    "@testStr": {
        "placeholders": {
            "strText": {
                "type": "str"
            }
        }
    },
    "testInt": "Test: {intNum}",
    "@testInt": {
        "placeholders": {
            "intNum": {
                "type": "int"
            }
        }
    },
    "testFloat": "Test: {floatNum}",
    "@testFloat": {
        "placeholders": {
            "floatNum": {
                "type": "float"
            }
        }
    },
    "testBool": "Test: {boolValue}",
    "@testBool": {
        "placeholders": {
            "boolValue": {
                "type": "bool"
            }
        }
    },
    "test": "Test: {test}"
}

fr.json

{
    "hey": "Coucou !",
    "hello_world": "Bonjour tout le monde!",
    "toDay": "Date: {date}",
    "thisTime": "Time: {time}",
    "testStr": "Test: {strText}",
    "testInt": "Test: {intNum}",
    "testFloat": "Test: {floatNum}",
    "testBool": "Test: {boolValue}",
    "test": "Test: {test}"
}

result in consol

Hey!
Hello world!
Date: 2023/05/07 00:15
Time: 00:15
Test: Hello world!
Test: 1
Test: 1.5
Test: True
Test: 1.5
Coucou !
Bonjour tout le monde!
Date: 2023/05/07 00:15
Time: 00:15
Test: Bonjour tout le monde !
Test: 2
Test: 2.5
Test: False
Test: coucou

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

local_lang-0.0.15.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

local_lang-0.0.15-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file local_lang-0.0.15.tar.gz.

File metadata

  • Download URL: local_lang-0.0.15.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for local_lang-0.0.15.tar.gz
Algorithm Hash digest
SHA256 03bff6c306f818a16def4461c26bb95f6c6afb12d970e47aca9215c1b0411dc2
MD5 4bce965074c58ca33fc973b965dbd9c1
BLAKE2b-256 eee8e1402494ac65d32491a0c1f534f3f3de237085ac91e25cb16a4c472197dd

See more details on using hashes here.

File details

Details for the file local_lang-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: local_lang-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for local_lang-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 5617ae5d83248e456019764562b6f3d0666d985c3eedef8fe3046c85970d6d17
MD5 6e60c217ef59a7f458261753920589e6
BLAKE2b-256 1f0283740cd20c47832963a1c7cb6cfb639bdba0a36bf4ecfd670005478dd913

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