UNPKG

locize

Version:

This package adds the incontext editor to your i18next setup.

37 lines (34 loc) 1.31 kB
import { PostProcessor } from 'i18next-subliminal'; export { unwrap } from 'i18next-subliminal'; import { start } from './process.js'; import { getQsParameterByName, isInIframe } from './utils.js'; import { getImplementation } from './implementations/i18nextImplementation.js'; function configurePostProcessor(i18next, options) { i18next.use(PostProcessor); if (typeof options.postProcess === 'string') { options.postProcess = [options.postProcess, 'subliminal']; } else if (Array.isArray(options.postProcess)) { options.postProcess.push('subliminal'); } else { options.postProcess = 'subliminal'; } options.postProcessPassResolved = true; } var i18next; var locizeEditorPlugin = function locizeEditorPlugin() { var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; opt.qsProp = opt.qsProp || 'incontext'; return { type: '3rdParty', init: function init(i18n) { var options = i18n.options; i18next = i18n; var impl = getImplementation(i18n); var showInContext = opt.show || getQsParameterByName(opt.qsProp) === 'true'; if (isInIframe || showInContext) configurePostProcessor(i18next, options); start(impl, opt); } }; }; var locizePlugin = locizeEditorPlugin(); export { locizeEditorPlugin, locizePlugin };