UNPKG

wot-design

Version:

Mobile UI components built on vue.js

79 lines (61 loc) 1.83 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.t = t; exports.use = use; exports.i18n = i18n; exports.default = void 0; var _vue = _interopRequireDefault(require("vue")); var _zhCN = _interopRequireDefault(require("./lang/zh-CN")); var message = _zhCN.default; var translate = function translate() { var translate = Object.getPrototypeOf(this || _vue.default).$t; if (translate && typeof translate === 'function') { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return translate.apply(this, args); } }; function t(key, options) { var value = translate.apply(this, arguments); if (!value) { var keys = key.split('.'); value = message; while (keys.length > 0) { var prop = keys.shift(); var arrayMatch = prop.match(/([^[]+)\[(\d+)\]$/); if (arrayMatch) { value = value[arrayMatch[1]][arrayMatch[2]]; } else { value = value[prop]; } if (!value) { break; } } if (value && (options || options === 0)) { if (typeof options === 'number') { value = value.split('|')[options]; value = value && value.trim(); } else if (Object.prototype.toString.apply(options) === '[object Object]' || Object.prototype.toString.apply(options) === '[object Array]') { value = value.replace(/{\s*([^}\s]*)\s*}/g, function ($1, $2) { return options[$2]; }); } } } return value || key; } function use(langMessage) { message = langMessage || _zhCN.default; } function i18n(fn) { translate = fn || translate; } var _default = { t: t, use: use, i18n: i18n }; exports.default = _default;