visuddhinanda пре 5 година
родитељ
комит
b9336ea575

+ 141 - 137
app/channal/channal.js

@@ -1,163 +1,167 @@
 var _my_channal = null;
+var get_channel_list_callback = null;
 channal_list();
 
 function channal_list_init() {
-  my_channal_list();
-  channal_add_dlg_init("channal_add_div");
+	my_channal_list();
+	channal_add_dlg_init("channal_add_div");
 }
 function channal_list() {
-  $.post("../channal/get.php", {}, function (data) {
-    try {
-      _my_channal = JSON.parse(data);
-    } catch (e) {
-      console.error(e);
-    }
-  });
+	$.post("../channal/get.php", {}, function (data) {
+		try {
+			_my_channal = JSON.parse(data);
+			if (get_channel_list_callback) {
+				get_channel_list_callback();
+			}
+		} catch (e) {
+			console.error(e);
+		}
+	});
 }
 
 function channal_getById(id) {
-  for (const iterator of _my_channal) {
-    if (iterator.id == id) {
-      return iterator;
-    }
-  }
-  return false;
+	for (const iterator of _my_channal) {
+		if (iterator.id == id) {
+			return iterator;
+		}
+	}
+	return false;
 }
 
 function my_channal_list() {
-  $.get(
-    "../channal/get.php",
-    {
-      setting: "",
-    },
-    function (data, status) {
-      if (status == "success") {
-        try {
-          let html = "";
-          let result = JSON.parse(data);
-          let key = 1;
-          for (const iterator of result) {
-            html += '<div class="file_list_row" style="padding:5px;">';
-            html +=
-              '<div style="max-width:2em;flex:1;"><input type="checkbox" /></div>';
-            html += "<div style='flex:1;'>" + key++ + "</div>";
-            html += "<div style='flex:2;'>" + iterator.name + "</div>";
-            html += "<div style='flex:2;'>" + iterator.nickname + "</div>";
-            html +=
-              "<div style='flex:2;'>" +
-              //render_status(iterator.status) +
-              "</div>";
-            html +=
-              "<div style='flex:1;'><a href='../channal/my_channal_edit.php?id=" +
-              iterator.id +
-              "'>" + gLocal.gui.edit + "</a></div>";
-            html += "<div style='flex:1;'>15</div>";
-            html += "</div>";
-          }
-          $("#my_channal_list").html(html);
-        } catch (e) {
-          console.error(e);
-        }
-      } else {
-        console.error("ajex error");
-      }
-    }
-  );
+	$.get(
+		"../channal/get.php",
+		{
+			setting: "",
+		},
+		function (data, status) {
+			if (status == "success") {
+				try {
+					let html = "";
+					let result = JSON.parse(data);
+					let key = 1;
+					for (const iterator of result) {
+						html += '<div class="file_list_row" style="padding:5px;">';
+						html += '<div style="max-width:2em;flex:1;"><input type="checkbox" /></div>';
+						html += "<div style='flex:1;'>" + key++ + "</div>";
+						html += "<div style='flex:2;'>" + iterator.name + "</div>";
+						html += "<div style='flex:2;'>" + iterator.nickname + "</div>";
+						html +=
+							"<div style='flex:2;'>" +
+							//render_status(iterator.status) +
+							"</div>";
+						html +=
+							"<div style='flex:1;'><a href='../channal/my_channal_edit.php?id=" +
+							iterator.id +
+							"'>" +
+							gLocal.gui.edit +
+							"</a></div>";
+						html += "<div style='flex:1;'>15</div>";
+						html += "</div>";
+					}
+					$("#my_channal_list").html(html);
+				} catch (e) {
+					console.error(e);
+				}
+			} else {
+				console.error("ajex error");
+			}
+		}
+	);
 }
 
 function my_channal_edit(id) {
-  $.get(
-    "../channal/my_channal_get.php",
-    {
-      id: id,
-      setting: "",
-    },
-    function (data, status) {
-      if (status == "success") {
-        try {
-          let html = "";
-          let result = JSON.parse(data);
-          $("#article_collect").attr("a_id", result.id);
-          html += '<div class="" style="padding:5px;">';
-          html += '<div style="max-width:2em;flex:1;"></div>';
-          html += "</div>";
-          html += "<div style='display:flex;'>";
-          html += "<div style='flex:4;'>";
-          html += "<input type='hidden' name='id' value='" + result.id + "'/>";
-          html +=
-            "<input type='input' name='name' value='" + result.name + "' maxlength='32' placeholder='📝≤32'/>";
-          html += "<textarea name='summary'>" + result.summary + "</textarea>";
-          html +=
-            '<div>	<input id="channal_lang_select" type="input" onchange="channal_lang_change()"  title="type language name/code" code="' +
-            result.lang +
-            '" value="' +
-            result.lang +
-            '" > <input id="channal_lang" type="hidden" name="lang" value=""></div>';
-          html +=
-            "<input type='hidden' name='status' value='" +
-            result.status +
-            "'/>";
-          html += "</div>";
+	$.get(
+		"../channal/my_channal_get.php",
+		{
+			id: id,
+			setting: "",
+		},
+		function (data, status) {
+			if (status == "success") {
+				try {
+					let html = "";
+					let result = JSON.parse(data);
+					$("#article_collect").attr("a_id", result.id);
+					html += '<div class="" style="padding:5px;">';
+					html += '<div style="max-width:2em;flex:1;"></div>';
+					html += "</div>";
+					html += "<div style='display:flex;'>";
+					html += "<div style='flex:4;'>";
+					html += "<input type='hidden' name='id' value='" + result.id + "'/>";
+					html +=
+						"<input type='input' name='name' value='" +
+						result.name +
+						"' maxlength='32' placeholder='📝≤32'/>";
+					html += "<textarea name='summary'>" + result.summary + "</textarea>";
+					html +=
+						'<div>	<input id="channal_lang_select" type="input" onchange="channal_lang_change()"  title="type language name/code" code="' +
+						result.lang +
+						'" value="' +
+						result.lang +
+						'" > <input id="channal_lang" type="hidden" name="lang" value=""></div>';
+					html += "<input type='hidden' name='status' value='" + result.status + "'/>";
+					html += "</div>";
 
-          html += "<div id='preview_div'>";
-          html += "<div id='preview_inner' ></div>";
-          html += "</div>";
+					html += "<div id='preview_div'>";
+					html += "<div id='preview_inner' ></div>";
+					html += "</div>";
 
-          html += "</div>";
+					html += "</div>";
 
-          $("#channal_info").html(html);
-          tran_lang_select_init("channal_lang_select");
-          //$("#aritcle_status").html(render_status(result.status));
-          $("#channal_title").html(result.name);
-          $("#preview_inner").html();
-        } catch (e) {
-          console.error(e);
-        }
-      } else {
-        console.error("ajex error");
-      }
-    }
-  );
+					$("#channal_info").html(html);
+					tran_lang_select_init("channal_lang_select");
+					//$("#aritcle_status").html(render_status(result.status));
+					$("#channal_title").html(result.name);
+					$("#preview_inner").html();
+				} catch (e) {
+					console.error(e);
+				}
+			} else {
+				console.error("ajex error");
+			}
+		}
+	);
 }
 
 function channal_lang_change() {
-  let lang = $("#channal_lang_select").val();
-  if (lang.split("-").length == 3) {
-    $("#channal_lang").val(lang.split("-")[2]);
-  } else {
-    $("#channal_lang").val(lang);
-  }
+	let lang = $("#channal_lang_select").val();
+	if (lang.split("-").length == 3) {
+		$("#channal_lang").val(lang.split("-")[2]);
+	} else {
+		$("#channal_lang").val(lang);
+	}
 }
 
 function my_channal_save() {
-  $.ajax({
-    type: "POST", //方法类型
-    dataType: "json", //预期服务器返回的数据类型
-    url: "../channal/my_channal_post.php", //url
-    data: $("#channal_edit").serialize(),
-    success: function (result) {
-      console.log(result); //打印服务端返回的数据(调试用)
+	$.ajax({
+		type: "POST", //方法类型
+		dataType: "json", //预期服务器返回的数据类型
+		url: "../channal/my_channal_post.php", //url
+		data: $("#channal_edit").serialize(),
+		success: function (result) {
+			console.log(result); //打印服务端返回的数据(调试用)
 
-      if (result.status == 0) {
-        alert("保存成功");
-      } else {
-        alert("error:" + result.message);
-      }
-    },
-    error: function (data, status) {
-      alert("异常!" + status + data.responseText);
-      switch (status) {
-        case "timeout":
-          break;
-        case "error":
-          break;
-        case "notmodified":
-          break;
-        case "parsererror":
-          break;
-        default:
-          break;
-      }
-    },
-  });
+			if (result.status == 0) {
+				alert("保存成功");
+			} else {
+				alert("error:" + result.message);
+			}
+		},
+		error: function (data, status) {
+			alert("异常!" + status + data.responseText);
+			switch (status) {
+				case "timeout":
+					break;
+				case "error":
+					break;
+				case "notmodified":
+					break;
+				case "parsererror":
+					break;
+				default:
+					break;
+			}
+		},
+	});
 }

