Skip to content

Eng-ali28/mongoose-i18n-localize

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mongoose-i18n

mongoose-i18n-localize is a mongoose plugin to support i18n and localization in your mongoose schemas.

It seems like mongoose-i18n is not longer supported and I didn't get it to work on my machine, so I decided to write my own version.

Usage

npm install mongoose-i18n

Create your schema:

var mongoose = require('mongoose');
var mongooseI18n = require('mongoose-i18n-localize');

var schema = new mongoose.Schema({
	name: {
		type: String,
		i18n: true
	}
});

schema.plugin(mongooseI18n, {
	locales: ['en', 'de']
});

var Model = mongoose.model('Name', schema);

This will create a structure like:

{
	name: {
		en: String,
		de: String
	}
}

All validators of name get also assigned to name.en and name.de.

mongoose-i18n-localize adds the methods toObjectLocalized(resource, locale) and toJSONLocalized(resource, locale) to the i18n schema methods. To set the locale of a resource to en, just do:

Model.find(function(err, resources) {
	var localizedResources = resources.toJSONLocalized('en');
});

//or

Model.find(function(err, resources) {
	var localizedResources = Model.schema.methods.toJSONLocalized(resources, 'en');
});

localizedResources has now the following structure:

[
	{
		name: {
			en: 'hello',
			de: 'hallo',
			localized: 'hello'
		}
	}
]

Use toJSONLocalized according to toJSON.

If you only want to show only one locale message use the methods toJSONLocalizedOnly(resource, locale, localeDefault).

Tests

To run the tests you need a local MongoDB instance available. Run with:

npm test

Issues

Please use the GitHub issue tracker to raise any problems or feature requests.

If you would like to submit a pull request with any changes you make, please feel free!

About

Mongoose plugin to support i18n and localization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%