";
for (var i = 0; i < g_DictWordList.length; i++) {
if (g_DictWordList[i].Pali == inCurrWord) {
if (g_DictWordList[i].dictname == "用户字典") {
outData += "
";
return output;
}
function meaningPartLookup(word){
window.open("../dict/index.php?builtin=true&theme=dark&key="+word,target="dict");
}
function getWordMeaningList(word) {
var currOM = "";
var arrOM = new Array();
var thisWord = word;
//新的方法 内存字典用索引数组
if (mDict[word]) {
for (var j = 0; j < mDict[word].length; j++) {
if (mDict[word][j].mean) {
var currOM = mDict[word][j].mean.split("$");
for (iMean in currOM) {
if (currOM[iMean].length > 0 && currOM[iMean] != "?") {
pushNewToList(arrOM, currOM[iMean]);
}
}
}
}
}
if (arrOM.length == 0) {
arrOM.push("?");
}
return arrOM;
}
//删除连音词
function edit_un_remove(parentId) {
edit_un_RemoveHtmlNode(parentId);
let xWord = gXmlBookDataBody.getElementsByTagName("word");
var count = 0;
//移除内存数据
for (iWord = xWord.length - 1; iWord >= 0; iWord--) {
let id = getNodeText(xWord[iWord], "id");
if (id.indexOf(parentId) == 0 && id != parentId) {
xWord[iWord].parentNode.removeChild(xWord[iWord]);
count++;
}
}
//移除根单词的类标志
var parentElement = document.getElementById("wb" + parentId);
if (parentElement) {
parentElement.classList.remove("un_parent");
parentElement.classList.remove("comp_parent");
}
user_wbw_push_word(parentId);
user_wbw_commit();
com_XmlAllWordRefresh();
modifyWordDetailByWordId(parentId);
var_dump(gLocal.gui.removeword + ": " + count);
}
function edit_un_RemoveHtmlNode(parentId) {
var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
for (wordIndex = 0; wordIndex < xAllWord.length; wordIndex++) {
if (getNodeText(xAllWord[wordIndex], "un") == parentId) {
var childId = getNodeText(xAllWord[wordIndex], "id");
var element = document.getElementById("wb" + childId);
element.parentNode.removeChild(element);
}
}
}
/*
拆连读词
*/
function edit_un_split(parentId) {
var xBlock = gXmlBookDataBody.getElementsByTagName("block");
var iWordCount = 0;
for (iBlock = 0; iBlock < xBlock.length; iBlock++) {
var xData = xBlock[iBlock].getElementsByTagName("data")[0];
xWord = xData.getElementsByTagName("word");
for (iWord = 0; iWord < xWord.length; iWord++) {
if (getNodeText(xWord[iWord], "id") == parentId) {
mType = getNodeText(xWord[iWord], "case").split("#")[0];
if (mType == ".un." || mType == ".comp.") {
nextElement = com_get_nextsibling(xWord[iWord]);
if (nextElement != null) {
//下一个元素存在
if (getNodeText(nextElement, "un") == parentId) {
//若有孩子則不进行任何处理,直接返回
return;
}
}
} else {
//若不是连读词則不进行任何处理,直接返回
return;
}
if (getNodeText(xWord[iWord], "mean") == "?") {
setNodeText(xWord[iWord], "mean", "_un_auto_mean_");
}
if (getNodeText(xWord[iWord], "om") == "?") {
setNodeText(xWord[iWord], "om", "_un_auto_factormean_");
}
var parentElement = document.getElementById("wb" + parentId);
if (parentElement) {
if (mType == ".un.") {
parentElement.classList.add("un_parent");
} else {
parentElement.classList.add("comp_parent");
}
}
var nextWordNodeId = getNodeText(xWord[iWord + 1], "id");
if (mType == ".un.") {
var org = "[+" + getNodeText(xWord[iWord], "org") + "+]";
} else {
var org = getNodeText(xWord[iWord], "org").replace(/\+/g, "+-+");
}
var sSubPali = org.split("+");
var orgReal = org.replace(/n\+/g, "ṃ+"); //智能識別結尾為n的拆分
orgReal = orgReal.replace(/ñ\+/g, "ṃ+"); //智能識別結尾為n的拆分
orgReal = orgReal.replace(/m\+/g, "ṃ+"); //智能識別結尾為n的拆分
orgReal = orgReal.replace(/d\+/g, "ṃ+"); //智能識別結尾為n的拆分
var sSubReal = orgReal.split("+");
for (iNewWord = 0; iNewWord < sSubPali.length; iNewWord++) {
var newNode = gXmlBookData.createElement("word");
setNodeText(newNode, "pali", sSubPali[iNewWord]);
var newGUID = parentId + "-" + iNewWord;
setNodeText(newNode, "id", newGUID);
setNodeText(newNode, "un", parentId);
let newPali = sSubReal[iNewWord].toLowerCase();
if (sSubPali[iNewWord] == "[") {
setNodeText(newNode, "real", "");
setNodeText(newNode, "case", ".un:begin.");
} else if (sSubPali[iNewWord] == "]") {
setNodeText(newNode, "real", "");
setNodeText(newNode, "case", ".un:end.");
} else {
setNodeText(newNode, "real", newPali); //real转换为小写
setNodeText(newNode, "case", "?");
}
let newMeaning = findFirstMeanInDict(newPali);
let newParts = findFirstPartInDict(newPali);
let newPartMean = findFirstPartMeanInDict(newPali);
let newCase = findFirstCaseInDict(newPali);
setNodeText(newNode, "mean", newMeaning);
setNodeText(newNode, "org", newParts);
setNodeText(newNode, "om", newPartMean);
setNodeText(newNode, "case", newCase);
if (iWord == xWord.length - 1) {
xData.insertBefore(newNode, null);
edit_un_AddNewHtmlNode(nextWordNodeId, sSubPali[iNewWord], newGUID, iWordCount + iNewWord + 1);
} else {
xData.insertBefore(newNode, xWord[iWord + iNewWord + 1]);
edit_un_AddNewHtmlNode(nextWordNodeId, sSubPali[iNewWord], newGUID, iWordCount + iNewWord + 1);
}
}
modifyWordDetailByWordId(parentId);
word_mouse_event(); //添加鼠标事件,每次都执行效率低以后需要修改
var_dump(gLocal.gui.unsplit + " " + gLocal.gui.ok);
user_wbw_push_word(parentId);
user_wbw_commit();
return;
}
iWordCount++;
}
}
}
//添加连音词拆分html块
function edit_un_AddNewHtmlNode(nextNodeId, strInsert, guid, id) {
let xWord = gXmlBookDataBody.getElementsByTagName("word");
let iWordIndex = getWordIndex(guid);
let parentId = guid.split("_")[0];
let parentElement = document.getElementById("wb" + parentId);
let element = document.getElementById("wb" + nextNodeId);
let htmlNewWord = renderWordBlock(xWord[iWordIndex]);
if (element) {
//下一个词存在。
$(element).before(htmlNewWord);
} else {
//下一个词不存在。
$(parentElement).append(htmlNewWord);
}
}
function file_export_html_validate_form(thisform) {
with (thisform) {
var tocstring = document.getElementById("content").innerHTML;
var suttastring = document.getElementById("sutta_text").innerHTML;
txt_toc.value = tocstring.replace(/onclick/g, "");
txt_sutta.value = suttastring.replace(/onclick/g, "");
return true;
}
}
function show_case_input(obj) {
if (obj.checked) {
document.getElementById("input_case").style.display = "block";
} else {
document.getElementById("input_case").style.display = "none";
}
}
function edit_tran_save() {
let eBlock;
switch (gTextEditMediaType) {
case "translate":
newText = document.getElementById("id_text_edit_area").value;
newText = newText.replace(/\n\n/g, " ");
newText = term_edit_to_std_str(newText);
setTranText(gEditorTranslateEditBlockId, newText);
eBlock = document.getElementById("id_tran_" + gEditorTranslateEditBlockId);
if (eBlock) {
eBlock.innerHTML = renderTranslateParBlockInnerById(gEditorTranslateEditBlockId);
term_updata_translation();
}
break;
case "note":
setNoteText(gEditorNoteEditBlockId, document.getElementById("id_text_edit_area").value);
newText = document.getElementById("id_text_edit_area").value;
newText = newText.replace(/\n/g, " ");
eBlock = document.getElementById("note_sen_" + gEditorNoteEditBlockId + "_0");
if (eBlock) {
eBlock.innerHTML = newText;
}
break;
case "heading":
var newHeadingInfo = new Object();
newHeadingInfo.level = document.getElementById("id_heading_edit_level").value;
newHeadingInfo.language = document.getElementById("id_text_edit_language").value;
newHeadingInfo.author = document.getElementById("id_text_edit_author").value;
newHeadingInfo.text = document.getElementById("id_text_edit_area").value;
setHeadingInfo(gEditorHeadingEditBlockId, newHeadingInfo);
newText = document.getElementById("id_text_edit_area").value;
newText = newText.replace(/\n/g, " ");
eBlock = document.getElementById("id_heading_text_" + gEditorHeadingEditBlockId);
if (eBlock) {
eBlock.innerHTML = newText;
}
updataToc();
break;
case "new_heading":
var newHeadingInfo = new Object();
newHeadingInfo.book = gEditorNewHeadingBookId;
newHeadingInfo.paragraph = gEditorNewHeadingPar;
newHeadingInfo.level = document.getElementById("id_heading_edit_level").value;
newHeadingInfo.language = document.getElementById("id_text_edit_language").value;
newHeadingInfo.author = document.getElementById("id_text_edit_author").value;
newHeadingInfo.text = document.getElementById("id_text_edit_area").value;
newHeadBlock(newHeadingInfo);
updataToc();
break;
}
document.getElementById("id_text_edit_form").style.display = "none";
Dragging(getDraggingDialog).disable();
}
function edit_tran_cancal() {
document.getElementById("id_text_edit_form").style.display = "none";
Dragging(getDraggingDialog).disable();
}
function edit_tran_delete() {
switch (gTextEditMediaType) {
case "heading":
xBlock = gXmlBookDataBody.getElementsByTagName("block");
for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
mId = getNodeText(xmlParInfo, "id");
type = getNodeText(xmlParInfo, "type");
if (mId == gEditorHeadingEditBlockId) {
gXmlBookDataBody.removeChild(xBlock[iBlock]);
return;
}
}
htmlNode = document.getElementById("id_heading_" + gEditorHeadingEditBlockId);
if (htmlNode) {
htmlNode.parentNode.removeChild(htmlNode);
}
updataToc();
break;
}
document.getElementById("id_text_edit_form").style.display = "none";
}
function editor_translate_edit(id) {
gTextEditMediaType = "translate";
gEditorTranslateEditBlockId = id;
var headingObj = getTranslateText(id);
document.getElementById("id_text_edit_language").value = headingObj.language;
document.getElementById("id_text_edit_author").value = headingObj.author;
document.getElementById("id_text_edit_area").value = term_std_str_to_edit(headingObj.text);
//document.getElementById("id_heading_edit_level").style.display="none";
document.getElementById("id_text_edit_delete").style.display = "none";
document.getElementById("id_text_edit_form").style.display = "block";
Dragging(getDraggingDialog).enable();
}
function editor_note_edit(id) {
gTextEditMediaType = "note";
gEditorNoteEditBlockId = id;
var tranText = getNoteText(id);
document.getElementById("id_text_edit_area").value = tranText;
document.getElementById("id_heading_edit_level").style.display = "none";
document.getElementById("id_text_edit_delete").style.display = "none";
document.getElementById("id_text_edit_form").style.display = "block";
}
function getNoteText(id) {
xBlock = gXmlBookDataBody.getElementsByTagName("block");
for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
mId = getNodeText(xmlParInfo, "id");
type = getNodeText(xmlParInfo, "type");
if (mId == id) {
xmlParDataSen = xmlParData.getElementsByTagName("sen");
var currText = "";
for (iSen = 0; iSen < xmlParDataSen.length; iSen++) {
currText += getNodeText(xmlParDataSen[iSen], "text");
}
return currText;
}
}
return "";
}
function editor_heading_add_new(inBook, inPar) {
document.getElementById("id_text_edit_caption_text").innerHTML = gLocal.gui.newheading;
gTextEditMediaType = "new_heading";
gEditorHeadingEditBlockId = -1;
gEditorNewHeadingBookId = inBook;
gEditorNewHeadingPar = inPar;
document.getElementById("id_heading_edit_level").value = "1";
document.getElementById("id_text_edit_language").value = "pali";
document.getElementById("id_text_edit_author").value = config_user_name;
document.getElementById("id_text_edit_area").value = "";
document.getElementById("id_heading_edit_level").style.display = "flex";
document.getElementById("id_text_edit_delete").style.display = "none";
document.getElementById("id_text_edit_form").style.display = "block";
}
function editor_heading_edit(id) {
document.getElementById("id_text_edit_caption_text").innerHTML = "Heading";
gTextEditMediaType = "heading";
gEditorHeadingEditBlockId = id;
var headingObj = getHeadingText(id);
document.getElementById("id_heading_edit_level").value = headingObj.level;
document.getElementById("id_text_edit_language").value = headingObj.language;
document.getElementById("id_text_edit_author").value = headingObj.author;
document.getElementById("id_text_edit_area").value = headingObj.text;
document.getElementById("id_heading_edit_level").style.display = "flex";
document.getElementById("id_text_edit_delete").style.display = "inline";
document.getElementById("id_text_edit_form").style.display = "block";
}
function getHeadingText(id) {
xBlock = gXmlBookDataBody.getElementsByTagName("block");
for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
mId = getNodeText(xmlParInfo, "id");
type = getNodeText(xmlParInfo, "type");
if (mId == id) {
var obj = new Object();
obj.text = getNodeText(xmlParData, "text");
obj.level = getNodeText(xmlParInfo, "level");
obj.language = getNodeText(xmlParInfo, "language");
obj.author = getNodeText(xmlParInfo, "author");
return obj;
}
}
return null;
}
function setHeadingInfo(id, objValue) {
xBlock = gXmlBookDataBody.getElementsByTagName("block");
for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
blockId = getNodeText(xmlParInfo, "id");
if (blockId == id) {
newText = objValue.text.replace(/\n/g, " ");
setNodeText(xmlParData, "text", newText);
setNodeText(xmlParInfo, "level", objValue.level);
setNodeText(xmlParInfo, "author", objValue.author);
setNodeText(xmlParInfo, "language", objValue.language);
return;
}
}
}
function editor_openChannal(book, para, channal) {
$.post(
"../doc/load_channal_para.php",
{
book: book,
para: para,
channal: channal,
},
function (data) {
editor_parse_doc_xml(data);
}
);
}
//open project begin
var editor_openProjectXmlHttp = null;
function editor_openProject(strFileId, filetype) {
if (window.XMLHttpRequest) {
// code for IE7, Firefox, Opera, etc.
editor_openProjectXmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// code for IE6, IE5
editor_openProjectXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (editor_openProjectXmlHttp != null) {
var d = new Date();
var strLink = "";
if (filetype == "db") {
strLink = "./project_load_db.php?id=" + strFileId;
} else {
strLink = "./project_load.php?id=" + strFileId;
}
editor_openProjectXmlHttp.onreadystatechange = editor_open_project_serverResponse;
editor_openProjectXmlHttp.open("GET", strLink, true);
editor_openProjectXmlHttp.send(null);
} else {
alert("Your browser does not support XMLHTTP.");
}
}
function editor_parse_doc_xml(xmlText) {
if (window.DOMParser) {
parser = new DOMParser();
gXmlBookData = parser.parseFromString(xmlText, "text/xml");
} else {
// Internet Explorer
gXmlBookData = new ActiveXObject("Microsoft.XMLDOM");
gXmlBookData.async = "false";
gXmlBookData.loadXML(xmlText);
}
if (gXmlBookData == null) {
alert("error:can not load Project. xml obj is null.");
return;
}
projectDataParse(gXmlBookData);
doc_file_info_get();
doc_info_change("accese_time", "");
//消息系统初始化
let msg_id = doc_head("msg_db_max_id");
if (msg_id != "" && !isNaN(msg_id)) {
msg_init(msg_id);
} else {
msg_init(1);
}
updataDocParagraphList();
updataToc();
//渲染数据块
blockShow(0);
//refreshResource();
editro_layout_loadStyle();
}
function editor_open_project_serverResponse() {
// 4 = "loaded"
if (editor_openProjectXmlHttp.readyState == 4) {
if (editor_openProjectXmlHttp.status == 200) {
// 200 = "OK"
var xmlText = editor_openProjectXmlHttp.responseText;
editor_parse_doc_xml(xmlText);
} else {
$("#sutta_text").html("Problem retrieving data:" + editor_openProjectXmlHttp.statusText);
}
}
}
//数据块显示
function blockShow(id) {
xmlBlock = gXmlBookDataBody.getElementsByTagName("block");
if (id < xmlBlock.length) {
insertBlockToHtml(xmlBlock[id]);
t = setTimeout("blockShow(" + (id + 1) + ")", 1);
progress = id / xmlBlock.length; //计算比例
strProgress = (progress * 100).toFixed(0) + "%"; //计算百分比,保留1位小数
document.getElementById("load_progress_num").innerHTML = strProgress; //显示计算结果
loading.setAttribute("stroke-dashoffset", 255 - progress * 140 + "%");
} else {
//文档载入完毕
strProgress = "OK";
loading.setAttribute("stroke-dashoffset", "0%");
document.getElementById("load_progress_num").innerHTML = strProgress;
setTimeout("hiddenProgressDiv()", 1000);
term_array_updata();
//单词块响应鼠标消息
word_mouse_event();
//刷新译文中的术语
term_updata_translation();
//自动将逐词译段落切分为句子
layout_wbw_auto_cut();
}
}
function word_mouse_event() {
$(".word").mouseenter(on_word_mouse_enter);
$(".word").mouseleave(on_word_mouse_leave);
}
var _curr_mouse_enter_wordid = "";
//单词快鼠标退出
function on_word_mouse_leave() {
$("#mean_" + _curr_mouse_enter_wordid).html("loading");
$("#parts_" + _curr_mouse_enter_wordid).html("loading");
$("#partmean_" + _curr_mouse_enter_wordid).html("loading");
$("#gramma_" + _curr_mouse_enter_wordid).html("loading");
relation_link_hide();
if (gRelationSelectWordBegin) {
//$(this).css(gCurrWordDivBorder);
$(this).css("border", "none");
}
gCurrMoseEnterWordId = "";
}
//单词块鼠标进入事件
var gCurrLookupWord = "";
//save the broder style when mouse leave recover
var gCurrWordDivBorder = "none";
var gWordHeadBarVisible = false;
var gCurrMoseEnterWordId = "";
function on_word_mouse_enter() {
var wordid = $(this).attr("id");
if (gCurrMoseEnterWordId == wordid) {
return;
}
gCurrMoseEnterWordId = wordid;
//remove the 'wb' in string head
_curr_mouse_enter_wordid = wordid.substr(2);
relation_link_show(_curr_mouse_enter_wordid);
var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
var iIndex = getWordIndex(_curr_mouse_enter_wordid);
if (iIndex >= 0) {
var paliword = getNodeText(xAllWord[iIndex], "real");
//如果内存里有这个词,渲染单词下拉菜单
if (mDict[paliword]) {
render_word_menu(_curr_mouse_enter_wordid);
} else {
//如果内存里没有这个词,查字典
if (!mDictQueue[paliword]) {
if (gCurrLookupWord != paliword) {
mDictQueue[paliword] = 1;
gCurrLookupWord = paliword;
$.ajax({
type: "GET",
url: "./dict_find_one.php",
dataType: "json",
data: "word=" + paliword,
}).done(function (data) {
inline_dict_parse(data);
render_word_menu(_curr_mouse_enter_wordid);
}).fail(function(jqXHR, textStatus, errorThrown){
ntf_show(textStatus);
switch (textStatus) {
case "timeout":
break;
case "error":
switch (jqXHR.status) {
case 404:
break;
case 500:
break;
default:
break;
}
break;
case "abort":
break;
case "parsererror":
console.log("parsererror",jqXHR.responseText);
break;
default:
break;
}
});
}
}
}
}
//如果显示relation
if (gRelationSelectWordBegin) {
gCurrWordDivBorder = $(this).css("border");
$(this).css("border", "1px solid #65c5bd");
let eHeadBar = document.getElementById("word_tool_bar");
if (eHeadBar) {
eHeadBar.style.display = "block";
}
let eWord = document.getElementById("ws_" + _curr_mouse_enter_wordid);
let eWordHead = document.getElementById("whead_" + _curr_mouse_enter_wordid);
eWord.insertBefore(eHeadBar, eWordHead);
gWordHeadBarVisible = true;
}
}
//解析字典数据
function inline_dict_parse(data) {
/*
if (data == "") {
return;
}
try {
var worddata = JSON.parse(data);
} catch (e) {
console.error(e + " data:" + data);
return;
}
*/
let worddata = data;
if (worddata.length > 0) {
//如果有数据 解析查询数据
let spell = new Array();
for (const iterator of worddata) {
if (mDict[iterator.pali]) {
spell[iterator.pali] = 1;
} else {
spell[iterator.pali] = 0;
}
}
for (const key in spell) {
if (spell.hasOwnProperty(key)) {
const element = spell[key];
if (element == 0) {
mDict[key] = new Array();
}
}
}
for (const iterator of worddata) {
if (spell[iterator.pali] == 0) {
mDict[iterator.pali].push(iterator);
mDictQueue[iterator.pali] = 0;
}
}
let currWordParent = new Array();
if (mDict[gCurrLookupWord]) {
for (const iterator of mDict[gCurrLookupWord]) {
if (typeof iterator.parent == "string") {
if (iterator.parent.length > 1) {
currWordParent[iterator.parent] = 1;
}
}
}
if (currWordParent.length == 0) {
//
inline_dict_auto_case(gCurrLookupWord);
}
} else {
//如果没有查到数据 添加自动格位
mDict[gCurrLookupWord] = new Array();
inline_dict_auto_case(gCurrLookupWord);
}
} else {
//如果没有查到数据 添加自动格位
mDict[gCurrLookupWord] = new Array();
inline_dict_auto_case(gCurrLookupWord);
}
}
//添加自动格位数据到内存字典
function inline_dict_auto_case(paliword) {
for (const it of gCaseTable) {
if (it.type != ".v.") {
let sEnd2 = gCurrLookupWord.slice(0 - it.end2.length);
if (sEnd2 == it.end2) {
let wordParent = gCurrLookupWord.slice(0, 0 - it.end2.length) + it.end1;
let newWord = new Object();
newWord.pali = gCurrLookupWord;
newWord.type = it.type;
newWord.gramma = it.gramma;
newWord.parent = wordParent;
newWord.mean = "";
newWord.note = "";
newWord.parts = wordParent + "+[" + it.end2 + "]";
newWord.partmean = "";
newWord.confidence = it.confidence;
mDict[paliword].push(newWord);
}
}
}
}
function getAutoEnding(pali, base) {
let ending = Array();
for (let i in gCaseTable) {
if (gCaseTable[i].type != ".v.") {
let sEnd2 = pali.slice(0 - gCaseTable[i].end2.length);
if (sEnd2 == gCaseTable[i].end2) {
let wordParent = pali.slice(0, 0 - gCaseTable[i].end2.length) + gCaseTable[i].end1;
if (base == wordParent) {
ending[gCaseTable[i].end2] = 1;
}
}
}
}
return ending;
}
//查字典结果
function on_dict_lookup(data, status) {
//解析查询数据
inline_dict_parse(data);
render_word_menu(_curr_mouse_enter_wordid);
}
function render_word_menu(id) {
$("#word_mean").html(render_word_menu_mean(id));
$("#word_parts").html(render_word_menu_parts(id));
$("#word_partmean").html(render_word_menu_partmean(id));
$("#word_gramma").html(render_word_menu_gramma(id));
show_word_menu_mean(id);
show_word_menu_parts(id);
show_word_menu_partmean(id);
show_word_menu_gramma(id);
}
//根据单词长度排序 短词优先
function sortWordLen(a, b) {
return a.length - b.length;
}
//渲染单词意思下拉菜单
function render_word_menu_mean(id, target = 0) {
var output = "";
var word_real = doc_word("#" + id).val("real");
var word_parent = doc_word("#" + id).val("parent");
var arrParent = new Array();
//检索语基
if (word_parent.length > 0) {
//arrParent[word_parent]=1;
}
if (mDict[word_real]) {
for (var i in mDict[word_real]) {
if (mDict[word_real][i].parent && mDict[word_real][i].parent.length > 0) {
if (word_parent != mDict[word_real][i].parent && word_real != mDict[word_real][i].parent) {
arrParent[mDict[word_real][i].parent] = 1;
}
}
}
}
var sWord = new Array();
for (var sParent in arrParent) {
sWord.push(sParent);
}
//按照base长度升序
sWord.sort(sortWordLen);
if (word_parent.length > 0) {
sWord.unshift(word_parent);
}
sWord.unshift(word_real);
output +=
"";
output += '
';
for (var iWord in sWord) {
var pali = sWord[iWord];
//该词字典数量
var dict_count = 0;
if (mDict[pali]) {
for (iCount in mDict[pali]) {
if (mDict[pali][iCount].mean && mDict[pali][iCount].mean.length > 0) {
dict_count++;
}
}
}
if (pali == word_parent) {
output += '
";
var currWordMean = new Array();
if (mDict[pali]) {
for (var i in mDict[pali]) {
var objMean = new Object();
objMean.type = "";
objMean.gramma = "";
objMean.dict_name = "";
objMean.mean = "";
if (mDict[pali][i].type) {
objMean.type = mDict[pali][i].type;
}
if (mDict[pali][i].gramma) {
objMean.gramma = mDict[pali][i].gramma;
}
if (mDict[pali][i].dict_name) {
objMean.dict_name = mDict[pali][i].dict_name;
}
if (mDict[pali][i].mean) {
objMean.mean = mDict[pali][i].mean;
}
if (objMean.mean.length > 0) {
_mean_push(currWordMean, objMean);
}
}
}
for (var i in currWordMean) {
var htmlMean = "";
var wId = id;
output += "";
output +=
"
";
//base parts 信息
for (let sParent in arrParent) {
if (mDict[sParent]) {
let arrParts = new Array();
for (let iWord in mDict[sParent]) {
if (mDict[sParent][iWord].parts && mDict[sParent][iWord].parts != "") {
arrParts[mDict[sParent][iWord].parts] = 1;
}
}
if (arrParts.length > 0) {
output += '