RegExp;

json文件生成小套路

// import Translate from 'translate-components'
/*
 * 匹配所有汉字RegExp: [\u4e00-\u9fa5]   [\u4E00-\u9FA5]|[\uFE30-\uFFA0]
 * 汉字部分除了^的标签jsonRegExp: <Translate>[^\^]+?(?=-{4,}?)-{4,}?([a-zA-Z]+)</Translate>  t('$1')
 * 汉字部分除换行符之外的任意字符的标签jsonRegExp: <Translate>(?:\^).+?(?=-{4,}?)-{4,}?([a-zA-Z]+)</Translate>
 */

function regExpStrToJson(strCount, language, isDocument) {
	var translation = '{\n';
	for (var i=0; i<strCount.length; i++) {
		var suffix = strCount.length === (i + 1) ? '"\n' : '",\n';
		var patch1 = /(?<=sign\(')(.+?)(?='\);;;?)/g;
		var result1 = patch1.exec(strCount[i]);
		translation += '    "' + RegExp.$1;
		// var patch2 = language === 'cn' ? /(?<=cn\(')(.+?)(?='\);;;?)/g : /(?<=tl\(')(.+?)(?='\);;;?)/g;
		var patch2 = new RegExp("(?<=" + language + "\\(')(.+?)(?='\\);;;?)","g");
		var result2 = patch2.exec(strCount[i]);
		translation += '": "' + RegExp.$1.replace('^', '') + suffix;
	}
	translation += '}';
	isDocument ? $('body').html(translation.replace(/\n/g, '<br>').replace(/\s{4}/g, '&nbsp;&nbsp;&nbsp;&nbsp;')) : console.log(translation);
}


var strToArr = '', tlStr = 'กีฬาชั้นนำระดับโลกเดิมพันกับโทรศัพท์มือถือระดับไฮเอนด์ประสบการณ์คล่องแคล่ว';
$.ajax('./static/translations.json',{
	dataType:'json',
	type:'get',
	success:function(data){
		let repeatObj = {};
		for (key in data) {
			let thisKey = key.split(/-{4,}/);
			if (repeatObj[thisKey[1]] === undefined) {
				repeatObj[thisKey[1]] = 1;
				strToArr += "sign('" + thisKey[1] + "');;;cn('" + thisKey[0] + "');;;tl('" + tlStr.split('').sort(() => Math.random() > 0.5 ? -1 : 1).join('').substring(0, parseInt(Math.random() * (tlStr.length - 1) + 5)) + "');;;\n";
			}
		}
		let strArr = strToArr.split('\n');
		
		regExpStrToJson(strArr, 'cn', 1);
		regExpStrToJson(strArr, 'tl');
	}
});

猜你喜欢

转载自blog.csdn.net/weixin_43832104/article/details/88856251
今日推荐