Преглед изворни кода

Merge pull request #53 from visuddhinanda/master

用户指南编纂
Bhikkhu-Kosalla пре 5 година
родитељ
комит
df179005fb

+ 17 - 2
app/guide/guide.css

@@ -15,6 +15,14 @@ guide{
 guide:hover  .guide_contence{
     display:inline-block;
 }
+guide ul{
+    list-style-type:disc;
+    padding-left:20px;
+}
+guide ol{
+    list-style-type:decimal;
+    padding-left:20px;
+}
 .guide_contence {
     border-top: 7px;
     position: absolute;
@@ -23,13 +31,21 @@ guide:hover  .guide_contence{
     top:100%;
     width: max-content;
     min-width:18em;
+    max-width: calc(30vw);
     min-height:15em;
     padding:10px;
-    background-color: var(--tool-bg-color);
+    background-color: var(--drop-bg-color);
     box-shadow: 0 0 10px rgba(0,0,0,0.15);
     font-size:10pt;
     text-align:left;
     display:none;
+
+    margin: 0.3em;
+    margin: -1px 0px;
+    box-shadow: 0px 3px 13px 0px var(--shadow-color);
+    color: var(--main-color);
+    z-index: 200;
+    padding: 0 0.2em;
 }
 /*
 .guide_contence:after {
@@ -62,7 +78,6 @@ guide:hover  .guide_contence{
     font-weight:700;
 }
 .guide_contence  li{
-    display: block;
     white-space: unset;
     word-break: normal;
 }

+ 5 - 5
app/guide/guide_icon.svg

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="14px" height="14px" viewBox="0 0 14 14" style="enable-background:new 0 0 14 14;" xml:space="preserve">
-<path d="M7,0C3.134,0,0,3.134,0,7s3.134,7,7,7s7-3.134,7-7S10.866,0,7,0z M7,2c0.552,0,1,0.447,1,1S7.552,4,7,4S6,3.553,6,3
-	S6.448,2,7,2z M9,11H5v-1h1V6H5V5h3v5h1V11z"/>
-</svg>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
+	y="0px" width="14px" height="14px" viewBox="0 0 14 14" style="fill: #6baaff;" xml:space="preserve">
+	<path d="M7,0C3.134,0,0,3.134,0,7s3.134,7,7,7s7-3.134,7-7S10.866,0,7,0z M7,2c0.552,0,1,0.447,1,1S7.552,4,7,4S6,3.553,6,3
+	S6.448,2,7,2z M9,11H5v-1h1V6H5V5h3v5h1V11z" />
+</svg>

+ 12 - 8
app/studio/editor.php

@@ -168,6 +168,9 @@ else{$currDevice="computer";}
 		width: 1em;
 		margin-left: -1em;
 	}
+	guide {
+		margin: 0 15px 0 -8px;
+	}
 	</style>
 	
 	<!--左侧工具栏-->
@@ -583,8 +586,8 @@ foreach($plugin_list as $info){
 			<div id="modify_detaile">
 				<!-- 意思 -->
 				<div class="edit_detail_p">
+					<guide gid="studio_general_meaning"></guide>
 					<span class="edit_detail_span"><?php echo $_local->gui->meaning;?>:</span>
-					<guide gid="general_meaning"></guide>
 					<input type="text" id="input_meaning" class="input_bar" value="" name="in_meaning">
 					<div class="case_dropdown">
 						<svg class="edit_icon">
@@ -596,8 +599,8 @@ foreach($plugin_list as $info){
 				</div>
 				<!-- 拆分 -->
 				<div class="edit_detail_p">
+					<guide gid="studio_break_down"></guide>
 					<span class="edit_detail_span"><?php echo $_local->gui->part;?>:</span>
-					<guide gid="break_down"></guide>
 					<input type="text" id="input_org" class="input_bar" value="" name="in_org" onkeydown="match_key(this)" onkeyup="unicode_key(this) " onchange="input_org_change()">
 					<div class="case_dropdown">
 						<svg class="edit_icon">
@@ -609,15 +612,15 @@ foreach($plugin_list as $info){
 				</div>
 				<!-- 拆分意思 -->
 				<div class="edit_detail_p" >
+					<guide gid="studio_part_meaning"></guide>
 					<span class="edit_detail_span"><?php echo $_local->gui->partmeaning;?>:</span>
-					<guide gid="part_meaning"></guide>
 					<div id="input_org_select" class="input_bar" style="width:80%; display:inline-flex;"></div>
 					<input type="text" id="input_om" class="input_bar" value="" name="in_om" onblur="input_org_switch('input_om','input_org_select')">
 				</div>
 				<!-- 格位 -->
 				<div class="edit_detail_p">
-					<span class="edit_detail_span"><?php echo $_local->gui->gramma;?>:</span>				
 					<guide gid="grammar_abbr"></guide>
+					<span class="edit_detail_span"><?php echo $_local->gui->gramma;?>:</span>
 					<p><input type="text" id="input_case" value="" name="in_case" onblur="input_org_switch('input_case','input_select_case')" ></p>
 					<div id="input_select_case" class="input_bar" style="width:80%; display:inline-flex;">
 						<div style="display:inline-flex;">
@@ -641,6 +644,7 @@ foreach($plugin_list as $info){
 				</div>
 				<!-- 语基 -->
 				<div class="edit_detail_p">
+					<guide gid="studio_parent"></guide>
 				<script>
 					function edit_show_prt_prt(obj){
 						let o = obj.getElementsByTagName("svg");
@@ -665,7 +669,6 @@ foreach($plugin_list as $info){
 					</svg>
 				</span>
 					<span class="edit_detail_span"><?php echo $_local->gui->parent;?>:</span>
-					<guide gid="studio_parent"></guide>
 					<input type="text" id="id_text_parent" class="input_bar" onkeydown="match_key(this)" onkeyup="unicode_key(this)" />
 					<div class="case_dropdown">
 						<svg class="edit_icon">
@@ -677,13 +680,14 @@ foreach($plugin_list as $info){
 				</div>
 				<!-- 词源 -->
 				<div id="edit_detail_prt_prt" class="edit_detail_p" style="display:none;">
+				<guide gid="studio_parent2"></guide>
 					<div class="case_dropdown" style="padding-left: 2em;width: 6em;display: flex;">
 						<span style="padding-right: 4px;">┕</span>
 						<span id="parent_grammar">.ppa.</span>
 						<div id="word_mdf_prt_prt_grammar_dropdown" class="case_dropdown-content">
-							<a onclick="edit_parent_grammar_changed(this)">pp.</a>
-							<a onclick="edit_parent_grammar_changed(this)">pr.p.</a>				
-							<a onclick="edit_parent_grammar_changed(this)">fpp.</a>
+							<a onclick="edit_parent_grammar_changed(this)">.pp.</a>
+							<a onclick="edit_parent_grammar_changed(this)">.prp.</a>				
+							<a onclick="edit_parent_grammar_changed(this)">.fpp.</a>
 						</div>
 					</div>
 					<input type="text" id="id_text_prt_prt" class="input_bar" onkeydown="match_key(this)" onkeyup="unicode_key(this)" />

+ 466 - 467
app/studio/language/default.js

@@ -1,483 +1,482 @@
-var local_grammastr=[
-{ "id":"$" , "value":"·" },
-{ "id":"$" , "value":"·" },
-{ "id":"$" , "value":"·" },
-{ "id":".nt." , "value":"na" },
-{ "id":".m." , "value":"pu" },
-{ "id":".f." , "value":"thī" },
-{ "id":".sg." , "value":"eka" },
-{ "id":".pl." , "value":"bahu" },
-{ "id":".nom." , "value":"paccatta" },//p15.873-875
-{ "id":".acc." , "value":"upayoga" },
-{ "id":".inst." , "value":"karaṇa" },
-{ "id":".dat." , "value":"sampadāna" },
-{ "id":".abl." , "value":"nissakka" },
-{ "id":".gen." , "value":"sāmi" },
-{ "id":".loc." , "value":"bhumma" },
-{ "id":".voc." , "value":"āmantana" },
-//p15.666
-{ "id":".imp." , "value":"āṇatti" },
-{ "id":".cond." , "value":"parikappa" },
-{ "id":".opt." , "value":"parikappa" },
-{ "id":".pres." , "value":"paccuppanna" },
-{ "id":".aor." , "value":"atīta" },
-{ "id":".fut." , "value":"anāgata" },
-{ "id":".med." , "value":"attano" },
-{ "id":".1p." , "value":"amha" },
-{ "id":".2p." , "value":"tumha" },
-{ "id":".3p." , "value":"ta" },
-{ "id":".ger." , "value":"Ger." },
-{ "id":".abs." , "value":"Abs." },
-{ "id":".inf." , "value":"Inf." },
-{ "id":".pf." , "value":"pf." },
-{ "id":".act." , "value":"act." },
-{ "id":".refl." , "value":"refl." },
-{ "id":".prp." , "value":"prp." },
-{ "id":".prpa." , "value":"prpa." },
-{ "id":".prpp." , "value":"prpp." },
-{ "id":".pp." , "value":"pp." },
-{ "id":".ppa." , "value":"ppa." },
-{ "id":".ppp." , "value":"ppp." },
-{ "id":".futp." , "value":"futp." },
-{ "id":".fpa." , "value":"fpa." },
-{ "id":".fpp." , "value":"fpp." },
-{ "id":".grd." , "value":"Grd." },
-{ "id":".pass." , "value":"Pass." },
-{ "id":".caus." , "value":"Caus." },
-{ "id":".desid." , "value":"desid." },
-{ "id":".intens." , "value":"intens." },
-{ "id":".denom." , "value":"denom." },
-//type
-{ "id":".n." , "value":"nāma" },
-{ "id":".v." , "value":"kriyā" },
-{ "id":".ind." , "value":"bya" },
-{ "id":".v:ind." , "value":"kriyā:bya" },
-{ "id":".adv." , "value":"karaṇattha" },
-{ "id":".adj." , "value":"ti" },
-{ "id":".ti." , "value":"ti" },
-
-{ "id":".num." , "value":"num." },
-{ "id":".pron." , "value":"pron." },
-{ "id":".v:base." , "value":"v:base." },
-{ "id":".ti:base." , "value":"n.a:base." },
-{ "id":".adj:base." , "value":"adj:base." },
-{ "id":".n:base." , "value":"n:base." },
-{ "id":".pron:base." , "value":"pron:base." },
-{ "id":".pron.per." , "value":"pron.per." },
-{ "id":".pron.demon." , "value":"pron.demon." },
-{ "id":".pron.rel." , "value":"pron.rel." },
-{ "id":".pron.interr." , "value":"pron.interr." },
-{ "id":".pron.indef." , "value":"pron.indef." },
-{ "id":".conj." , "value":"conj." },
-{ "id":".prep." , "value":"prep." },
-{ "id":".interj." , "value":"interj." },
-{ "id":".comp." , "value":"comp." },
-{ "id":".pre." , "value":"prefix." },
-{ "id":".part." , "value":"part" },
-{ "id":".root." , "value":"root." },
-{ "id":".suf." , "value":"suffix." },
-{ "id":".end." , "value":"case end." },
-{ "id":"_un_auto_factormean_" , "value":"—Auto—" },
-{ "id":"_un_auto_mean_" , "value":"&nbsp;× × ×&nbsp;" },
-{ "id":".un." , "value":"slur." }
+var local_grammastr = [
+    { "id": "$", "value": "·" },
+    { "id": "$", "value": "·" },
+    { "id": "$", "value": "·" },
+    { "id": ".nt.", "value": "na" },
+    { "id": ".m.", "value": "pu" },
+    { "id": ".f.", "value": "thī" },
+    { "id": ".sg.", "value": "eka" },
+    { "id": ".pl.", "value": "bahu" },
+    { "id": ".nom.", "value": "paccatta" },//p15.873-875
+    { "id": ".acc.", "value": "upayoga" },
+    { "id": ".inst.", "value": "karaṇa" },
+    { "id": ".dat.", "value": "sampadāna" },
+    { "id": ".abl.", "value": "nissakka" },
+    { "id": ".gen.", "value": "sāmi" },
+    { "id": ".loc.", "value": "bhumma" },
+    { "id": ".voc.", "value": "āmantana" },//p15.666
+    { "id": ".imp.", "value": "āṇatti" },
+    { "id": ".cond.", "value": "parikappa" },
+    { "id": ".opt.", "value": "parikappa" },
+    { "id": ".pres.", "value": "paccuppanna" },
+    { "id": ".aor.", "value": "atīta" },
+    { "id": ".fut.", "value": "anāgata" },
+    { "id": ".med.", "value": "attano" },
+    { "id": ".1p.", "value": "amha" },
+    { "id": ".2p.", "value": "tumha" },
+    { "id": ".3p.", "value": "ta" },
+    { "id": ".ger.", "value": "Ger." },
+    { "id": ".abs.", "value": "Abs." },
+    { "id": ".inf.", "value": "Inf." },
+    { "id": ".pf.", "value": "pf." },
+    { "id": ".act.", "value": "act." },
+    { "id": ".refl.", "value": "refl." },
+    { "id": ".prp.", "value": "prp." },
+    { "id": ".prpa.", "value": "prpa." },
+    { "id": ".prpp.", "value": "prpp." },
+    { "id": ".pp.", "value": "pp." },
+    { "id": ".ppa.", "value": "ppa." },
+    { "id": ".ppp.", "value": "ppp." },
+    { "id": ".futp.", "value": "futp." },
+    { "id": ".fpa.", "value": "fpa." },
+    { "id": ".fpp.", "value": "fpp." },
+    { "id": ".grd.", "value": "Grd." },
+    { "id": ".pass.", "value": "Pass." },
+    { "id": ".caus.", "value": "Caus." },
+    { "id": ".desid.", "value": "desid." },
+    { "id": ".intens.", "value": "intens." },
+    { "id": ".denom.", "value": "denom." },
+    //type
+    { "id": ".n.", "value": "nāma" },
+    { "id": ".v.", "value": "kriyā" },
+    { "id": ".ind.", "value": "bya" },
+    { "id": ".v:ind.", "value": "kriyā:bya" },
+    { "id": ".adv.", "value": "karaṇattha" },
+    { "id": ".adj.", "value": "ti" },
+    { "id": ".ti.", "value": "ti" },
+
+    { "id": ".num.", "value": "num." },
+    { "id": ".pron.", "value": "pron." },
+    { "id": ".v:base.", "value": "v:base." },
+    { "id": ".ti:base.", "value": "n.a:base." },
+    { "id": ".adj:base.", "value": "adj:base." },
+    { "id": ".n:base.", "value": "n:base." },
+    { "id": ".pron:base.", "value": "pron:base." },
+    { "id": ".pron.per.", "value": "pron.per." },
+    { "id": ".pron.demon.", "value": "pron.demon." },
+    { "id": ".pron.rel.", "value": "pron.rel." },
+    { "id": ".pron.interr.", "value": "pron.interr." },
+    { "id": ".pron.indef.", "value": "pron.indef." },
+    { "id": ".conj.", "value": "conj." },
+    { "id": ".prep.", "value": "prep." },
+    { "id": ".interj.", "value": "interj." },
+    { "id": ".comp.", "value": "comp." },
+    { "id": ".pre.", "value": "prefix." },
+    { "id": ".part.", "value": "part" },
+    { "id": ".root.", "value": "root." },
+    { "id": ".suf.", "value": "suffix." },
+    { "id": ".end.", "value": "case end." },
+    { "id": "_un_auto_factormean_", "value": "—Auto—" },
+    { "id": "_un_auto_mean_", "value": "&nbsp;× × ×&nbsp;" },
+    { "id": ".un.", "value": "slur." }
 ];
 
-var local_type_str=[
-{ "id":".n." , "value":"nāma" },
-{ "id":".v." , "value":"kriyā" },
-{ "id":".ind." , "value":"bya" },
-{ "id":".v:ind." , "value":"kriyā:bya" },
-{ "id":".adv." , "value":"karaṇattha" },
-{ "id":".adj." , "value":"ti" },
-{ "id":".ti." , "value":"ti" },
-
-{ "id":".pron." , "value":"pron." },
-{ "id":".num." , "value":"num." },
-{ "id":".un." , "value":"sandhi" },
-{ "id":".comp." , "value":"samāsa" },
-{ "id":".pron:base." , "value":"pron:base." },
-{ "id":".adj:base." , "value":"adj:base." },
-{ "id":".n:base." , "value":"n:base." },
-{ "id":".ti:base." , "value":"ti:base." },
-{ "id":".num:base." , "value":"num:base." },
-{ "id":".pre." , "value":"prefix." },
-{ "id":".root." , "value":"root." },
-{ "id":".suf." , "value":"suffix." },
-{ "id":".end." , "value":"case end." },
-{ "id":".v:base." , "value":"v:base." }
+var local_type_str = [
+    { "id": ".n.", "value": "nāma" },
+    { "id": ".v.", "value": "kriyā" },
+    { "id": ".ind.", "value": "bya" },
+    { "id": ".v:ind.", "value": "kriyā:bya" },
+    { "id": ".adv.", "value": "karaṇattha" },
+    { "id": ".adj.", "value": "ti" },
+    { "id": ".ti.", "value": "ti" },
+
+    { "id": ".pron.", "value": "pron." },
+    { "id": ".num.", "value": "num." },
+    { "id": ".un.", "value": "sandhi" },
+    { "id": ".comp.", "value": "samāsa" },
+    { "id": ".pron:base.", "value": "pron:base." },
+    { "id": ".adj:base.", "value": "adj:base." },
+    { "id": ".n:base.", "value": "n:base." },
+    { "id": ".ti:base.", "value": "ti:base." },
+    { "id": ".num:base.", "value": "num:base." },
+    { "id": ".pre.", "value": "prefix." },
+    { "id": ".root.", "value": "root." },
+    { "id": ".suf.", "value": "suffix." },
+    { "id": ".end.", "value": "case end." },
+    { "id": ".v:base.", "value": "v:base." }
 ];
 
-var local_formula=[
-{ "id":".pl.$.abl." , "value":"~" },
-{ "id":"$.pl.$.abl." , "value":"~" },
-{ "id":".1p.$.pl.$.abl." , "value":"~" },
-{ "id":".1p.$.pl.$.abl." , "value":"~" },
-{ "id":".m.$.pl.$.abl." , "value":"~" },
-{ "id":".nt.$.pl.$.abl." , "value":"~" },
-{ "id":".f.$.pl.$.abl." , "value":"~" },
-{ "id":".pl.$.acc." , "value":"~" },
-{ "id":"$.pl.$.acc." , "value":"~" },
-{ "id":".1p.$.pl.$.acc." , "value":"~" },
-{ "id":".1p.$.pl.$.acc." , "value":"~" },
-{ "id":".m.$.pl.$.acc." , "value":"~" },
-{ "id":".nt.$.pl.$.acc." , "value":"~" },
-{ "id":".f.$.pl.$.acc." , "value":"~" },
-{ "id":".pl.$.dat." , "value":"~" },
-{ "id":"$.pl.$.dat." , "value":"~" },
-{ "id":".1p.$.pl.$.dat." , "value":"~" },
-{ "id":".1p.$.pl.$.dat." , "value":"~" },
-{ "id":".m.$.pl.$.dat." , "value":"~" },
-{ "id":".nt.$.pl.$.dat." , "value":"~" },
-{ "id":".f.$.pl.$.dat." , "value":"~" },
-{ "id":".pl.$.gen." , "value":"~" },
-{ "id":"$.pl.$.gen." , "value":"~" },
-{ "id":".1p.$.pl.$.gen." , "value":"~" },
-{ "id":".1p.$.pl.$.gen." , "value":"~" },
-{ "id":".m.$.pl.$.gen." , "value":"~" },
-{ "id":".nt.$.pl.$.gen." , "value":"~" },
-{ "id":".f.$.pl.$.gen." , "value":"~" },
-{ "id":".pl.$.inst." , "value":"~" },
-{ "id":"$.pl.$.inst." , "value":"~" },
-{ "id":".1p.$.pl.$.inst." , "value":"~" },
-{ "id":".1p.$.pl.$.inst." , "value":"~" },
-{ "id":".m.$.pl.$.inst." , "value":"~" },
-{ "id":".nt.$.pl.$.inst." , "value":"~" },
-{ "id":".f.$.pl.$.inst." , "value":"~" },
-{ "id":".pl.$.loc." , "value":"~" },
-{ "id":"$.pl.$.loc." , "value":"~" },
-{ "id":".1p.$.pl.$.loc." , "value":"~" },
-{ "id":".1p.$.pl.$.loc." , "value":"~" },
-{ "id":".m.$.pl.$.loc." , "value":"~" },
-{ "id":".nt.$.pl.$.loc." , "value":"~" },
-{ "id":".f.$.pl.$.loc." , "value":"~" },
-{ "id":".pl.$.nom." , "value":"~" },
-{ "id":"$.pl.$.nom." , "value":"~" },
-{ "id":".1p.$.pl.$.nom." , "value":"~" },
-{ "id":".1p.$.pl.$.nom." , "value":"~" },
-{ "id":".m.$.pl.$.nom." , "value":"~" },
-{ "id":".nt.$.pl.$.nom." , "value":"~" },
-{ "id":".f.$.pl.$.nom." , "value":"~" },
-{ "id":".pl.$.voc." , "value":"~" },
-{ "id":"$.pl.$.voc." , "value":"~" },
-{ "id":".1p.$.pl.$.voc." , "value":"~" },
-{ "id":".1p.$.pl.$.voc." , "value":"~" },
-{ "id":".m.$.pl.$.voc." , "value":"~" },
-{ "id":".nt.$.pl.$.voc." , "value":"~" },
-{ "id":".f.$.pl.$.voc." , "value":"~" },
-{ "id":".sg.$.abl." , "value":"~" },
-{ "id":"$.sg.$.abl." , "value":"~" },
-{ "id":".1p.$.sg.$.abl." , "value":"~" },
-{ "id":".1p.$.sg.$.abl." , "value":"~" },
-{ "id":".m.$.sg.$.abl." , "value":"~" },
-{ "id":".nt.$.sg.$.abl." , "value":"~" },
-{ "id":".f.$.sg.$.abl." , "value":"~" },
-{ "id":".sg.$.acc." , "value":"~" },
-{ "id":"$.sg.$.acc." , "value":"~" },
-{ "id":".1p.$.sg.$.acc." , "value":"~" },
-{ "id":".1p.$.sg.$.acc." , "value":"~" },
-{ "id":".m.$.sg.$.acc." , "value":"~" },
-{ "id":".nt.$.sg.$.acc." , "value":"~" },
-{ "id":".f.$.sg.$.acc." , "value":"~" },
-{ "id":".sg.$.dat." , "value":"~" },
-{ "id":"$.sg.$.dat." , "value":"~" },
-{ "id":".1p.$.sg.$.dat." , "value":"~" },
-{ "id":".1p.$.sg.$.dat." , "value":"~" },
-{ "id":".m.$.sg.$.dat." , "value":"~" },
-{ "id":".nt.$.sg.$.dat." , "value":"~" },
-{ "id":".f.$.sg.$.dat." , "value":"~" },
-{ "id":".sg.$.gen." , "value":"~" },
-{ "id":"$.sg.$.gen." , "value":"~" },
-{ "id":".1p.$.sg.$.gen." , "value":"~" },
-{ "id":".1p.$.sg.$.gen." , "value":"~" },
-{ "id":".m.$.sg.$.gen." , "value":"~" },
-{ "id":".nt.$.sg.$.gen." , "value":"~" },
-{ "id":".f.$.sg.$.gen." , "value":"~" },
-{ "id":".sg.$.inst." , "value":"~" },
-{ "id":"$.sg.$.inst." , "value":"~" },
-{ "id":".1p.$.sg.$.inst." , "value":"~" },
-{ "id":".1p.$.sg.$.inst." , "value":"~" },
-{ "id":".m.$.sg.$.inst." , "value":"~" },
-{ "id":".nt.$.sg.$.inst." , "value":"~" },
-{ "id":".f.$.sg.$.inst." , "value":"~" },
-{ "id":".sg.$.loc." , "value":"~" },
-{ "id":"$.sg.$.loc." , "value":"~" },
-{ "id":".1p.$.sg.$.loc." , "value":"~" },
-{ "id":".1p.$.sg.$.loc." , "value":"~" },
-{ "id":".m.$.sg.$.loc." , "value":"~" },
-{ "id":".nt.$.sg.$.loc." , "value":"~" },
-{ "id":".f.$.sg.$.loc." , "value":"~" },
-{ "id":".sg.$.nom." , "value":"~" },
-{ "id":"$.sg.$.nom." , "value":"~" },
-{ "id":".1p.$.sg.$.nom." , "value":"~" },
-{ "id":".1p.$.sg.$.nom." , "value":"~" },
-{ "id":".m.$.sg.$.nom." , "value":"~" },
-{ "id":".nt.$.sg.$.nom." , "value":"~" },
-{ "id":".f.$.sg.$.nom." , "value":"~" },
-{ "id":".sg.$.voc." , "value":"~" },
-{ "id":"$.sg.$.voc." , "value":"~" },
-{ "id":".1p.$.sg.$.voc." , "value":"~" },
-{ "id":".1p.$.sg.$.voc." , "value":"~" },
-{ "id":".m.$.sg.$.voc." , "value":"~" },
-{ "id":".nt.$.sg.$.voc." , "value":"~" },
-{ "id":".f.$.sg.$.voc." , "value":"~" },
-
-{ "id":".1p.$.sg.$.caus." , "value":"~" },
-{ "id":".2p.$.sg.$.caus." , "value":"~" },
-{ "id":".1p.$.sg.$.caus." , "value":"~" },
-{ "id":".2p.$.sg.$.caus." , "value":"~" },
-{ "id":".1p.$.pl.$.caus." , "value":"~" },
-{ "id":".2p.$.pl.$.caus." , "value":"~" },
-{ "id":".3p.$.pl.$.caus." , "value":"~" },
-{ "id":".1p.$.pl.$.caus." , "value":"~" },
-{ "id":".2p.$.pl.$.caus." , "value":"~" },
-{ "id":".3p.$.pl.$.caus." , "value":"~" },
-{ "id":".1p.$.sg.$.caus.doub." , "value":"~" },
-{ "id":".2p.$.sg.$.caus.doub." , "value":"~" },
-{ "id":".1p.$.sg.$.caus.doub." , "value":"~" },
-{ "id":".2p.$.sg.$.caus.doub." , "value":"~" },
-{ "id":".1p.$.pl.$.caus.doub." , "value":"~" },
-{ "id":".2p.$.pl.$.caus.doub." , "value":"~" },
-{ "id":".3p.$.pl.$.caus.doub." , "value":"~" },
-{ "id":".1p.$.pl.$.caus.doub." , "value":"~" },
-{ "id":".2p.$.pl.$.caus.doub." , "value":"~" },
-{ "id":".3p.$.pl.$.caus.doub." , "value":"~" },
-{ "id":".1p.$.sg.$.caus.opt." , "value":"~" },
-{ "id":".2p.$.sg.$.caus.opt." , "value":"~" },
-{ "id":".1p.$.sg.$.caus.opt." , "value":"~" },
-{ "id":".2p.$.sg.$.caus.opt." , "value":"~" },
-{ "id":".1p.$.pl.$.caus.opt." , "value":"~" },
-{ "id":".2p.$.pl.$.caus.opt." , "value":"~" },
-{ "id":".3p.$.pl.$.caus.opt." , "value":"~" },
-{ "id":".1p.$.pl.$.caus.opt." , "value":"~" },
-{ "id":".2p.$.pl.$.caus.opt." , "value":"~" },
-{ "id":".3p.$.pl.$.caus.opt." , "value":"~" },
-{ "id":".1p.$.sg.$.caus.pass." , "value":"~" },
-{ "id":".2p.$.sg.$.caus.pass." , "value":"~" },
-{ "id":".1p.$.sg.$.caus.pass." , "value":"~" },
-{ "id":".2p.$.sg.$.caus.pass." , "value":"~" },
-{ "id":".1p.$.pl.$.caus.pass." , "value":"~" },
-{ "id":".2p.$.pl.$.caus.pass." , "value":"~" },
-{ "id":".3p.$.pl.$.caus.pass." , "value":"~" },
-{ "id":".1p.$.pl.$.caus.pass." , "value":"~" },
-{ "id":".2p.$.pl.$.caus.pass." , "value":"~" },
-{ "id":".3p.$.pl.$.caus.pass." , "value":"~" },
-{ "id":".1p.$.pl.$.pass." , "value":"~" },
-{ "id":".2p.$.pl.$.pass." , "value":"~" },
-{ "id":".2p.$.pl.$.pass." , "value":"~" },
-{ "id":".3p.$.pl.$.pass." , "value":"~" },
-{ "id":".1p.$.pl.$.pass." , "value":"~" },
-{ "id":".2p.$.pl.$.pass." , "value":"~" },
-{ "id":".3p.$.pl.$.pass." , "value":"~" },
-{ "id":".1p.$.sg.$.pass." , "value":"~" },
-{ "id":".2p.$.sg.$.pass." , "value":"~" },
-{ "id":".2p.$.sg.$.pass." , "value":"~" },
-{ "id":".3p.$.sg.$.pass." , "value":"~" },
-{ "id":".3p.$.sg.$.pass." , "value":"~" },
-{ "id":".3p.$.sg.$.pass." , "value":"~" },
-{ "id":".1p.$.sg.$.pass." , "value":"~" },
-{ "id":".2p.$.sg.$.pass." , "value":"~" },
-
-{"id":".imp." , "value":"" },
-{"id":".cond." , "value":"" },
-{"id":".opt." , "value":"" },
-{"id":".pres." , "value":"" },
-{"id":".aor." , "value":"" },
-{"id":".pf." , "value":"" },
-{"id":".fut." , "value":"" },
-{"id":".prp." , "value":"" },
-{"id":".prpa." , "value":"" },
-{"id":".prpp." , "value":"" },
-{"id":".pp." , "value":"" },
-{"id":".ppa." , "value":"" },
-{"id":".ppp." , "value":"" },
-{"id":".futp." , "value":"" },
-{"id":".fpa." , "value":"" },
-{"id":".fpp." , "value":"" },
-{"id":".grd." , "value":"" },
-{"id":".pass." , "value":"" },
-{"id":".caus." , "value":"" },
-{"id":".desid." , "value":"" },
-{"id":".intens." , "value":"" },
-{"id":".ger." , "value":"" },
-{"id":".abs." , "value":"" },
-{"id":".inf." , "value":"" }
+var local_formula = [
+    { "id": ".pl.$.abl.", "value": "~" },
+    { "id": "$.pl.$.abl.", "value": "~" },
+    { "id": ".1p.$.pl.$.abl.", "value": "~" },
+    { "id": ".1p.$.pl.$.abl.", "value": "~" },
+    { "id": ".m.$.pl.$.abl.", "value": "~" },
+    { "id": ".nt.$.pl.$.abl.", "value": "~" },
+    { "id": ".f.$.pl.$.abl.", "value": "~" },
+    { "id": ".pl.$.acc.", "value": "~" },
+    { "id": "$.pl.$.acc.", "value": "~" },
+    { "id": ".1p.$.pl.$.acc.", "value": "~" },
+    { "id": ".1p.$.pl.$.acc.", "value": "~" },
+    { "id": ".m.$.pl.$.acc.", "value": "~" },
+    { "id": ".nt.$.pl.$.acc.", "value": "~" },
+    { "id": ".f.$.pl.$.acc.", "value": "~" },
+    { "id": ".pl.$.dat.", "value": "~" },
+    { "id": "$.pl.$.dat.", "value": "~" },
+    { "id": ".1p.$.pl.$.dat.", "value": "~" },
+    { "id": ".1p.$.pl.$.dat.", "value": "~" },
+    { "id": ".m.$.pl.$.dat.", "value": "~" },
+    { "id": ".nt.$.pl.$.dat.", "value": "~" },
+    { "id": ".f.$.pl.$.dat.", "value": "~" },
+    { "id": ".pl.$.gen.", "value": "~" },
+    { "id": "$.pl.$.gen.", "value": "~" },
+    { "id": ".1p.$.pl.$.gen.", "value": "~" },
+    { "id": ".1p.$.pl.$.gen.", "value": "~" },
+    { "id": ".m.$.pl.$.gen.", "value": "~" },
+    { "id": ".nt.$.pl.$.gen.", "value": "~" },
+    { "id": ".f.$.pl.$.gen.", "value": "~" },
+    { "id": ".pl.$.inst.", "value": "~" },
+    { "id": "$.pl.$.inst.", "value": "~" },
+    { "id": ".1p.$.pl.$.inst.", "value": "~" },
+    { "id": ".1p.$.pl.$.inst.", "value": "~" },
+    { "id": ".m.$.pl.$.inst.", "value": "~" },
+    { "id": ".nt.$.pl.$.inst.", "value": "~" },
+    { "id": ".f.$.pl.$.inst.", "value": "~" },
+    { "id": ".pl.$.loc.", "value": "~" },
+    { "id": "$.pl.$.loc.", "value": "~" },
+    { "id": ".1p.$.pl.$.loc.", "value": "~" },
+    { "id": ".1p.$.pl.$.loc.", "value": "~" },
+    { "id": ".m.$.pl.$.loc.", "value": "~" },
+    { "id": ".nt.$.pl.$.loc.", "value": "~" },
+    { "id": ".f.$.pl.$.loc.", "value": "~" },
+    { "id": ".pl.$.nom.", "value": "~" },
+    { "id": "$.pl.$.nom.", "value": "~" },
+    { "id": ".1p.$.pl.$.nom.", "value": "~" },
+    { "id": ".1p.$.pl.$.nom.", "value": "~" },
+    { "id": ".m.$.pl.$.nom.", "value": "~" },
+    { "id": ".nt.$.pl.$.nom.", "value": "~" },
+    { "id": ".f.$.pl.$.nom.", "value": "~" },
+    { "id": ".pl.$.voc.", "value": "~" },
+    { "id": "$.pl.$.voc.", "value": "~" },
+    { "id": ".1p.$.pl.$.voc.", "value": "~" },
+    { "id": ".1p.$.pl.$.voc.", "value": "~" },
+    { "id": ".m.$.pl.$.voc.", "value": "~" },
+    { "id": ".nt.$.pl.$.voc.", "value": "~" },
+    { "id": ".f.$.pl.$.voc.", "value": "~" },
+    { "id": ".sg.$.abl.", "value": "~" },
+    { "id": "$.sg.$.abl.", "value": "~" },
+    { "id": ".1p.$.sg.$.abl.", "value": "~" },
+    { "id": ".1p.$.sg.$.abl.", "value": "~" },
+    { "id": ".m.$.sg.$.abl.", "value": "~" },
+    { "id": ".nt.$.sg.$.abl.", "value": "~" },
+    { "id": ".f.$.sg.$.abl.", "value": "~" },
+    { "id": ".sg.$.acc.", "value": "~" },
+    { "id": "$.sg.$.acc.", "value": "~" },
+    { "id": ".1p.$.sg.$.acc.", "value": "~" },
+    { "id": ".1p.$.sg.$.acc.", "value": "~" },
+    { "id": ".m.$.sg.$.acc.", "value": "~" },
+    { "id": ".nt.$.sg.$.acc.", "value": "~" },
+    { "id": ".f.$.sg.$.acc.", "value": "~" },
+    { "id": ".sg.$.dat.", "value": "~" },
+    { "id": "$.sg.$.dat.", "value": "~" },
+    { "id": ".1p.$.sg.$.dat.", "value": "~" },
+    { "id": ".1p.$.sg.$.dat.", "value": "~" },
+    { "id": ".m.$.sg.$.dat.", "value": "~" },
+    { "id": ".nt.$.sg.$.dat.", "value": "~" },
+    { "id": ".f.$.sg.$.dat.", "value": "~" },
+    { "id": ".sg.$.gen.", "value": "~" },
+    { "id": "$.sg.$.gen.", "value": "~" },
+    { "id": ".1p.$.sg.$.gen.", "value": "~" },
+    { "id": ".1p.$.sg.$.gen.", "value": "~" },
+    { "id": ".m.$.sg.$.gen.", "value": "~" },
+    { "id": ".nt.$.sg.$.gen.", "value": "~" },
+    { "id": ".f.$.sg.$.gen.", "value": "~" },
+    { "id": ".sg.$.inst.", "value": "~" },
+    { "id": "$.sg.$.inst.", "value": "~" },
+    { "id": ".1p.$.sg.$.inst.", "value": "~" },
+    { "id": ".1p.$.sg.$.inst.", "value": "~" },
+    { "id": ".m.$.sg.$.inst.", "value": "~" },
+    { "id": ".nt.$.sg.$.inst.", "value": "~" },
+    { "id": ".f.$.sg.$.inst.", "value": "~" },
+    { "id": ".sg.$.loc.", "value": "~" },
+    { "id": "$.sg.$.loc.", "value": "~" },
+    { "id": ".1p.$.sg.$.loc.", "value": "~" },
+    { "id": ".1p.$.sg.$.loc.", "value": "~" },
+    { "id": ".m.$.sg.$.loc.", "value": "~" },
+    { "id": ".nt.$.sg.$.loc.", "value": "~" },
+    { "id": ".f.$.sg.$.loc.", "value": "~" },
+    { "id": ".sg.$.nom.", "value": "~" },
+    { "id": "$.sg.$.nom.", "value": "~" },
+    { "id": ".1p.$.sg.$.nom.", "value": "~" },
+    { "id": ".1p.$.sg.$.nom.", "value": "~" },
+    { "id": ".m.$.sg.$.nom.", "value": "~" },
+    { "id": ".nt.$.sg.$.nom.", "value": "~" },
+    { "id": ".f.$.sg.$.nom.", "value": "~" },
+    { "id": ".sg.$.voc.", "value": "~" },
+    { "id": "$.sg.$.voc.", "value": "~" },
+    { "id": ".1p.$.sg.$.voc.", "value": "~" },
+    { "id": ".1p.$.sg.$.voc.", "value": "~" },
+    { "id": ".m.$.sg.$.voc.", "value": "~" },
+    { "id": ".nt.$.sg.$.voc.", "value": "~" },
+    { "id": ".f.$.sg.$.voc.", "value": "~" },
+
+    { "id": ".1p.$.sg.$.caus.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.doub.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.doub.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.doub.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.doub.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.doub.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.doub.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.doub.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.doub.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.doub.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.doub.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.opt.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.opt.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.opt.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.opt.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.opt.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.opt.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.opt.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.opt.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.opt.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.opt.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.pass.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.pass.", "value": "~" },
+    { "id": ".1p.$.sg.$.caus.pass.", "value": "~" },
+    { "id": ".2p.$.sg.$.caus.pass.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.pass.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.pass.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.pass.", "value": "~" },
+    { "id": ".1p.$.pl.$.caus.pass.", "value": "~" },
+    { "id": ".2p.$.pl.$.caus.pass.", "value": "~" },
+    { "id": ".3p.$.pl.$.caus.pass.", "value": "~" },
+    { "id": ".1p.$.pl.$.pass.", "value": "~" },
+    { "id": ".2p.$.pl.$.pass.", "value": "~" },
+    { "id": ".2p.$.pl.$.pass.", "value": "~" },
+    { "id": ".3p.$.pl.$.pass.", "value": "~" },
+    { "id": ".1p.$.pl.$.pass.", "value": "~" },
+    { "id": ".2p.$.pl.$.pass.", "value": "~" },
+    { "id": ".3p.$.pl.$.pass.", "value": "~" },
+    { "id": ".1p.$.sg.$.pass.", "value": "~" },
+    { "id": ".2p.$.sg.$.pass.", "value": "~" },
+    { "id": ".2p.$.sg.$.pass.", "value": "~" },
+    { "id": ".3p.$.sg.$.pass.", "value": "~" },
+    { "id": ".3p.$.sg.$.pass.", "value": "~" },
+    { "id": ".3p.$.sg.$.pass.", "value": "~" },
+    { "id": ".1p.$.sg.$.pass.", "value": "~" },
+    { "id": ".2p.$.sg.$.pass.", "value": "~" },
+
+    { "id": ".imp.", "value": "" },
+    { "id": ".cond.", "value": "" },
+    { "id": ".opt.", "value": "" },
+    { "id": ".pres.", "value": "" },
+    { "id": ".aor.", "value": "" },
+    { "id": ".pf.", "value": "" },
+    { "id": ".fut.", "value": "" },
+    { "id": ".prp.", "value": "" },
+    { "id": ".prpa.", "value": "" },
+    { "id": ".prpp.", "value": "" },
+    { "id": ".pp.", "value": "" },
+    { "id": ".ppa.", "value": "" },
+    { "id": ".ppp.", "value": "" },
+    { "id": ".futp.", "value": "" },
+    { "id": ".fpa.", "value": "" },
+    { "id": ".fpp.", "value": "" },
+    { "id": ".grd.", "value": "" },
+    { "id": ".pass.", "value": "" },
+    { "id": ".caus.", "value": "" },
+    { "id": ".desid.", "value": "" },
+    { "id": ".intens.", "value": "" },
+    { "id": ".ger.", "value": "" },
+    { "id": ".abs.", "value": "" },
+    { "id": ".inf.", "value": "" }
 ];
 
-var local_parent_formula=[
-{"id":".imp." , "value":"" },
-{"id":".cond." , "value":"" },
-{"id":".opt." , "value":"" },
-{"id":".pres." , "value":"" },
-{"id":".aor." , "value":"" },
-{"id":".pf." , "value":"" },
-{"id":".fut." , "value":"" },
-{"id":".prp." , "value":"" },
-{"id":".prpa." , "value":"" },
-{"id":".prpp." , "value":"" },
-{"id":".pp." , "value":"" },
-{"id":".ppa." , "value":"" },
-{"id":".ppp." , "value":"" },
-{"id":".futp." , "value":"" },
-{"id":".fpa." , "value":"" },
-{"id":".fpp." , "value":"" },
-{"id":".grd." , "value":"" },
-{"id":".pass." , "value":"" },
-{"id":".caus." , "value":"" },
-{"id":".desid." , "value":"" },
-{"id":".intens." , "value":"" },
-{"id":".ger." , "value":"" },
-{"id":".abs." , "value":"" },
-{"id":".inf." , "value":"" }
+var local_parent_formula = [
+    { "id": ".imp.", "value": "" },
+    { "id": ".cond.", "value": "" },
+    { "id": ".opt.", "value": "" },
+    { "id": ".pres.", "value": "" },
+    { "id": ".aor.", "value": "" },
+    { "id": ".pf.", "value": "" },
+    { "id": ".fut.", "value": "" },
+    { "id": ".prp.", "value": "" },
+    { "id": ".prpa.", "value": "" },
+    { "id": ".prpp.", "value": "" },
+    { "id": ".pp.", "value": "" },
+    { "id": ".ppa.", "value": "" },
+    { "id": ".ppp.", "value": "" },
+    { "id": ".futp.", "value": "" },
+    { "id": ".fpa.", "value": "" },
+    { "id": ".fpp.", "value": "" },
+    { "id": ".grd.", "value": "" },
+    { "id": ".pass.", "value": "" },
+    { "id": ".caus.", "value": "" },
+    { "id": ".desid.", "value": "" },
+    { "id": ".intens.", "value": "" },
+    { "id": ".ger.", "value": "" },
+    { "id": ".abs.", "value": "" },
+    { "id": ".inf.", "value": "" }
 
 ];
 
-var local_gui=
+var local_gui =
 {
-"applyto":"Apply to:" ,
-"heading":"Heading" , 
-"wbw":"Word by Word Analysis" , 
-"translate":"Translate" , 
-"note":"Note" , 
-"current":"Current" , 
-"up":"Up" , 
-"down":"Down" , 
-"thischapter":"This Chapter" , 
-"all":"All" , 
-"lock":"Lock" , 
-"toDB":"To User Database" , 
-"cancel":"Cancel" , 
-"para":" Paragraphs" , 
-"translate1":"Translated" , 
-"read":"Read" , 
-"edit":"Edit" , 
-"newheading":"Text Editor" , 
-"newword":"New Word" , 
-"wordtype":"Word Type" , 
-"gramma":"Gramma" , 
-"parent":"Parent" , 
-"part":"Factors" , 
-"partmeaning":"Factor-Meaning" , 
-"meaning":"Meaning" , 
-"userdict":"User Dictionary" , 
-"dictsouce":"Dictionary Resouce" , 
-"otherdict":"Other Dictionary" , 
-"children":"Children" , 
-"newproject":"New Project" , 
-"nofilename":"No File Name" , 
-"loading":"loading…" , 
-"ok":"OK" , 
-"removeword":"Slur Factor Removed" , 
-"unsplit":"Slur Splited" , 
-"allsplit":"Words Splited Successfully ^-^" , 
-"modifyok":"Modified " , 
-"success":" Words Successfully" , 
-"level":"Lv" , 
-"totally":"Totally " , 
-"translate1":"Translated By " , 
-"edit1":"Edited By " , 
-"revision":"Revised By " , 
-"edition":"Edition: " , 
-"language":"Language: " , 
-"innerdict":"Inline Dictionary" , 
-"dict_match":"Match the Dictionary and Document" , 
-"match_end":"Document update over,Degree of Perfection" , 
-"empty1":"EMPTY" , 
-"wordmap":"Word Tree" , 
-"auto":"AUTO" , 
-"new":"New" , 
-"factors_input":"input factors by click" , 
-"meaning_input":"input meanings by click" , 
-"parent_input":"input parent by click" , 
-"read_only":"Read Only" , 
-"sent_trans":"Translate of Sentence" , 
-"more":"more" , 
-"tran_workload":"whole passage translate: " , 
-"statistical_data":"statistical data" , 
-"wordnum":"Text Amount: " , 
-"vocabulary":"Vocabulary: " , 
-"words":"&nbsp;words" , 
-"letters":"&nbsp;letters" , 
-"word_length":"average word length" , 
-"repeat":"Repeat Quotiety: " , 
-"num_k":"K" , 
-"num_m":"M" , 
-"workload":"workload" , 
-"total_workload":"total workload" , 
-"product":"translation words" , 
-"difficulty":"difficulty level" , 
-"min":"(min)" , 
-"h":"(h)" , 
-"week":"(week)" , 
-"year":"(year)" ,
-"round_1":"Round " ,
-"round_2":"&nbsp;dictionary “" ,
-"done":"”&nbsp;scanned" ,
-"all_done":"Looking up accomplished" ,
-"checking":"scanning" , 
-"auto_fill":"Automatic filling" ,
-"finished":"finished" ,
-"now_time":"paccuppanna" ,
-"twilight_time":"aruṇuggamana" ,
-"noon_time":"majjhanhika" ,
-"vikala":"vikāla" ,
-"kala":"kāla" ,
-"gama_entry":"entry the village" ,
-"need_inform":"without informing other Bhikkhu " ,
-"no_string":"cannot " ,
-"yes_string":"can " ,
-"eat":"eat" ,
-"CE":"CE" , 
-"BE":"Buddhist Era" ,
-"month_1":"-" ,
-"year_1":"-" ,
-"day":"" ,
-"months":" month(s) and " ,
-"days":" day(s) " ,
-"years":" year(s) " ,
-"day_1":"" ,
-"today":"Ajja " ,
-"dhamma_time":"Sammā Sambuddhassa sāsanaṃ pañca-vassa-sahassāni pavattissati" ,
-"past":"Atikkanta" ,
-"left":"Avasiṭṭha" ,
-"year_0":"Saṃvacchara",
-"season":"Utu" ,
-"month":"Māsa" ,
-"pakkha":"Pakkha" ,
-"date":"Divasa" ,
-"week_day":"Vāra" ,
-"":"" , 
-"":"" , 
-"":"" , 
-
-
-
-
-
-"The_End":"Don't Write any thing in the last line" 
+    "applyto": "Apply to:",
+    "heading": "Heading",
+    "wbw": "Word by Word Analysis",
+    "translate": "Translate",
+    "note": "Note",
+    "current": "Current",
+    "up": "Up",
+    "down": "Down",
+    "thischapter": "This Chapter",
+    "all": "All",
+    "lock": "Lock",
+    "toDB": "To User Database",
+    "cancel": "Cancel",
+    "para": " Paragraphs",
+    "translate1": "Translated",
+    "read": "Read",
+    "edit": "Edit",
+    "newheading": "Text Editor",
+    "newword": "New Word",
+    "wordtype": "Word Type",
+    "gramma": "Gramma",
+    "parent": "Parent",
+    "part": "Factors",
+    "partmeaning": "Factor-Meaning",
+    "meaning": "Meaning",
+    "userdict": "User Dictionary",
+    "dictsouce": "Dictionary Resouce",
+    "otherdict": "Other Dictionary",
+    "children": "Children",
+    "newproject": "New Project",
+    "nofilename": "No File Name",
+    "loading": "loading…",
+    "ok": "OK",
+    "removeword": "Slur Factor Removed",
+    "unsplit": "Slur Splited",
+    "allsplit": "Words Splited Successfully ^-^",
+    "modifyok": "Modified ",
+    "success": " Words Successfully",
+    "level": "Lv",
+    "totally": "Totally ",
+    "translate1": "Translated By ",
+    "edit1": "Edited By ",
+    "revision": "Revised By ",
+    "edition": "Edition: ",
+    "language": "Language: ",
+    "innerdict": "Inline Dictionary",
+    "dict_match": "Match the Dictionary and Document",
+    "match_end": "Document update over,Degree of Perfection",
+    "empty1": "EMPTY",
+    "wordmap": "Word Tree",
+    "auto": "AUTO",
+    "new": "New",
+    "factors_input": "input factors by click",
+    "meaning_input": "input meanings by click",
+    "parent_input": "input parent by click",
+    "read_only": "Read Only",
+    "sent_trans": "Translate of Sentence",
+    "more": "more",
+    "tran_workload": "whole passage translate: ",
+    "statistical_data": "statistical data",
+    "wordnum": "Text Amount: ",
+    "vocabulary": "Vocabulary: ",
+    "words": "&nbsp;words",
+    "letters": "&nbsp;letters",
+    "word_length": "average word length",
+    "repeat": "Repeat Quotiety: ",
+    "num_k": "K",
+    "num_m": "M",
+    "workload": "workload",
+    "total_workload": "total workload",
+    "product": "translation words",
+    "difficulty": "difficulty level",
+    "min": "(min)",
+    "h": "(h)",
+    "week": "(week)",
+    "year": "(year)",
+    "round_1": "Round ",
+    "round_2": "&nbsp;dictionary “",
+    "done": "”&nbsp;scanned",
+    "all_done": "Looking up accomplished",
+    "checking": "scanning",
+    "auto_fill": "Automatic filling",
+    "finished": "finished",
+    "now_time": "paccuppanna",
+    "twilight_time": "aruṇuggamana",
+    "noon_time": "majjhanhika",
+    "vikala": "vikāla",
+    "kala": "kāla",
+    "gama_entry": "entry the village",
+    "need_inform": "without informing other Bhikkhu ",
+    "no_string": "cannot ",
+    "yes_string": "can ",
+    "eat": "eat",
+    "CE": "CE",
+    "BE": "Buddhist Era",
+    "month_1": "-",
+    "year_1": "-",
+    "day": "",
+    "months": " month(s) and ",
+    "days": " day(s) ",
+    "years": " year(s) ",
+    "day_1": "",
+    "today": "Ajja ",
+    "dhamma_time": "Sammā Sambuddhassa sāsanaṃ pañca-vassa-sahassāni pavattissati",
+    "past": "Atikkanta",
+    "left": "Avasiṭṭha",
+    "year_0": "Saṃvacchara",
+    "season": "Utu",
+    "month": "Māsa",
+    "pakkha": "Pakkha",
+    "date": "Divasa",
+    "week_day": "Vāra",
+    "": "",
+    "": "",
+    "": "",
+
+
+
+
+
+    "The_End": "Don't Write any thing in the last line"
 };
-var local_dictname=[
-{ "id":"bh" , "value":"巴漢-明法尊者" },
-{ "id":"sy" , "value":"漢譯-水野弘元" },
-{ "id":"user" , "value":"User Dict" },
-{ "id":"co" , "value":"Concise" },
-{ "id":"unkow" , "value":"Unknown" },
-{ "id":"vn" , "value":"SYS_IR-V" },
-{ "id":"SCR" , "value":"Root-中" },
-{ "id":"ENR" , "value":"Root-EN" },
-{ "id":"parts" , "value":"Parts" },
-{ "id":"sys_ir" , "value":"SYS_IR-K" },
-{ "id":"PM" , "value":"Pāḷi-Myr" },
-{ "id":"" , "value":"" },
-{ "id":"" , "value":"" },
-{ "id":"" , "value":"" }
+var local_dictname = [
+    { "id": "bh", "value": "巴漢-明法尊者" },
+    { "id": "sy", "value": "漢譯-水野弘元" },
+    { "id": "user", "value": "User Dict" },
+    { "id": "co", "value": "Concise" },
+    { "id": "unkow", "value": "Unknown" },
+    { "id": "vn", "value": "SYS_IR-V" },
+    { "id": "SCR", "value": "Root-中" },
+    { "id": "ENR", "value": "Root-EN" },
+    { "id": "parts", "value": "Parts" },
+    { "id": "sys_ir", "value": "SYS_IR-K" },
+    { "id": "PM", "value": "Pāḷi-Myr" },
+    { "id": "", "value": "" },
+    { "id": "", "value": "" },
+    { "id": "", "value": "" }
 ];
-var local_language=[
-{ "id":"en" , "value":"英语" },
-{ "id":"zh" , "value":"简体中文" },
+var local_language = [
+    { "id": "en", "value": "英语" },
+    { "id": "zh", "value": "简体中文" },
 
 
 
-{ "id":".end." , "value":"—" }
+    { "id": ".end.", "value": "—" }
 ];
 /*var local_code_str=[
 { "id":"aa" , "value":"ā" },
@@ -620,8 +619,8 @@ var local_language=[
 { "id":"N-" , "value":"Ñ" }
 ];
 */
-var local_language_str=[
-{ "id":" " , "value":"" }
+var local_language_str = [
+    { "id": " ", "value": "" }
 ];
 
 

+ 6 - 4
app/studio/plugin/system_message/gui.html

@@ -8,14 +8,16 @@
 		margin-bottom: 6px;
 	}
 </style>
-<div id="msg_panal_right_head">
+<div id="msg_panal_right_head" style="display:flex;">
 	<div id="msg_panal_list_toolbar">
-		<span id="msg_list_title"><?php echo $module_gui_str['editor']['1116'];//Message?></span>
+		<span id="msg_list_title"><?php echo $_local->gui->message; ?>
+		</span>
 	</div>
 	<div id="msg_panal_content_toolbar">
-		<button onclick="msg_show_list_panal()"><?php echo $module_gui_str['tools']['1014'];//Back?></button><span
-			id="msg_content_title"></span>
+		<button onclick="msg_show_list_panal()"><?php echo $_local->gui->back;?></button>
+		<span id="msg_content_title"></span>
 	</div>
+	<guide gid="studio_message" style="margin-left:auto;"></guide>
 </div>
 <div id="msg_panal_right">
 	<div id="msg_panal_list">

+ 0 - 14
documents/course/课程通知.txt

@@ -1,17 +1,3 @@
-IAPT国际巴利三藏院 邀请您参加预先安排的 Zoom 会议。
-
-主题:推动法的车轮经详解-第4讲
-时间:2020年8月19日 08:00 上午 仰光
-
-加入 Zoom 会议
-https://us02web.zoom.us/j/86771118294?pwd=NGNTK3BjMGFsaERjYnNUc3AyUzUzQT09
-
-会议 ID:867 7111 8294
-密码:394486
-
-https://www.youtube.com/playlist?list=PL_1iJBQvNPFHmQFWvzotYY3F6et83tFZN
-
-
 
 IAPT国际巴利三藏院 邀请您参加预先安排的 Zoom 会议。
 

+ 15 - 0
documents/users_guide/zh-cn/grammar_abbr.md

@@ -1,3 +1,18 @@
+## 基本操作
+- 通过下拉菜单选择填入语法信息
+- 首先选定类型——带外框的,比如:动词
+- 然后选择后续的内容,比如:三 单 现
+- 以上涉及的**语法缩略语**可以参照下面的表格
+- 调整**语法信息**和**虚词公式**,列举这个词可能的含义
+
+## 连读词拆分
+连读词拆分使用教程 (暂缺)
+
+## 复合词拆分
+复合词拆分使用教程(文本暂缺)
+- [YouTube](https://youtu.be/iN1t0Rq9aKk)  
+- [百度网盘](https://pan.baidu.com/s/1nXZG2GQkkkfblNnshDuS_w)  提取码:pali 
+
 ## 语法缩略语表
 | 缩略语   | 英文缩写  | 备注                         |
 | :------- | :-------- | :--------------------------- |

+ 15 - 0
documents/users_guide/zh-cn/studio_break_down.md

@@ -0,0 +1,15 @@
+## 拆分信息
+巴利语拆分是从词源入手进行语义解析的重要手段。
+
+用户可以根据自己的意愿决定把单词拆到什么程度。
+
+如果用加号“+”分隔每个组分,机器会自动识别并查询相应的组分。
+
+如果是连读词(sandhi)是可以进行进一步拆解和分别分析的。
+
+如果不清楚如何拆分,有几种渠道可供选择:
+- 点词查询
+  - 点击某个单词,点开右上角的<svg id="icon_dict" viewBox="0 0 32 32" style='fill:#6baaff;height: 10px; width: 15px;'><g transform="translate(-4 -4)"><path class="a" d="M24.4,2,17.9,7.85v14.3l6.5-5.85V2M8.15,5.9A12.09,12.09,0,0,0,1,7.85V26.908a.7.7,0,0,0,.65.65c.13,0,.195-.091.325-.091A15.85,15.85,0,0,1,8.15,26.05,12.09,12.09,0,0,1,15.3,28a15.659,15.659,0,0,1,7.15-1.95,13.241,13.241,0,0,1,6.175,1.378.565.565,0,0,0,.325.039.7.7,0,0,0,.65-.65V7.85A8.867,8.867,0,0,0,27,6.55V24.1a15.106,15.106,0,0,0-4.55-.65A15.659,15.659,0,0,0,15.3,25.4V7.85A12.09,12.09,0,0,0,8.15,5.9Z" transform="translate(5 4)"></path></g></svg>中会显示词典查询结果。
+  - 很多长词在巴缅词典(共三本)中能找到拆分结果
+- **强力拆分**功能
+- 询问老师

+ 9 - 0
documents/users_guide/zh-cn/studio_case_fomular.md

@@ -0,0 +1,9 @@
+### 虚词公式
+- 我们在本行的
+<span><svg viewBox='0 0 24 24' id='ic_more' style='fill:#6baaff;height: 10px; width: 15px;'><path d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'></path></svg></span>
+    中列举了与该**语法信息**相应的虚词公式
+- 如果对自动套用的虚词公式不满意,可用从<span><svg viewBox='0 0 24 24' id='ic_more' style='fill:#6baaff;height: 10px; width: 15px;'><path d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'></path></svg></span>中选择。
+- 自动给出的公式显示为<span style='color:#BD8B18;'>金黄色</span>,且该公式不会进入[个人单词本](./setting.php?item=userdict)
+- 手动选择的公式显示为<span style='color:#f9468f;'>粉红色</span>,且该公式会进入[个人单词本](./setting.php?item=userdict)
+- 通过**虚词公式**可以加深我们对语法概念的理解
+- 初学者也可以透过调整**语法信息**和**虚词公式**来实现**格位**、**变位**的抉择

+ 15 - 0
documents/users_guide/zh-cn/studio_general_meaning.md

@@ -0,0 +1,15 @@
+## 整体意思与虚词公式
+在这里输入的含义,会被系统自动根据**语法信息**来套用**虚词公式**;
+### 点词查询
+- 点击某个单词
+- 点开右上角的<svg id="icon_dict" viewBox="0 0 32 32" style='fill:#6baaff;height: 10px; width: 15px;'><g transform="translate(-4 -4)"><path class="a" d="M24.4,2,17.9,7.85v14.3l6.5-5.85V2M8.15,5.9A12.09,12.09,0,0,0,1,7.85V26.908a.7.7,0,0,0,.65.65c.13,0,.195-.091.325-.091A15.85,15.85,0,0,1,8.15,26.05,12.09,12.09,0,0,1,15.3,28a15.659,15.659,0,0,1,7.15-1.95,13.241,13.241,0,0,1,6.175,1.378.565.565,0,0,0,.325.039.7.7,0,0,0,.65-.65V7.85A8.867,8.867,0,0,0,27,6.55V24.1a15.106,15.106,0,0,0-4.55-.65A15.659,15.659,0,0,0,15.3,25.4V7.85A12.09,12.09,0,0,0,8.15,5.9Z" transform="translate(5 4)"></path></g></svg>中
+- 右侧边栏会显示词典查询结果
+
+在本行末端的<span><svg viewBox='0 0 24 24' id='ic_more' style='fill:#6baaff;height: 10px; width: 15px;'><path d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'></path></svg></span>可以显示系统匹配的含义列表,通过点选实现快捷输入
+
+
+註:
+- 此处的设计是针对**信达雅**三大翻译指标中的**达**,即优先追求含义表达的明确性
+- 对于词源学我们设计了**拆分方式**与**拆分含义**
+- 文学优美性我们提供了**整体译文**
+- **虚词公式**可能会有遗漏,如有补充,欢迎通过此[链接](https://github.com/iapt-platform/mint/issues/20)给我们留言。

+ 16 - 0
documents/users_guide/zh-cn/studio_message.md

@@ -0,0 +1,16 @@
+## 消息功能
+通过消息功能,实现翻译的网络协作。
+
+只有具备**共享属性**的文档,才可以发消息。
+
+逐词译、译文的每次修改,都会发消息给协作者
+
+数据合并逻辑:
+- 用户数据大体包括四种状态
+  - 用户**手动**修改
+  - 他人**消息**推动
+  - 机器**自动**匹配
+  - 新经文中的**未填充**部分
+- 覆盖逻辑
+  - 手动>消息>自动>未填充
+-  未能覆盖则在改数据位置上显示<span style="color:#f9468f">消息数量</span>提示

+ 18 - 0
documents/users_guide/zh-cn/studio_parent.md

@@ -0,0 +1,18 @@
+## 词典原型
+此处为该处词语在查词时应该查询的拼写,通常是:
+- 动词去掉变位后,加上ti
+  - 如:karoma的原型写为karo(ti)
+- 名词、三性词去掉变格
+  - cittena的原型为citta
+
+正确输入词典原型,会在个人单词本中加入原型数据,利用该原型数据可以对其他变化词给出相对准确的含义。
+- 例如:cittena的**词典原型**中输入了citta,当以后遇到cittehi,cittāni会优先给出个人单词本中citta的数据。
+
+但如果是复合词拆分之后的组件,可以写衍生词的原型
+- karonta的原型为karo(ti)
+
+
+註:
+- 针对多层级变化衍生的关系,比如从词根到词干,动词到分词,分词到变格;我们不建议在此处进行多层级拆解
+- 我们设计了另一个强大的工具来实现**词源学探索的终极解决方案**——wordmap
+- 该wordmap工具在离线版的试验中可用,线上版有待恢复和重新设计

+ 6 - 0
documents/users_guide/zh-cn/studio_parent2.md

@@ -0,0 +1,6 @@
+## 衍生原型
+范例:
+- 拼写:karontassa
+- 词典原型:karonta(现代分词)
+- 此处:karo(ti)
+- 下拉菜单选择:prp(现代分词)

+ 24 - 0
documents/users_guide/zh-cn/studio_part_meaning.md

@@ -0,0 +1,24 @@
+## 拆分含义
+此处的设计是针对**信达雅**三大翻译指标中的**信**,即学术严谨性,可以通过拆分和拆分含义,实现词源学的探索。
+
+在**拆分方式**中用加号“+”将巴利拼写分隔之后,系统会根据每个组分的拼写进行自动查询
+
+查询结果的第一个会显示,其他结果在下拉菜单中
+
+点击<svg viewBox="0 0 24 24" id="ic_vertical_align_top" style='fill:#6baaff;height: 12px; width: 20px;'><path d="M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z"></path></svg>按钮可以将未 **[括起来]** 的部分覆盖到 **整体含义** 来实现快捷输入
+
+如果对译文不满意,可以点击<svg viewBox="0 0 24 24" id="ic_mode_edit" style='fill:#6baaff;height: 12px; width: 20px;'><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></svg>按钮来手动修改译文
+- 注意保证**拆分含义**的“+”和**拆分方式**中的“+”数量保持一致
+- 如果**拆分含义**的“+”数量小于**拆分方式**中的“+”,那么系统将自动填充 **↓↓** 来提示用户查看此处的下拉菜单
+- 如果**拆分含义**的“+”数量大于**拆分方式**中的“+”,那么系统将自动把最后两个组分含义合并
+  
+## 个人单词本
+拆分方式和拆分含义在进入[单词本](./setting.php?item=userdict)的时候,会在基础单词数据块的基础上,增加和拆分数目相同的单词数据块
+
+- 内容会被简化为拼写+含义,语法类型代码为**待定组分**
+- 比如:attha+saṃhita 义+已携带,会增加2条单词数据到[单词本](./setting.php?item=userdict)
+
+| 拼写    | 含义   | 类型     |
+| ------- | ------ | -------- |
+| attha   | 义     | 待定组分 |
+| saṃhita | 已携带 | 待定组分 |