UNPKG

yyuap-template

Version:

template project which is based on tinper

148 lines (135 loc) 4.93 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(['module', 'exports', 'underscore', './pack', 'c-url', './jDiwork'], factory); } else if (typeof exports !== "undefined") { factory(module, exports, require('underscore'), require('./pack'), require('c-url'), require('./jDiwork')); } else { var mod = { exports: {} }; factory(mod, mod.exports, global.underscore, global.pack, global.cUrl, global.jDiwork); global.index2 = mod.exports; } })(this, function (module, exports, _underscore, LangPack, Url) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _underscore2 = _interopRequireDefault(_underscore); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var LangUtil = function LangUtil() { //this.initialize.apply(this, arguments); }; LangUtil.prototype = { /** * @return zh-CN、zh-TW、zh-HK、ar-EG、vi-VN、ja-JP */ lang: '', /** * @return zhcn、zhtw、zhhk、areg、vivn、jajp */ langType: '', /** * 支持的语言列表 */ languages: ['zh_CN'], /** * 获取的语言类型 */ uiTemplateLanguage: '', /** * 获取的默认语言类型 */ uiTemplateDefaultLanguage: '', /** * 初始化化入口 */ initialize: function initialize(startCreateHander, createThis) { //cfg = cfg || {}; var lang = void 0; var langType = void 0; var self = this; jDiwork.getContext(function (param) { var uiTemLanguage = param.locale || 'zh_CN'; var defaultLanguage = "en_US"; try { var multilist = JSON.parse(param.multilist); if (multilist && multilist instanceof Array) { multilist.forEach(function (item) { if (item.default) { defaultLanguage = item.langCode; } }); }; } catch (err) { console.log(err); } self.uiTemplateDefaultLanguage = defaultLanguage; lang = self.getLanguage(uiTemLanguage); if (lang.indexOf('_') == -1) { langType = lang.replace('-', '').toLowerCase(); } else { langType = lang.replace('_', '').toLowerCase(); } document.getElementsByTagName('html')[0].setAttribute('lang', lang); document.getElementsByTagName('body')[0].classList.add(langType); //测试 self.uiTemplateLanguage = lang; self.pack = LangPack[langType]; self.langType = langType; startCreateHander(createThis); }); }, /** * 获取语言。优先级:URL配置 > 系统语言 > 默认语言 */ getLanguage: function getLanguage(Language) { if (Url.query('_lang')) { // 配置页面语言 return Url.query('_lang'); } else if (Language) { // diwork语言 return Language; } else { return this.languages[0]; // 若没有,获取第一个活动语言。 } }, /** * 渲染模版内容 * @param tplStr模版内容 * @param data 数据 * @splitWidthEM 默认false */ template: function template(tplStr, data, insertEM) { var tpl = (this.pack[tplStr] || tplStr) + ''; insertEM = typeof insertEM == 'undefined' ? false : true; if (!tpl) { return ''; } // for 活动规则。段落分隔符号:@@@@ if (tpl.indexOf('@@@@') >= 0) { var strArr = []; strArr.push('<ul>'); tpl.split('@@@@').forEach(function (item, index) { item && strArr.push('<li>' + item + '</li>'); }); strArr.push('</ul>'); tpl = strArr.join(''); } tpl = tpl.replace(/\{([\s\S]+?)\}/ig, function ($0, $1) { if (insertEM) { return '<em class="' + $1 + '">' + data[$1] + '</em>'; } else { return data[$1]; } }); return tpl; } }; exports.default = new LangUtil(); module.exports = exports['default']; });