+ 26 - 3
app/studio/css/print.css

@@ -33,14 +33,37 @@
 	display: none;
 }
 
+#sutta_text {
+	margin-bottom: 0;
+}
+
+#end_of_page {
+	display: none;
+}
+
+.pardiv {
+	display: block;
+}
+.wbwdiv {
+	display: block;
+}
+.wbwparblock {
+	display: block;
+}
 .sent_wbw_trans {
 	display: block;
 }
-
-.sent_wbw_trans div {
+.sent_wbw {
 	page-break-inside: avoid;
 }
 
-.trans_text_block {
+.sent_wbw_trans {
+	border-bottom-width: 2px;
+}
+
+.translate_sent {
+	page-break-before: avoid;
+}
+.sent_wbw_trans {
 	page-break-inside: avoid;
 }

+ 17 - 1
app/studio/editor.php

@@ -75,7 +75,23 @@ else{$currDevice="computer";}
 	<script src="../uwbw/update.js"></script>
 	<script src="../usent/usent.js"></script>
 	<script src="../fileindex/file_info.js"></script>
+
+
 	<script  src="../channal/channal.js"></script>
+	<script>
+		get_channel_list_callback = function(){
+			let html ="<ul>";
+			html += "<li><input type='checkbox' checked channel_id='0' onclick=\"channelDisplay(this)\" />其他</li>"
+
+			if (_my_channal != null) {
+			for (const iterator of _my_channal) {
+				html += "<li><input type='checkbox' checked channel_id='"+iterator.id+"' onclick=\"channelDisplay(this)\" />"+iterator.name+"</li>"
+			}
+			html +="</ul>";
+			$("#layout_channel").html(html);
+		}		
+		}
+	</script>	
 	
 
 	<script language="javascript">
@@ -963,7 +979,7 @@ foreach($plugin_list as $info){
 		</div>
 	</div>
 	
-	<div id="end_of_page" class="borderT textS textAc" style="font-size: medium;">
+	<div id="end_of_page" class="borderT textS textAc">
 	<?php echo $_local->gui->page_end; ?><br>
 	——wikipāḷi <?php echo $_local->gui->studio; ?>——
 	</div>

+ 19 - 5
app/studio/plugin/system_layout/gui.html

@@ -1,6 +1,6 @@
 			<div class="menu" id="menu_layout">
 				<h1><?php echo $module_gui_str['editor_layout']['1001']; ?></h1>
-
+<!--css-->
 				<div class="submenu">
 					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_layout']['1002']; ?>
 						<svg class="icon">
@@ -12,8 +12,21 @@
 					<button type="button" onclick="editor_layout_applyNewStyle()"><?php echo $module_gui_str['editor_layout']['1003']; ?></button>
 					</div>
 				</div>
-				
+<!--end of css-->
+	
+<!--sandhi-->
+<div class="submenu">
+	<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $_local->gui->channel; ?>
+		<svg class="icon">
+				<use xlink:href="svg/icon.svg#ic_add"></use>
+		</svg>
+	</p>
+	<div id="layout_channel" class="submenu_details">
+	</div>
+</div>		
+<!--end of sandhi-->		
 
+<!--sandhi-->
 				<div class="submenu">
 					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_layout']['1007']; ?>
 						<svg class="icon">
@@ -22,17 +35,18 @@
 					</p>
 					<div class="submenu_details">
 						<ul>
+							<li><input type="checkbox" checked id="id_layout_sandhi_parent" onclick="editSandhiDisplay('parent',this)" /><?php echo $module_gui_str['editor_layout']['1011']; ?></li>
+							<li><input type="checkbox" checked id="id_layout_sandhi_word" onclick="editSandhiDisplay('word',this)" /><?php echo $module_gui_str['editor_layout']['1010']; ?></li>
 							<li><input type="checkbox" checked id="id_layout_sandhi_begin" onclick="editSandhiDisplay('begin',this)" /><?php echo $module_gui_str['editor_layout']['1008']; ?></li>
 							<li><input type="checkbox" checked id="id_layout_sandhi_end" onclick="editSandhiDisplay('end',this)" /><?php echo $module_gui_str['editor_layout']['1009']; ?></li>
-							<li><input type="checkbox" checked id="id_layout_sandhi_word" onclick="editSandhiDisplay('word',this)" /><?php echo $module_gui_str['editor_layout']['1010']; ?></li>
-							<li><input type="checkbox" checked id="id_layout_sandhi_parent" onclick="editSandhiDisplay('parent',this)" /><?php echo $module_gui_str['editor_layout']['1011']; ?></li>
 							<li><input type="checkbox" id="id_layout_sandhi_combin" /><?php echo $module_gui_str['editor_layout']['1012']; ?></li>
 							<li><input type="checkbox" checked id="id_layout_sandhi_word" onclick="editSandhiDisplay('comp_word',this)" /><?php echo "sandhi_word"; ?></li>
 							<li><input type="checkbox" checked id="id_layout_sandhi_parent" onclick="editSandhiDisplay('comp_parent',this)" /><?php echo "sandhi_parent"; ?></li>
 						</ul>
 					</div>
 				</div>		
-				
+<!--end of sandhi-->		
+
 				<!--术语系统显示设置-->
 				<div class="submenu">
 					<p class="submenu_title" onclick="submenu_show_detail(this)">术语系统<?php echo $module_gui_str['editor_layout']['1007']; ?>

+ 193 - 195
app/studio/plugin/system_layout/module_function.js

@@ -1,6 +1,4 @@
-
-
-/*
+/*
  * Modle Init.
  * public
  * @param param1 (type) 
@@ -10,262 +8,262 @@
  * @endcode
 
  */
-function editor_layout_init(){
-
-}
+function editor_layout_init() {}
 
-function layoutWordHeadCode(showTo,obj){
-	menu_view_script(showTo,obj.value);
+function layoutWordHeadCode(showTo, obj) {
+	menu_view_script(showTo, obj.value);
 }
 
-function menu_view_script(showto,code){
-
+function menu_view_script(showto, code) {
 	var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
-		  
-	if(showto==0 && code=="org"){
-		for(iWord=0;iWord<xAllWord.length;iWord++){
-			wordId=getNodeText(xAllWord[iWord],"id");
-			xDiv = document.getElementById("wb"+wordId);
+
+	if (showto == 0 && code == "org") {
+		for (iWord = 0; iWord < xAllWord.length; iWord++) {
+			wordId = getNodeText(xAllWord[iWord], "id");
+			xDiv = document.getElementById("wb" + wordId);
 			xPali1 = xDiv.getElementsByClassName("paliword1")[0];
-			xPali1.innerHTML=getNodeText(xAllWord[iWord],"pali");
+			xPali1.innerHTML = getNodeText(xAllWord[iWord], "pali");
 		}
 		return;
 	}
-	if(showto==1){
-		if(code=="none"){
-			$(".paliword2").css("display","none");
+	if (showto == 1) {
+		if (code == "none") {
+			$(".paliword2").css("display", "none");
 			return;
+		} else {
+			$(".paliword2").css("display", "block");
 		}
-		else{
-			$(".paliword2").css("display","block");
-		}
-	}
-	
-	var xmlHttp=null;
-	var xmlText="";
-	
-	var xmlScript=null;
-	
-	if(window.XMLHttpRequest)
-	{// code for IE7, Firefox, Opera, etc.
-		xmlHttp=new XMLHttpRequest();
 	}
-	else if(window.ActiveXObject)
-	{// code for IE6, IE5
-		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
+
+	var xmlHttp = null;
+	var xmlText = "";
+
+	var xmlScript = null;
+
+	if (window.XMLHttpRequest) {
+		// code for IE7, Firefox, Opera, etc.
+		xmlHttp = new XMLHttpRequest();
+	} else if (window.ActiveXObject) {
+		// code for IE6, IE5
+		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 	}
-	  
-	if (xmlHttp!=null)
-	{
-		var d=new Date();
-		var strLink = "spt_get.php?code="+code;
+
+	if (xmlHttp != null) {
+		var d = new Date();
+		var strLink = "spt_get.php?code=" + code;
 		xmlHttp.open("GET", strLink, false);
 		xmlHttp.send(null);
-		xmlText=xmlHttp.responseText;
+		xmlText = xmlHttp.responseText;
 		//xmlDict=xmlHttp.responseXML;
-	}
-	else
-	{
+	} else {
 		alert("Your browser does not support XMLHTTP.");
 	}
-	
-	if (window.DOMParser)
-	  {
-	  parser=new DOMParser();
-	  xmlScript=parser.parseFromString(xmlText,"text/xml");
-	  }
-	else // Internet Explorer
-	  {
-	  xmlScript=new ActiveXObject("Microsoft.XMLDOM");
-	  xmlScript.async="false";
-	  xmlScript.loadXML(xmlText);
-	  }
-	  
-	  var arrPaliWords="";
-	  var xScriptWord = xmlScript.getElementsByTagName("word");
-	  var xPaliWords = document.getElementsByClassName("paliword");
 
-	  for(iWord=0;iWord<xAllWord.length;iWord++){
-		arrPaliWords = arrPaliWords + "$" + getNodeText(xAllWord[iWord],"real");
-	  }
-	  for(i=0;i<xScriptWord.length;i++){
-		var src = getNodeText(xScriptWord[i],"src");
-		var dest = getNodeText(xScriptWord[i],"dest");
-		eval("arrPaliWords = arrPaliWords.replace(/"+src+"/g, dest);");
-	  }
-	 // document.getElementById("scriptinner").innerHTML=arrPaliWords;	  
-	  
-	  var arrDestWords = arrPaliWords.split("$");
-		for(iWord=0;iWord<xAllWord.length;iWord++){
-			wordId=getNodeText(xAllWord[iWord],"id");
-			xDiv = document.getElementById("wb"+wordId);
-			if(xDiv){
-				if(showto==0){
-					xPali = xDiv.getElementsByClassName("paliword1")[0];
-				}
-				else{
-					xPali = xDiv.getElementsByClassName("paliword2")[0];
-				}
-				if(arrDestWords[iWord+1].length>0){
-					xPali.innerHTML=arrDestWords[iWord+1];
-				}
-				else{
-					xPali.innerHTML=getNodeText(xAllWord[iWord],"pali");
-				}
+	if (window.DOMParser) {
+		parser = new DOMParser();
+		xmlScript = parser.parseFromString(xmlText, "text/xml");
+	} // Internet Explorer
+	else {
+		xmlScript = new ActiveXObject("Microsoft.XMLDOM");
+		xmlScript.async = "false";
+		xmlScript.loadXML(xmlText);
+	}
+
+	var arrPaliWords = "";
+	var xScriptWord = xmlScript.getElementsByTagName("word");
+	var xPaliWords = document.getElementsByClassName("paliword");
+
+	for (iWord = 0; iWord < xAllWord.length; iWord++) {
+		arrPaliWords = arrPaliWords + "$" + getNodeText(xAllWord[iWord], "real");
+	}
+	for (i = 0; i < xScriptWord.length; i++) {
+		var src = getNodeText(xScriptWord[i], "src");
+		var dest = getNodeText(xScriptWord[i], "dest");
+		eval("arrPaliWords = arrPaliWords.replace(/" + src + "/g, dest);");
+	}
+	// document.getElementById("scriptinner").innerHTML=arrPaliWords;
+
+	var arrDestWords = arrPaliWords.split("$");
+	for (iWord = 0; iWord < xAllWord.length; iWord++) {
+		wordId = getNodeText(xAllWord[iWord], "id");
+		xDiv = document.getElementById("wb" + wordId);
+		if (xDiv) {
+			if (showto == 0) {
+				xPali = xDiv.getElementsByClassName("paliword1")[0];
+			} else {
+				xPali = xDiv.getElementsByClassName("paliword2")[0];
+			}
+			if (arrDestWords[iWord + 1].length > 0) {
+				xPali.innerHTML = arrDestWords[iWord + 1];
+			} else {
+				xPali.innerHTML = getNodeText(xAllWord[iWord], "pali");
 			}
 		}
+	}
 
-
-	if (xmlScript == null){
+	if (xmlScript == null) {
 		alert("error:can not load dict.");
 		return;
 	}
 }
 
-function editro_layout_loadStyle(){
-	var strStyle = getNodeText(gXmlBookDataHead,"style");
-	document.getElementById("id_layout_style").value=strStyle;
-	document.getElementById("mycss").innerHTML=strStyle;
+function editro_layout_loadStyle() {
+	var strStyle = getNodeText(gXmlBookDataHead, "style");
+	document.getElementById("id_layout_style").value = strStyle;
+	document.getElementById("mycss").innerHTML = strStyle;
 }
 
-function editor_layout_applyNewStyle(){
-	var strStyle=document.getElementById("id_layout_style").value;
-	document.getElementById("mycss").innerHTML=strStyle;
-	setNodeText(gXmlBookDataHead,"style",strStyle);
-
+function editor_layout_applyNewStyle() {
+	var strStyle = document.getElementById("id_layout_style").value;
+	document.getElementById("mycss").innerHTML = strStyle;
+	setNodeText(gXmlBookDataHead, "style", strStyle);
 }
 
 //自动将逐词译段落切分为句子
-function layout_wbw_auto_cut(){
-	var xBlock=gXmlBookDataBody.getElementsByTagName("block");
-	for(var iBlock=0;iBlock<xBlock.length;iBlock++){
+function layout_wbw_auto_cut() {
+	var xBlock = gXmlBookDataBody.getElementsByTagName("block");
+	for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
 		xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
 		xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
-		var mId = getNodeText(xmlParInfo,"id")
-		var par_num = getNodeText(xmlParInfo,"paragraph");
-		var type = getNodeText(xmlParInfo,"type");
-		
-		if(type=="wbw"){
-			var splited = getNodeText(xmlParInfo,"splited");
-			if(splited != 1){
-				var Note_Mark=0;
-				var sent_gramma_i=0;
-				var word_length_count=0;
-				var sent_num=0;
-				var arr_Para_ID=new Array();		
+		var mId = getNodeText(xmlParInfo, "id");
+		var par_num = getNodeText(xmlParInfo, "paragraph");
+		var type = getNodeText(xmlParInfo, "type");
+
+		if (type == "wbw") {
+			var splited = getNodeText(xmlParInfo, "splited");
+			if (splited != 1) {
+				var Note_Mark = 0;
+				var sent_gramma_i = 0;
+				var word_length_count = 0;
+				var sent_num = 0;
+				var arr_Para_ID = new Array();
 				var allWord = xmlParData.getElementsByTagName("word");
-				for(var iWord=0;iWord<allWord.length;iWord++){
-					var wID=getNodeText(allWord[iWord],"id");
-					var wPali=getNodeText(allWord[iWord],"pali");
-					var wReal=getNodeText(allWord[iWord],"real");
-					var wType=getNodeText(allWord[iWord],"type");
-					var wGramma=getNodeText(allWord[iWord],"gramma");
-					var wCase=getNodeText(allWord[iWord],"case");
-					var wUn=getNodeText(allWord[iWord],"un");
-					var wStyle=getNodeText(allWord[iWord],"style");
-					
-					if((wType=="" || wType=="?") && wCase!=""){
-						wType=wCase.split("#")[0];
+				for (var iWord = 0; iWord < allWord.length; iWord++) {
+					var wID = getNodeText(allWord[iWord], "id");
+					var wPali = getNodeText(allWord[iWord], "pali");
+					var wReal = getNodeText(allWord[iWord], "real");
+					var wType = getNodeText(allWord[iWord], "type");
+					var wGramma = getNodeText(allWord[iWord], "gramma");
+					var wCase = getNodeText(allWord[iWord], "case");
+					var wUn = getNodeText(allWord[iWord], "un");
+					var wStyle = getNodeText(allWord[iWord], "style");
+
+					if ((wType == "" || wType == "?") && wCase != "") {
+						wType = wCase.split("#")[0];
 					}
 					word_length_count += wPali.length;
 
-					if(iWord>=1){
-						var pre_pali_spell=getNodeText(allWord[iWord-1],"pali");
-						var pre_pali_type=getNodeText(allWord[iWord-1],"type")
-						var pre_pali_Gramma=getNodeText(allWord[iWord-1],"gramma")
-						var pre_pali_Case=getNodeText(allWord[iWord-1],"case")
-						if(pre_pali_type=="" && pre_pali_Case!=""){
-							pre_pali_type=pre_pali_Case.split("#")[0];
+					if (iWord >= 1) {
+						var pre_pali_spell = getNodeText(allWord[iWord - 1], "pali");
+						var pre_pali_type = getNodeText(allWord[iWord - 1], "type");
+						var pre_pali_Gramma = getNodeText(allWord[iWord - 1], "gramma");
+						var pre_pali_Case = getNodeText(allWord[iWord - 1], "case");
+						if (pre_pali_type == "" && pre_pali_Case != "") {
+							pre_pali_type = pre_pali_Case.split("#")[0];
 						}
-						if(pre_pali_Case!="" && pre_pali_Case.lastIndexOf("$")!=-1){
-							var pre_case_array=pre_pali_Case.split("$");
-							pre_pali_Case=pre_case_array[pre_case_array.length-1]
+						if (pre_pali_Case != "" && pre_pali_Case.lastIndexOf("$") != -1) {
+							var pre_case_array = pre_pali_Case.split("$");
+							pre_pali_Case = pre_case_array[pre_case_array.length - 1];
 						}
 					}
-					if((iWord+2)<=allWord.length){
-						var next_pali_spell=getNodeText(allWord[iWord+1],"pali");
-						var next_pali_type=getNodeText(allWord[iWord+1],"type")
-						var next_pali_Gramma=getNodeText(allWord[iWord+1],"gramma")
-						var next_pali_Case=getNodeText(allWord[iWord+1],"case")
-						if(next_pali_type=="" && next_pali_Case!=""){
-							next_pali_type=next_pali_Case.split("#")[0];
+					if (iWord + 2 <= allWord.length) {
+						var next_pali_spell = getNodeText(allWord[iWord + 1], "pali");
+						var next_pali_type = getNodeText(allWord[iWord + 1], "type");
+						var next_pali_Gramma = getNodeText(allWord[iWord + 1], "gramma");
+						var next_pali_Case = getNodeText(allWord[iWord + 1], "case");
+						if (next_pali_type == "" && next_pali_Case != "") {
+							next_pali_type = next_pali_Case.split("#")[0];
 						}
-						if(next_pali_Case!="" && next_pali_Case.lastIndexOf("$")!=-1){
-							var next_case_array=next_pali_Case.split("$");
-							next_pali_Case=next_case_array[next_case_array.length-1]
+						if (next_pali_Case != "" && next_pali_Case.lastIndexOf("$") != -1) {
+							var next_case_array = next_pali_Case.split("$");
+							next_pali_Case = next_case_array[next_case_array.length - 1];
 						}
 					}
-					if(next_pali_spell=="("){
-						Note_Mark=1;
+					if (next_pali_spell == "(") {
+						Note_Mark = 1;
+					} else if (pre_pali_spell == ")" && Note_Mark == 1) {
+						Note_Mark = 0;
+					} else {
 					}
-					else if(pre_pali_spell==")" && Note_Mark==1){
-						Note_Mark=0;
-					}
-					else{
-						
-					}
-					
-					var isEndOfSen=false;
-					if(wPali=="." && iWord>=1 && isNaN(pre_pali_spell) && iWord!=allWord.length-1 && Note_Mark==0){//以.結尾且非註釋
-						if(next_pali_spell!="("){
-							isEndOfSen=true;
+
+					var isEndOfSen = false;
+					if (
+						wPali == "." &&
+						iWord >= 1 &&
+						isNaN(pre_pali_spell) &&
+						iWord != allWord.length - 1 &&
+						Note_Mark == 0
+					) {
+						//以.結尾且非註釋
+						if (next_pali_spell != "(") {
+							isEndOfSen = true;
 						}
-					}
-					/*else if(wPali=="," && iWord>=1 && isNaN(pre_pali_spell) && iWord!=allWord.length-1 && pre_pali_type==".v." && Note_Mark==0){
+					} else if (
+						/*else if(wPali=="," && iWord>=1 && isNaN(pre_pali_spell) && iWord!=allWord.length-1 && pre_pali_type==".v." && Note_Mark==0){
 						isEndOfSen=true;
 					}导致自动匹配前后,句子切分不一致,注释*/
-					else if(wPali=="–" && allWord.length>=(iWord+2) && next_pali_spell=="‘" && iWord!=allWord.length-1 && Note_Mark==0){
-						isEndOfSen=true;
-					}
-					else if(allWord.length>=(iWord+2) && iWord!=allWord.length-1 && Note_Mark==0){//以!或?或;結尾
-						if(/*wPali=="!" || */wPali==";" || wPali=="?"){
-							if(next_pali_spell!="("){
-								isEndOfSen=true;
+						wPali == "–" &&
+						allWord.length >= iWord + 2 &&
+						next_pali_spell == "‘" &&
+						iWord != allWord.length - 1 &&
+						Note_Mark == 0
+					) {
+						isEndOfSen = true;
+					} else if (allWord.length >= iWord + 2 && iWord != allWord.length - 1 && Note_Mark == 0) {
+						//以!或?或;結尾
+						if (/*wPali=="!" || */ wPali == ";" || wPali == "?") {
+							if (next_pali_spell != "(") {
+								isEndOfSen = true;
 							}
 						}
 					}
-					if(isEndOfSen==true){
-						var wEnter=getNodeText(allWord[iWord],"enter");
-						if(wEnter=="" || wEnter==0){
-							setNodeText(allWord[iWord],"enter","1");
+					if (isEndOfSen == true) {
+						var wEnter = getNodeText(allWord[iWord], "enter");
+						if (wEnter == "" || wEnter == 0) {
+							setNodeText(allWord[iWord], "enter", "1");
 						}
-						var sent_ID="sent_"+par_num+"_"+sent_num;
-						sent_num+=1
-						word_length_count=0;
-						sent_gramma_i=0;
-						arr_Para_ID.push(wID);				
+						var sent_ID = "sent_" + par_num + "_" + sent_num;
+						sent_num += 1;
+						word_length_count = 0;
+						sent_gramma_i = 0;
+						arr_Para_ID.push(wID);
 					}
-					
-					if(wPali==","){
-						if(next_pali_Case.lastIndexOf(".voc.")!=-1 || pre_pali_Case.lastIndexOf(".voc.")!=-1){
+
+					if (wPali == ",") {
+						if (next_pali_Case.lastIndexOf(".voc.") != -1 || pre_pali_Case.lastIndexOf(".voc.") != -1) {
 							sent_gramma_i += 0;
-						}
-						else{
-							sent_gramma_i+=1;
+						} else {
+							sent_gramma_i += 1;
 						}
 					}
-					if(wType==".v:ind." && allWord.length>=(iWord+2) && next_pali_spell!=","){
+					if (wType == ".v:ind." && allWord.length >= iWord + 2 && next_pali_spell != ",") {
 						sent_gramma_i += 1;
-					}
-					else if(wType==".v." && allWord.length>=(iWord+2) && next_pali_spell!="." && next_pali_spell!=","){
+					} else if (
+						wType == ".v." &&
+						allWord.length >= iWord + 2 &&
+						next_pali_spell != "." &&
+						next_pali_spell != ","
+					) {
 						sent_gramma_i += 1;
 					}
-												
-					
-				}//段落结束
-				
+				} //段落结束
+
 				//重绘
 				//_display_sbs=1;
 				//updateWordParBlockInner(xBlock[iBlock]);
-				var sent_ID="sent_"+par_num+"_"+sent_num;
+				var sent_ID = "sent_" + par_num + "_" + sent_num;
 				arr_Para_ID.push(wID);
 				arr_par_sent_num.push(sent_ID);
-				g_arr_Para_ID[par_num]=arr_Para_ID;
-				
+				g_arr_Para_ID[par_num] = arr_Para_ID;
+
 				//设置已经切分标志
-				setNodeText(xmlParInfo,"splited","1");
+				setNodeText(xmlParInfo, "splited", "1");
 			}
 		}
 	}
-	
-}
+}
+
+function channelDisplay(obj) {
+	let id = $(obj).attr("channel_id");
+	$(".trans_text_block[channel_id='" + id + "']").toggle();
+}

+ 7 - 5
app/studio/plugin/system_print/module_function.js

@@ -9,14 +9,16 @@
 
  */
 function setPageBreak() {
-	obj = document.getElementsByClassName("word");
-	for (var i = 0; i < obj.length; i++) {
-		obj[i].style.pageBreakInside = "avoid";
-	}
+	$(".pardiv").css("display", "block");
+	$(".wbwdiv").css("display", "block");
+	$(".wbwparblock").css("display", "block");
+	$(".sent_wbw_trans").css("display", "block");
+	$(".sent_wbw").css("page-break-inside", "avoid");
+	$(".translate_sent").css("page-break-before", "avoid");
 }
 function menu_file_print_printpreview(isPrev) {
 	setPageBreak();
-	printpreview(true);
+	//printpreview(true);
 }
 function printpreview(isPrev) {
 	var objNave = document.getElementById("leftmenuinner");