UNPKG

i18next-pseudoloc

Version:
75 lines (74 loc) 3 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var CONST = require('./constants'); var PseudoLoc = /*#__PURE__*/function () { function PseudoLoc(_ref) { var _ref$lengther = _ref.lengther, lengther = _ref$lengther === void 0 ? 2 : _ref$lengther, _ref$enabled = _ref.enabled, enabled = _ref$enabled === void 0 ? true : _ref$enabled, _ref$enableCJK = _ref.enableCJK, enableCJK = _ref$enableCJK === void 0 ? true : _ref$enableCJK, _ref$sourceLocale = _ref.sourceLocale, sourceLocale = _ref$sourceLocale === void 0 ? 'en' : _ref$sourceLocale, _ref$repeatedLetters = _ref.repeatedLetters, repeatedLetters = _ref$repeatedLetters === void 0 ? CONST.vowelChars : _ref$repeatedLetters, _ref$pseudoCharObject = _ref.pseudoCharObject, pseudoCharObject = _ref$pseudoCharObject === void 0 ? CONST.pseudoChars : _ref$pseudoCharObject; this.name = 'pseudoloc'; this.type = 'postProcessor'; this.options = { enabled: enabled, lengther: lengther, enableCJK: enableCJK, sourceLocale: sourceLocale, repeatedLetters: repeatedLetters, characters: pseudoCharObject }; } var _proto = PseudoLoc.prototype; _proto.setOptions = function setOptions(options) { this.options = _extends({}, this.options, options); }; _proto.process = function process(value, key, options, translator) { var _this = this; if (translator.language && this.options.sourceLocale !== translator.language || !this.options.enabled) { return value; } var bracketCount = 0; var processedValue = value.split('').map(function (letter) { if (letter === '}') { bracketCount = 0; return letter; } if (letter === '{') { bracketCount++; return letter; } if (bracketCount === 2) return letter; if (_this.options.repeatedLetters.indexOf(letter) !== -1) { return _this.options.characters[letter].repeat(_this.options.lengther); } else { if (letter === '.') { return '。'; // japanese period(full stop) } else if (letter === '?') { return '¿'; // spanish inverted mark of interrogation } else if (letter === '“') { return '„'; // german opening quotation } else { return _this.options.characters[letter] || letter; } } }).join(''); return CONST.stringMarker({ string: processedValue, enableCJK: this.options.enableCJK }); }; return PseudoLoc; }(); var _default = PseudoLoc; exports["default"] = _default; module.exports = exports.default;