locize
Version:
This package adds the incontext editor to your i18next setup.
37 lines (34 loc) • 1.31 kB
JavaScript
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 };