Socket
Book a DemoInstallSign in
Socket

geolang-express

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

geolang-express

A simple geolocation middleware for Express.js to set site lang by client IP.

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

geolang-express

Build Status npm version npm dependency status

A simple geolocation middleware for Express.js. This module expose countryLang and object with more data countryData on app.locals making data visibles in views too. Also, set the session cookieLangName with the language of visitors country, useful for i18n modules.

NOTE: When using this module, we recommend also using the i18n-express module, which use the cookieLangName session to set i18n translations according that value.

Requirements

  • Node >= 0.12
  • Express.js session enabled

Instalation

$ npm install geolang-express

Usage

var geolang=require("geolang-express");

app.use( geolang(options) );

Options

  • cookieLangName : (default: ulang) If you provide a cookie name, try to get user lang from this session/cookie.
  • defaultCountry : (default: US) Default country, for example if the IP is 127.0.0.1
  • siteLangs : (default: ['en']) Array of supported langs. (posbile values for clang and json files. see i18n-express)

Example

In your Express app.js:

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var i18n=require("i18n-express");
var geolang=require("geolang-express");

var indexRoutes = require('./routes/index');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
  secret: 'secret',
  saveUninitialized: true,
  resave: true
}));

app.use(geolang({
  siteLangs: ["en","es"],
  cookieLangName: 'ulang'
}));


/*
//Read documentation if you need to use i18n-express package
app.use(i18n({
  translationsPath: path.join(__dirname, 'i18n'),
  siteLangs: ["en","es"],
  cookieLangName: 'ulang'
}));
*/


app.use('/', indexRoutes);

module.exports = app;


Now in your ejs view you have countryLang and object with more data countryData:

<div>
	
	<p>Language by Country IP set to: <%=countryLang%></p>

</div>

Or in your handlebars view:

<div>
	
	<p>Language by Country IP set to: <%=countryLang%></p>

</div>

License

MIT

Author

Keywords

geoip

FAQs

Package last updated on 11 Nov 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.