Skip to main content

A package to implementing i18n in django

Project description

i18n engine for django-framework

internationalization and localization in django

This Python package provides functionality to generate translation files for Django projects based on JSON file data.

Installation

  • To install the package, use the following command:
pip install mt_django_i18n

Setup

Before using library, you need setup some things in your django project, please follow this steps

  1. Setup all required variables in your settings.py
from django.utils.translation import gettext_lazy as _
# Mention the lanuage with respective language code which you will be using in your project
LANGUAGES = [
    ('en', _('English')),
    ('fr', _('French')),
   ('es', _('Spanish')),
   ('de',_('German')),
   ('en-IN',_('English (India)'))
    # Add more languages as needed

]

LANGUAGE_CODE = 'en-in' # default =  'en'

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'locale'),  # Optional, default path './locales' folder
]

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N=True

LANGUAGES_BIDI = [
    'he', 'ar',  # Add right-to-left languages if required
]

# Below mention localization of number system according to current language code of project

THOUSAND_SEPARATOR=','
DECIMAL_SEPARATOR='.'
USE_THOUSAND_SEPARATOR=True
NUMBER_GROUPING=(3,2,0)
  1. Create a JSON file with translation data in the following format:
{
  "fr": {
    "Hello": "Bonjour",
    "Goodbye": "Au revoir"
  },
  "de": {
    "Hello": "Hallo",
    "Goodbye": "Auf Wiedersehen"
  },
  "es": {
    "Hello": "Hola",
    "Goodbye": "Adios"
  }
}
  1. Import and use the create_files() function from the translation_file_generator module:
    from mt_django_i18n.json_to_po import create_translator_files

    create_files(json_file_path,project_name,target_lang)
  1. json_file_path = This parameter represent file path for translation
  2. project_name = Name of project
  3. target_lang = Lagunages which language file should be converted in binary format file i.e .mo files

Example

views.py

from mt_i18n.json_to_po import create_files
import os
from django.utils.translation import gettext as _
# Create your views here.


def blog(request):
    'hello':_('Hello'), # this mark to value stored in _('') are to translated 
    if not (os.path.exists("locale") and os.path.isdir("locale")):
        
        os.mkdir('locale')
        create_files("translator.json","blog",['fr', 'de', 'es'] )
    

Templates - HTML pages

  • The static text to be translated should be marked throught {% trans Hello world! %} or via variable format as mention below
    <p>{{example}}</p>
    <p>{% trans %}</p>

#currency_format

  • This function help to convert the number into currency format by passing number and language code as shown in below syntax
 from mt_django_i18n.json_to_po import currency_format
 my_currency= currency_format(currency,language='en-in') 
  • Where currency parameter is for passing number/currency and language parameter for language code.

Example

 from mt_django_i18n.json_to_po import currency_format
 my_currency = currency_format(currency=1234567.89,language=request.LANGUAGE_CODE) 

Note Use translation package to current activate language of project.

from django.utils import translation
translation.activate(language)

#number_format

  • This function help to convert the number into number format by passing number and language code as shown in below syntax
 from mt_django_i18n.json_to_po import number_format
 my_number= number_format(number,lang='en-in')
  • Where number parameter is for pass number and lang parameter is for language code.

Example

 from mt_django_i18n.json_to_po import number_format 
  my_number=number_format(Decimal(1000000.50) ,lang=request.LANGUAGE_CODE)
# Note: activate the language code of project every time there is
change in language so that translation perform better. 

from django.utils import translation.
translation.activate(language)

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

MT_django_I18n-0.0.2.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

MT_django_I18n-0.0.2-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file MT_django_I18n-0.0.2.tar.gz.

File metadata

  • Download URL: MT_django_I18n-0.0.2.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for MT_django_I18n-0.0.2.tar.gz
Algorithm Hash digest
SHA256 654f13540a3c07391b9e75042e821c96b9445d550b7fddde0fa4728f7795c2a6
MD5 3d93415c9361fa03edd2083ee32fc89d
BLAKE2b-256 a6f5c9adeb44ad4b9bc4d97ee3d51ad00a195689657f0ac3342f8bdcf4bf6f13

See more details on using hashes here.

File details

Details for the file MT_django_I18n-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for MT_django_I18n-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9a039916fc3f1fa1c34974f55265b42d68c1f94c168379f97094350482e52528
MD5 74dcb4052598a6d90ac26e1aa7fefd7c
BLAKE2b-256 941f803a6c43a7d91d5466505f85041b6e64df240643554a5c3b312c4448eb81

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