| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- /*
- * Modle Init.
- * public
- * @param param1 (type)
- *
- * Example usage:
- * @code
- * @endcode
- */
- function editor_layout_init() {}
- function layoutWordHeadCode(showTo, obj) {
- menu_view_script(showTo, obj.value);
- }
- 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);
- xPali1 = xDiv.getElementsByClassName("paliword1")[0];
- xPali1.innerHTML = getNodeText(xAllWord[iWord], "pali");
- }
- return;
- }
- if (showto == 1) {
- if (code == "none") {
- $(".paliword2").css("display", "none");
- return;
- } 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");
- }
- 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;
- //xmlDict=xmlHttp.responseXML;
- } else {
- alert("Your browser does not support XMLHTTP.");
- }
- 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) {
- 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 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++) {
- 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 Note_Mark1 = 0;
- var Note_Mark2 = 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];
- }
- 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 (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 (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 == "(" || wPali == "(") {
- Note_Mark1 = 1;
- } else if ((pre_pali_spell == ")" || wPali == ")") && Note_Mark1 == 1) {
- Note_Mark1 = 0;
- } else {
- }
- if (next_pali_spell == "[" || wPali == "[") {
- Note_Mark2 = 1;
- } else if ((pre_pali_spell == "]" || wPali == "]") && Note_Mark2 == 1) {
- Note_Mark2 = 0;
- } else {
- }
- Note_Mark = Note_Mark1 + Note_Mark2
- var isEndOfSen = false;
- if (
- wPali == "." &&
- iWord >= 1 &&
- isNaN(pre_pali_spell) &&
- iWord != allWord.length - 1 &&
- Note_Mark == 0
- ) {
- //以.結尾且非註釋
- if (next_pali_spell != "(" && next_pali_spell != "[") {
- isEndOfSen = true;
- }
- } else if (
- /*else if(wPali=="," && iWord>=1 && isNaN(pre_pali_spell) && iWord!=allWord.length-1 && pre_pali_type==".v." && Note_Mark==0){
- 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 != "(" && next_pali_spell != "[") {
- isEndOfSen = true;
- }
- }
- }
- 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);
- }
- if (wPali == ",") {
- if (next_pali_Case.lastIndexOf(".voc.") != -1 || pre_pali_Case.lastIndexOf(".voc.") != -1) {
- sent_gramma_i += 0;
- } else {
- sent_gramma_i += 1;
- }
- }
- 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 != ","
- ) {
- sent_gramma_i += 1;
- }
- } //段落结束
- //重绘
- //_display_sbs=1;
- //updateWordParBlockInner(xBlock[iBlock]);
- 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;
- //设置已经切分标志
- setNodeText(xmlParInfo, "splited", "1");
- }
- }
- }
- }
- //channel显示隐藏
- function channelDisplay(obj) {
- let id = $(obj).attr("channel_id");
- $(".trans_text_block[channel_id='" + id + "']").toggle();
- let allLen = $(obj).parent().parent().children("li").length;
- let checkLen = $(obj).parent().parent().children("li").children("input:checked").length;
- if(checkLen==0){
- $("#layout_channel_display_all").prop("checked",false);
- }else if(allLen===checkLen){
- $("#layout_channel_display_all").prop("checked",true);
- }else{
- $("#layout_channel_display_all").prop({checked:false,indeterminate:true});
- }
- }
- //全选或全不选
- function channelDisplayAll(obj) {
- let all = $(obj).prop("checked");
- if(all){
- $("#layout_channel_display").children("li").children("input").prop("checked",true);
- $(".trans_text_block").show();
- }else{
- $("#layout_channel_display").children("li").children("input").prop("checked",false);
- $(".trans_text_block").hide();
- }
- }
- function renderChannelList(){
- let html ="";
- html += "<input type='checkbox' id='layout_channel_display_all' checked channel_id='-1' onclick=\"channelDisplayAll(this)\" />全选</li>"
- html +="<ul id='layout_channel_display'>";
- 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_innter").html(html);
- }
- }
|