keystone-translated-fields

0.1.0 • Public • Published

keystone-translated-fields

A small helper library for multilanguage Keystone sites.

Installation

$ yarn add keystone-translated-fields

Example usage

Models

var keystone = require('keystone');
const { createField, combineFields } = require('keystone-translated-fields');
 
const locales = require('../constants').locales;
const Types = keystone.Field.Types;
 
const Speaker = new keystone.List('Speaker', {
  map: {
    name: 'title',
  },
  singular: 'Speaker',
  plural: 'Speakers',
  autokey: {
    path: 'slug',
    from: 'title',
    unique: true,
  },
});
 
Speaker.add(combineFields([
  { title: { type: String, required: true } },
  { name: { type: String } },
  { desc: { type: Types.Html, wysiwyg: true, height: 300 } },
  { image: { type: Types.CloudinaryImage } },
  createField('about', { type: String }, locales),
]));
 
Speaker.register();

Middleware

const { getField } = require('keystone-translated-fields');
 
exports.initLocals = function (req, res, next) {
  // ...
  res.locals.getField = getField;
  // ...
  next();
}
 

Templates

h3 #{getField(speaker, 'title', locale)}
if speaker.desc
  != speaker.desc
p #{getField(speaker, 'about', locale)}

Package Sidebar

Install

npm i keystone-translated-fields

Weekly Downloads

1

Version

0.1.0

License

MIT

Last publish

Collaborators

  • vaaralav