django-flatpages-i18n
django-flatpages-i18n copied to clipboard
Translatable version of django.contrib.flatpages
django-flatpages-i18n
Translatable version of django.contrib.flatpages with menu support.
Requirements
- Django
- django_modeltrans
- django_mptt
- django-pragmatic
Tested with Django 1.8.
Installation
-
Install python library using pip:
pip install django-flatpages-i18n
-
Add
mptt
,modeltrans
andflatpages_i18n
toINSTALLED_APPS
in your Django settings file -
Migrate your database
-
Specify desired languages in your Django settings file::
from django.utils.translation import gettext
LANGUAGE_CODE = 'en' LANGUAGES = ( ('en', gettext('English')), ('de', gettext('German')), )
-
Addd
'flatpages_i18n.urls'
to your urls.py::if 'flatpages_i18n' in settings.INSTALLED_APPS: urlpatterns += i18n_patterns( path(pgettext_lazy('url', 'pages/'), include('flatpages_i18n.urls')), )
Usage
To get all flatpages: '''''''''''''''''''''
In your HTML template::
{% load i18n flatpages_i18n %}
{% get_flatpages_i18n as flatpages_i18n %}
<ul>
{% for flatpage in flatpages_i18n %}
<li><a href="{{ flatpage.get_absolute_url }}">{{ flatpage }}</a></li>
{% endfor %}
</ul>
To get flatpage by its PK::
{% get_flatpage_i18n 123 as my_flatpage %}
{{ my_flatpage.content_i18n }}
or by its machine_name::
{% get_flatpage_i18n 'my-flatpage' as my_flatpage %}
Menu system: ''''''''''''
To print all menu items::
<div id="navigation">
{% menu_i18n %}
</div>
to get only children of menu item identified by its PK::
<div id="navigation">
{% menu_i18n 2 %}
</div>
or by its machine_name::
<div id="navigation">
{% menu_i18n 'footer-menu' %}
</div>
You can also assign menu items into variable::
{% get_menu_i18n 'my-menu' as my_menu %}
{% for item in my_menu %}
<a href="{{ item.get_absolute_url }}" target="{{ item.target }}">{{ item }}</a>
{% endfor %}
Authors
Library is by Erik Telepovsky
from Pragmatic Mates
. See our other libraries
.
.. _Pragmatic Mates: http://www.pragmaticmates.com/ .. _our other libraries: https://github.com/PragmaticMates