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
- 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)
- 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"
}
}
- 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)
- json_file_path = This parameter represent file path for translation
- project_name = Name of project
- 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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 654f13540a3c07391b9e75042e821c96b9445d550b7fddde0fa4728f7795c2a6 |
|
MD5 | 3d93415c9361fa03edd2083ee32fc89d |
|
BLAKE2b-256 | a6f5c9adeb44ad4b9bc4d97ee3d51ad00a195689657f0ac3342f8bdcf4bf6f13 |
File details
Details for the file MT_django_I18n-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: MT_django_I18n-0.0.2-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a039916fc3f1fa1c34974f55265b42d68c1f94c168379f97094350482e52528 |
|
MD5 | 74dcb4052598a6d90ac26e1aa7fefd7c |
|
BLAKE2b-256 | 941f803a6c43a7d91d5466505f85041b6e64df240643554a5c3b312c4448eb81 |