UNPKG

tc-ui-toolkit

Version:

React components used to develop tools for the desktop app translationCore

124 lines (102 loc) 9.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.delay = delay; exports.getTranslation = getTranslation; exports.getTitleWithId = getTitleWithId; exports.getReferenceStr = getReferenceStr; exports.getTitleStr = getTitleStr; exports.isLTR = isLTR; var defaultDirection = 'ltr'; /** * Delays code execution for a number of ms given. * @param {ms} ms */ function delay(ms) { return new Promise(function (resolve) { return setTimeout(resolve, ms); }); } /** * lookup translation for text or key. First looks for a static translation and then tries a dynamic translation * @param {Function} translate - translation function * @param {String} text - string or key to translate * @param {String} deflt - default string to use if no translation is found * @param {Object} params - Params to use for printing * @return {String} translated text */ function getTranslation(translate, text, deflt) { var key = text.toLowerCase(); key = key.replace(' ', '_'); var translation; translation = translate(key); if (!translation || translation.indexOf('Missing translation key') >= 0) { // if not translated, return original text translation = deflt; } return translation; } /** * get title with id arranged for language direction * @param {string} languageName * @param {string} identifier * @param {boolean|string} direction * @param {string} preRelease - pre-release string to add * @return {string} */ function getTitleWithId(languageName, identifier) { var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDirection; var preRelease = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; var title; if (isLTR(direction)) { title = "".concat(languageName, " (").concat(identifier.toUpperCase(), ")"); } else { title = "(".concat(identifier.toUpperCase(), ") ").concat(languageName); } if (preRelease) { title = "[".concat(title, "] - ").concat(preRelease); } return title; } /** * get reference arranged for language direction * @param {string} chapter * @param {string|number} verse * @param {boolean|string} direction * @return {string} */ function getReferenceStr(chapter, verse) { var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDirection; if (isLTR(direction)) { return "".concat(chapter, ":").concat(verse); } return "".concat(verse, ":").concat(chapter); } /** * get title arranged for language direction * @param {string} first - initial text * @param {string} second - following text * @param {boolean|string} direction * @return {string} */ function getTitleStr(first, second) { var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDirection; if (isLTR(direction)) { return "".concat(first, " ").concat(second); } return "".concat(second, " ").concat(first); } /** * determine if language direction is ltr. If direction parameter is not * string then treat as boolean (if true then LTR) * @param {boolean|string} direction * @return {boolean} true if LTR */ function isLTR(direction) { if (typeof direction === 'string') { return direction !== 'rtl'; } return direction; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TY3JpcHR1cmVQYW5lL2hlbHBlcnMvdXRpbHMuanMiXSwibmFtZXMiOlsiZGVmYXVsdERpcmVjdGlvbiIsImRlbGF5IiwibXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJnZXRUcmFuc2xhdGlvbiIsInRyYW5zbGF0ZSIsInRleHQiLCJkZWZsdCIsImtleSIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsInRyYW5zbGF0aW9uIiwiaW5kZXhPZiIsImdldFRpdGxlV2l0aElkIiwibGFuZ3VhZ2VOYW1lIiwiaWRlbnRpZmllciIsImRpcmVjdGlvbiIsInByZVJlbGVhc2UiLCJ0aXRsZSIsImlzTFRSIiwidG9VcHBlckNhc2UiLCJnZXRSZWZlcmVuY2VTdHIiLCJjaGFwdGVyIiwidmVyc2UiLCJnZXRUaXRsZVN0ciIsImZpcnN0Iiwic2Vjb25kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQU1BLGdCQUFnQixHQUFHLEtBQXpCO0FBRUE7Ozs7O0FBSU8sU0FBU0MsS0FBVCxDQUFlQyxFQUFmLEVBQW1CO0FBQ3hCLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQ7QUFBQSxXQUNqQkMsVUFBVSxDQUFDRCxPQUFELEVBQVVGLEVBQVYsQ0FETztBQUFBLEdBQVosQ0FBUDtBQUdEO0FBRUQ7Ozs7Ozs7Ozs7QUFRTyxTQUFTSSxjQUFULENBQXdCQyxTQUF4QixFQUFtQ0MsSUFBbkMsRUFBeUNDLEtBQXpDLEVBQWdEO0FBQ3JELE1BQUlDLEdBQUcsR0FBR0YsSUFBSSxDQUFDRyxXQUFMLEVBQVY7QUFDQUQsRUFBQUEsR0FBRyxHQUFHQSxHQUFHLENBQUNFLE9BQUosQ0FBWSxHQUFaLEVBQWlCLEdBQWpCLENBQU47QUFDQSxNQUFJQyxXQUFKO0FBQ0FBLEVBQUFBLFdBQVcsR0FBR04sU0FBUyxDQUFDRyxHQUFELENBQXZCOztBQUVBLE1BQUksQ0FBQ0csV0FBRCxJQUFpQkEsV0FBVyxDQUFDQyxPQUFaLENBQW9CLHlCQUFwQixLQUFrRCxDQUF2RSxFQUEyRTtBQUFFO0FBQzNFRCxJQUFBQSxXQUFXLEdBQUdKLEtBQWQ7QUFDRDs7QUFDRCxTQUFPSSxXQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7OztBQVFPLFNBQVNFLGNBQVQsQ0FBd0JDLFlBQXhCLEVBQXNDQyxVQUF0QyxFQUFpRztBQUFBLE1BQS9DQyxTQUErQyx1RUFBbkNsQixnQkFBbUM7QUFBQSxNQUFqQm1CLFVBQWlCLHVFQUFKLEVBQUk7QUFDdEcsTUFBSUMsS0FBSjs7QUFFQSxNQUFJQyxLQUFLLENBQUNILFNBQUQsQ0FBVCxFQUFzQjtBQUNwQkUsSUFBQUEsS0FBSyxhQUFNSixZQUFOLGVBQXVCQyxVQUFVLENBQUNLLFdBQVgsRUFBdkIsTUFBTDtBQUNELEdBRkQsTUFFTztBQUNMRixJQUFBQSxLQUFLLGNBQU9ILFVBQVUsQ0FBQ0ssV0FBWCxFQUFQLGVBQW9DTixZQUFwQyxDQUFMO0FBQ0Q7O0FBRUQsTUFBSUcsVUFBSixFQUFnQjtBQUNkQyxJQUFBQSxLQUFLLGNBQU9BLEtBQVAsaUJBQW1CRCxVQUFuQixDQUFMO0FBQ0Q7O0FBRUQsU0FBT0MsS0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7OztBQU9PLFNBQVNHLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDQyxLQUFsQyxFQUF1RTtBQUFBLE1BQTlCUCxTQUE4Qix1RUFBbEJsQixnQkFBa0I7O0FBQzVFLE1BQUlxQixLQUFLLENBQUNILFNBQUQsQ0FBVCxFQUFzQjtBQUNwQixxQkFBVU0sT0FBVixjQUFxQkMsS0FBckI7QUFDRDs7QUFDRCxtQkFBVUEsS0FBVixjQUFtQkQsT0FBbkI7QUFDRDtBQUVEOzs7Ozs7Ozs7QUFPTyxTQUFTRSxXQUFULENBQXFCQyxLQUFyQixFQUE0QkMsTUFBNUIsRUFBa0U7QUFBQSxNQUE5QlYsU0FBOEIsdUVBQWxCbEIsZ0JBQWtCOztBQUN2RSxNQUFJcUIsS0FBSyxDQUFDSCxTQUFELENBQVQsRUFBc0I7QUFDcEIscUJBQVVTLEtBQVYsY0FBbUJDLE1BQW5CO0FBQ0Q7O0FBQ0QsbUJBQVVBLE1BQVYsY0FBb0JELEtBQXBCO0FBQ0Q7QUFFRDs7Ozs7Ozs7QUFNTyxTQUFTTixLQUFULENBQWVILFNBQWYsRUFBMEI7QUFDL0IsTUFBSSxPQUFPQSxTQUFQLEtBQXFCLFFBQXpCLEVBQWtDO0FBQ2hDLFdBQVFBLFNBQVMsS0FBSyxLQUF0QjtBQUNEOztBQUNELFNBQU9BLFNBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRlZmF1bHREaXJlY3Rpb24gPSAnbHRyJztcblxuLyoqXG4gKiBEZWxheXMgY29kZSBleGVjdXRpb24gZm9yIGEgbnVtYmVyIG9mIG1zIGdpdmVuLlxuICogQHBhcmFtIHttc30gbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBsb29rdXAgdHJhbnNsYXRpb24gZm9yIHRleHQgb3Iga2V5LiAgRmlyc3QgbG9va3MgZm9yIGEgc3RhdGljIHRyYW5zbGF0aW9uIGFuZCB0aGVuIHRyaWVzIGEgZHluYW1pYyB0cmFuc2xhdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNsYXRlIC0gdHJhbnNsYXRpb24gZnVuY3Rpb25cbiAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IC0gc3RyaW5nIG9yIGtleSB0byB0cmFuc2xhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBkZWZsdCAtIGRlZmF1bHQgc3RyaW5nIHRvIHVzZSBpZiBubyB0cmFuc2xhdGlvbiBpcyBmb3VuZFxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFBhcmFtcyB0byB1c2UgZm9yIHByaW50aW5nXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHRyYW5zbGF0ZWQgdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb24odHJhbnNsYXRlLCB0ZXh0LCBkZWZsdCkge1xuICBsZXQga2V5ID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICBrZXkgPSBrZXkucmVwbGFjZSgnICcsICdfJyk7XG4gIGxldCB0cmFuc2xhdGlvbjtcbiAgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGUoa2V5KTtcblxuICBpZiAoIXRyYW5zbGF0aW9uIHx8ICh0cmFuc2xhdGlvbi5pbmRleE9mKCdNaXNzaW5nIHRyYW5zbGF0aW9uIGtleScpID49IDApKSB7IC8vIGlmIG5vdCB0cmFuc2xhdGVkLCByZXR1cm4gb3JpZ2luYWwgdGV4dFxuICAgIHRyYW5zbGF0aW9uID0gZGVmbHQ7XG4gIH1cbiAgcmV0dXJuIHRyYW5zbGF0aW9uO1xufVxuXG4vKipcbiAqIGdldCB0aXRsZSB3aXRoIGlkIGFycmFuZ2VkIGZvciBsYW5ndWFnZSBkaXJlY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZU5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZGVudGlmaWVyXG4gKiBAcGFyYW0ge2Jvb2xlYW58c3RyaW5nfSBkaXJlY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBwcmVSZWxlYXNlIC0gcHJlLXJlbGVhc2Ugc3RyaW5nIHRvIGFkZFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGl0bGVXaXRoSWQobGFuZ3VhZ2VOYW1lLCBpZGVudGlmaWVyLCBkaXJlY3Rpb24gPSBkZWZhdWx0RGlyZWN0aW9uLCBwcmVSZWxlYXNlID0gJycpIHtcbiAgbGV0IHRpdGxlO1xuXG4gIGlmIChpc0xUUihkaXJlY3Rpb24pKSB7XG4gICAgdGl0bGUgPSBgJHtsYW5ndWFnZU5hbWV9ICgke2lkZW50aWZpZXIudG9VcHBlckNhc2UoKX0pYDtcbiAgfSBlbHNlIHtcbiAgICB0aXRsZSA9IGAoJHtpZGVudGlmaWVyLnRvVXBwZXJDYXNlKCl9KSAke2xhbmd1YWdlTmFtZX1gO1xuICB9XG5cbiAgaWYgKHByZVJlbGVhc2UpIHtcbiAgICB0aXRsZSA9IGBbJHt0aXRsZX1dIC0gJHtwcmVSZWxlYXNlfWA7XG4gIH1cblxuICByZXR1cm4gdGl0bGU7XG59XG5cbi8qKlxuICogZ2V0IHJlZmVyZW5jZSBhcnJhbmdlZCBmb3IgbGFuZ3VhZ2UgZGlyZWN0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcHRlclxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZVxuICogQHBhcmFtIHtib29sZWFufHN0cmluZ30gZGlyZWN0aW9uXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWZlcmVuY2VTdHIoY2hhcHRlciwgdmVyc2UsIGRpcmVjdGlvbiA9IGRlZmF1bHREaXJlY3Rpb24pIHtcbiAgaWYgKGlzTFRSKGRpcmVjdGlvbikpIHtcbiAgICByZXR1cm4gYCR7Y2hhcHRlcn06JHt2ZXJzZX1gO1xuICB9XG4gIHJldHVybiBgJHt2ZXJzZX06JHtjaGFwdGVyfWA7XG59XG5cbi8qKlxuICogZ2V0IHRpdGxlIGFycmFuZ2VkIGZvciBsYW5ndWFnZSBkaXJlY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBmaXJzdCAtIGluaXRpYWwgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNlY29uZCAtIGZvbGxvd2luZyB0ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58c3RyaW5nfSBkaXJlY3Rpb25cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRpdGxlU3RyKGZpcnN0LCBzZWNvbmQsIGRpcmVjdGlvbiA9IGRlZmF1bHREaXJlY3Rpb24pIHtcbiAgaWYgKGlzTFRSKGRpcmVjdGlvbikpIHtcbiAgICByZXR1cm4gYCR7Zmlyc3R9ICR7c2Vjb25kfWA7XG4gIH1cbiAgcmV0dXJuIGAke3NlY29uZH0gJHtmaXJzdH1gO1xufVxuXG4vKipcbiAqIGRldGVybWluZSBpZiBsYW5ndWFnZSBkaXJlY3Rpb24gaXMgbHRyLiAgSWYgZGlyZWN0aW9uIHBhcmFtZXRlciBpcyBub3RcbiAqICAgc3RyaW5nIHRoZW4gdHJlYXQgYXMgYm9vbGVhbiAoaWYgdHJ1ZSB0aGVuIExUUilcbiAqIEBwYXJhbSB7Ym9vbGVhbnxzdHJpbmd9IGRpcmVjdGlvblxuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBMVFJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTFRSKGRpcmVjdGlvbikge1xuICBpZiAodHlwZW9mIGRpcmVjdGlvbiA9PT0gJ3N0cmluZycpe1xuICAgIHJldHVybiAoZGlyZWN0aW9uICE9PSAncnRsJyk7XG4gIH1cbiAgcmV0dXJuIGRpcmVjdGlvbjtcbn1cbiJdfQ==