@winstrike/next-i18next-koa
Version:
The easiest way to translate your NextJs apps. With Koa support only. Forked from 'next-i18next'.
58 lines (45 loc) • 1.79 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _detectNode = _interopRequireDefault(require("detect-node"));
var _i18next = _interopRequireDefault(require("i18next"));
var _i18nextXhrBackend = _interopRequireDefault(require("i18next-xhr-backend"));
var _i18nextBrowserLanguagedetector = _interopRequireDefault(require("i18next-browser-languagedetector"));
var i18n = _i18next.default.default ? _i18next.default.default : _i18next.default;
i18n.nsFromReactTree = [];
var _default = function _default(config) {
if (!i18n.isInitialized) {
if (_detectNode.default) {
var i18nextNodeBackend = eval("require('i18next-node-fs-backend')");
var i18nextMiddleware = eval("require('koa-i18next-middleware-fixed')");
i18n.use(i18nextNodeBackend);
if (config.serverLanguageDetection) {
var serverDetectors = new i18nextMiddleware.LanguageDetector();
config.customDetectors.forEach(function (detector) {
return serverDetectors.addDetector(detector);
});
i18n.use(serverDetectors);
}
} else {
i18n.use(_i18nextXhrBackend.default);
if (config.browserLanguageDetection) {
var browserDetectors = new _i18nextBrowserLanguagedetector.default();
config.customDetectors.forEach(function (detector) {
return browserDetectors.addDetector(detector);
});
i18n.use(browserDetectors);
}
}
config.use.forEach(function (x) {
return i18n.use(x);
});
i18n.init(config);
}
return i18n;
};
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default;