A django module to derive a language code based on visitor IP
Project description
Ip2Language
===========
This package provides an easy way to use maxmind's API to set an appropriate language code. This is useful, if we want to avoid using a language selector and cookies.
------------
Installation
------------
Firstly, install the package. Usage of pip is recommended:
pip install ip2language
Next, add the package to the INSTALLED_APPS setting:
INSTALLED_APPS = (
'ip2language',
...
)
Then we can add the middleware:
MIDDLEWARE_CLASSES = (
'ip2language.middleware.LanguagePreferenceMiddleware',
...
)
And it's important to add a setting to specify what language codes should be mapped to what language codes. This allows us to arbitrarily assign different fallbacks for different languages:
GEOIP_LANGUAGES = {
'NL': 'nl',
'BE': 'fr',
}
The keys in this dictionary should be a subset of the country codes supported by maxmind. For reference, this list can be viewed here:
http://dev.maxmind.com/geoip/codes/iso3166
The corresponding values can be any language code that's valid in the django project. The middleware will end up using this code in the redirect url.
Next, we will set a universal fallback:
GEOIP_FALLBACK_LANGUAGE = 'en'
This means that any visitor who is not in one of the specified countries, will view the content associated with the 'en' language code.
* geoip dat file loc
Lastly, we need to tell the module where it can find a valid geoip database:
GEOIP_DATABASE = '/usr/share/GeoIP.dat'
that's all folks!
===========
This package provides an easy way to use maxmind's API to set an appropriate language code. This is useful, if we want to avoid using a language selector and cookies.
------------
Installation
------------
Firstly, install the package. Usage of pip is recommended:
pip install ip2language
Next, add the package to the INSTALLED_APPS setting:
INSTALLED_APPS = (
'ip2language',
...
)
Then we can add the middleware:
MIDDLEWARE_CLASSES = (
'ip2language.middleware.LanguagePreferenceMiddleware',
...
)
And it's important to add a setting to specify what language codes should be mapped to what language codes. This allows us to arbitrarily assign different fallbacks for different languages:
GEOIP_LANGUAGES = {
'NL': 'nl',
'BE': 'fr',
}
The keys in this dictionary should be a subset of the country codes supported by maxmind. For reference, this list can be viewed here:
http://dev.maxmind.com/geoip/codes/iso3166
The corresponding values can be any language code that's valid in the django project. The middleware will end up using this code in the redirect url.
Next, we will set a universal fallback:
GEOIP_FALLBACK_LANGUAGE = 'en'
This means that any visitor who is not in one of the specified countries, will view the content associated with the 'en' language code.
* geoip dat file loc
Lastly, we need to tell the module where it can find a valid geoip database:
GEOIP_DATABASE = '/usr/share/GeoIP.dat'
that's all folks!
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
File details
Details for the file django-ip2language-0.1.tar.gz
.
File metadata
- Download URL: django-ip2language-0.1.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dda7efd28963e4034631da5f2929e21f20d59f8343fdea2fc4dcc76061ae8569 |
|
MD5 | f2087ea9633717b4e9d51d9b72e25bc1 |
|
BLAKE2b-256 | a45ca673f6586311212fb65920609595d673780dfa0e72cf55dc1a235366dbaa |