Просмотр исходного кода

Merge branch 'master' of https://github.com/visuddhinanda/mint

visuddhinanda 5 лет назад
Родитель
Сommit
3ef15d3db3
100 измененных файлов с 2852 добавлено и 1971 удалено
  1. 1 1
      app/dict/language/default.php
  2. 1 1
      app/dict/language/en.php
  3. 1 1
      app/dict/language/sinhala.php
  4. 1 1
      app/dict/language/tw.php
  5. 1 1
      app/dict/language/zh.php
  6. 22 3
      app/guide/guide.css
  7. 5 5
      app/guide/guide_icon.svg
  8. 208 0
      app/pali_sent/pali_sent.php
  9. 4 3
      app/pcdl/html_head.php
  10. 2 1
      app/pcdl/index.php
  11. 1 1
      app/pcdl/language/default.php
  12. 1 1
      app/pcdl/language/en.php
  13. 1 1
      app/pcdl/language/si.php
  14. 1 1
      app/pcdl/language/zh-cn.php
  15. 1 1
      app/pcdl/language/zh-tw.php
  16. 12 4
      app/public/lang/default.json
  17. 10 3
      app/public/lang/en.json
  18. 10 3
      app/public/lang/my.json
  19. 7 0
      app/public/lang/si.json
  20. 13 7
      app/public/lang/zh-cn.json
  21. 10 2
      app/public/lang/zh-tw.json
  22. 1 1
      app/search/language/default.php
  23. 1 1
      app/search/language/en.php
  24. 1 1
      app/search/language/sinhala.php
  25. 1 1
      app/search/language/tw.php
  26. 1 1
      app/search/language/zh.php
  27. 2 2
      app/statistics/index.php
  28. 1 1
      app/studio/dictadmin/user/pla.php
  29. 44 21
      app/studio/editor.php
  30. 22 23
      app/studio/index.php
  31. 1 1
      app/studio/index_tool_bar.php
  32. 335 369
      app/studio/js/common.js
  33. 227 202
      app/studio/js/index_mydoc.js
  34. 64 64
      app/studio/js/index_share.js
  35. 5 1
      app/studio/js/message.js
  36. 11 5
      app/studio/js/render.js
  37. 466 467
      app/studio/language/default.js
  38. 1 1
      app/studio/language/default.php
  39. 1 1
      app/studio/language/en.php
  40. 1 1
      app/studio/language/my.php
  41. 1 1
      app/studio/language/pali.php
  42. 1 1
      app/studio/language/si.php
  43. 1 1
      app/studio/language/zh-cn.php
  44. 1 1
      app/studio/language/zh-tw.php
  45. 1 1
      app/studio/module/editor_project/language/default.php
  46. 1 1
      app/studio/module/editor_project/language/en.php
  47. 1 1
      app/studio/module/editor_project/language/si.php
  48. 1 1
      app/studio/module/editor_project/language/zh-cn.php
  49. 1 1
      app/studio/module/editor_project/language/zh-tw.php
  50. 6 4
      app/studio/plugin/system_message/gui.html
  51. 297 271
      app/studio/plugin/system_project/gui.html
  52. 460 441
      app/studio/plugin/system_project/module_function.js
  53. 25 21
      app/studio/plugin/system_script/gui.html
  54. 5 5
      app/studio/project.php
  55. 1 1
      app/tools/pc_word_analysis.php
  56. 31 14
      app/ucenter/user.php
  57. 15 0
      documents/course/课程历史链接.md
  58. 32 0
      documents/course/课程通知.txt
  59. 41 0
      documents/users_guide/en/grammar_abbr.md
  60. 6 0
      documents/users_guide/en/grammar_abl.md
  61. 6 0
      documents/users_guide/en/grammar_acc.md
  62. 6 0
      documents/users_guide/en/grammar_dat.md
  63. 2 0
      documents/users_guide/en/grammar_f.md
  64. 6 0
      documents/users_guide/en/grammar_gen.md
  65. 6 0
      documents/users_guide/en/grammar_inst.md
  66. 6 0
      documents/users_guide/en/grammar_loc.md
  67. 2 0
      documents/users_guide/en/grammar_m.md
  68. 6 0
      documents/users_guide/en/grammar_nom.md
  69. 2 0
      documents/users_guide/en/grammar_nt.md
  70. 6 0
      documents/users_guide/en/grammar_pl.md
  71. 6 0
      documents/users_guide/en/grammar_sg.md
  72. 6 0
      documents/users_guide/en/grammar_voc.md
  73. 6 0
      documents/users_guide/en/sent_func.md
  74. 15 0
      documents/users_guide/en/studio_break_down.md
  75. 9 0
      documents/users_guide/en/studio_case_fomular.md
  76. 17 0
      documents/users_guide/en/studio_general_meaning.md
  77. 16 0
      documents/users_guide/en/studio_message.md
  78. 18 0
      documents/users_guide/en/studio_parent.md
  79. 6 0
      documents/users_guide/en/studio_parent2.md
  80. 24 0
      documents/users_guide/en/studio_part_meaning.md
  81. 40 0
      documents/users_guide/zh-cn/grammar_abbr.md
  82. 6 0
      documents/users_guide/zh-cn/sent_func.md
  83. 15 0
      documents/users_guide/zh-cn/studio_break_down.md
  84. 9 0
      documents/users_guide/zh-cn/studio_case_fomular.md
  85. 15 0
      documents/users_guide/zh-cn/studio_general_meaning.md
  86. 16 0
      documents/users_guide/zh-cn/studio_message.md
  87. 18 0
      documents/users_guide/zh-cn/studio_parent.md
  88. 6 0
      documents/users_guide/zh-cn/studio_parent2.md
  89. 24 0
      documents/users_guide/zh-cn/studio_part_meaning.md
  90. 40 0
      documents/users_guide/zh-tw/grammar_abbr.md
  91. 8 0
      documents/users_guide/zh-tw/grammar_abl.md
  92. 8 0
      documents/users_guide/zh-tw/grammar_acc.md
  93. 7 0
      documents/users_guide/zh-tw/grammar_dat.md
  94. 4 0
      documents/users_guide/zh-tw/grammar_f.md
  95. 7 0
      documents/users_guide/zh-tw/grammar_gen.md
  96. 7 0
      documents/users_guide/zh-tw/grammar_inst.md
  97. 7 0
      documents/users_guide/zh-tw/grammar_loc.md
  98. 4 0
      documents/users_guide/zh-tw/grammar_m.md
  99. 10 0
      documents/users_guide/zh-tw/grammar_nom.md
  100. 3 0
      documents/users_guide/zh-tw/grammar_nt.md

+ 1 - 1
app/dict/language/default.php

@@ -224,7 +224,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/dict/language/en.php

@@ -224,7 +224,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/dict/language/sinhala.php

@@ -189,7 +189,7 @@ $module_gui_str['editor_project']['1007']="සටහන";//Note
 $module_gui_str['editor_project']['1008']="ශ්‍රවණ";//Audio
 $module_gui_str['editor_project']['1009']="මාතෘකාව ";//Heading
 $module_gui_str['editor_project']['1010']="තොරතුරු";//Infomation
-$module_gui_str['editor_project']['1011']="කර්තෘ";//Author:
+$_local->gui->author="කර්තෘ";//Author:
 $module_gui_str['editor_project']['1012']="සංස්කාරක";//Editor:
 $module_gui_str['editor_project']['1013']="භාෂාව ";//Language:
 $module_gui_str['editor_project']['1014']="පුනරීක්ෂණය ";//Revision:

+ 1 - 1
app/dict/language/tw.php

@@ -226,7 +226,7 @@ $module_gui_str['editor_project']['1007']="註解";
 $module_gui_str['editor_project']['1008']="音頻";
 $module_gui_str['editor_project']['1009']="標題";
 $module_gui_str['editor_project']['1010']="檔案資訊";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="編輯";
 $module_gui_str['editor_project']['1013']="語言";
 $module_gui_str['editor_project']['1014']="版本";

+ 1 - 1
app/dict/language/zh.php

@@ -224,7 +224,7 @@ $module_gui_str['editor_project']['1007']="注解";
 $module_gui_str['editor_project']['1008']="音频";
 $module_gui_str['editor_project']['1009']="标题";
 $module_gui_str['editor_project']['1010']="详细信息";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="编辑";
 $module_gui_str['editor_project']['1013']="语言";
 $module_gui_str['editor_project']['1014']="版本";

+ 22 - 3
app/guide/guide.css

@@ -10,22 +10,42 @@ guide{
     background-repeat: no-repeat;
     background-size: contain;
     margin: 0 6px;
+    color: var(--tool-color);
 }
 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;
+    border: 2px solid var(--btn-border-color);
+    border-radius: 10px;
     top:100%;
+    width: max-content;
     min-width:18em;
+    max-width: calc(30vw);
     min-height:15em;
     padding:10px;
-    background-color:white;
+    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 {
@@ -58,7 +78,6 @@ guide:hover  .guide_contence{
     font-weight:700;
 }
 .guide_contence  li{
-    display: block;
-    white-space: unset;
+    white-space: normal;
     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>

+ 208 - 0
app/pali_sent/pali_sent.php

@@ -28,6 +28,214 @@ if(isset($_GET["id"])){
 
 global $PDO;
 PDO_Connect("sqlite:"._FILE_DB_PALI_SENTENCE_);
+
+if(isset($_GET["sent"])){
+	$_sent=mb_strtolower($_GET["sent"],'UTF-8');
+}
+
+// 输入一个句子,输出整个句子的单词 array
+function words_of_sentence(string $sent) {
+	$words = preg_split("/[ \.\[\]\{\}\-,';‘’–0123456789]+/", $sent); // 去除标点、数字
+	$words = array_filter($words);  // 去除空词
+	$words = array_filter($words, function($item) { 
+		if ($item != 'ca' && $item != 'vā' && $item != 'na') return $item; }); // 去除 ca, vā 和 na
+	return $words;
+}
+
+// 采用 jaccard 相似度,考虑到圣典中的相似句单词、句式都是非常接近的
+function jaccard_similarity($words_of_sent1, $words_of_sent2) {
+	$intersect = count(array_intersect($words_of_sent1, $words_of_sent2));
+	$union = count($words_of_sent1)+count($words_of_sent2)-$intersect;
+	if ($union) {
+		return $intersect / $union;
+	} else {
+		return 0;
+	}
+}
+
+// 带顺序的 jaccard 算法,当前效果一般,TODO: 切片相同时加入得分
+function ordered_jaccard_similarity($words_of_sent1, $words_of_sent2) {
+	$score = 0;
+	$k = min(count($words_of_sent1), count($words_of_sent2));
+	for ($i=1; $i<$k; $i++) {
+		$score += jaccard_similarity(
+			array_slice($words_of_sent1, 0, $i),
+			array_slice($words_of_sent2, 0, $i));
+	}
+	return $score / $k;
+}
+
+// 定义一个链表节点,方便 sim_sent_id 按照相似度插入
+class sim_sent_node {
+	public $id;
+	public $jaccard_score;
+	public $next;
+
+	public function __construct($id = null, $jaccard_score = null, $next = null) {
+		$this->id = $id;
+		$this->jaccard_score = $jaccard_score;
+		$this->next = $next;
+	}
+}
+
+// 定义链表
+class sim_sent_list {
+	public $head;    // 头节点,默认一个虚头节点
+	public $size;
+
+	public function __construct() {
+		$this->head = new sim_sent_node();
+		$this->size = 0;
+	}
+
+	// 按照 jaccard_score 相似度插入
+	public function jaccard_add($id, $jaccard_score) {
+		$prev = $this->head;
+		while ($prev->next != null && $prev->next->jaccard_score > $jaccard_score) {
+			$prev = $prev->next;
+		}
+		$prev->next = new sim_sent_node($id, $jaccard_score, $prev->next);
+		$this->size++;
+	}
+
+	public function get_text_list() {
+		$prev = $this->head;
+		if ($this->size == 0) {
+			return;
+		}
+
+		$ids = "";
+		while ($prev->next != null) {
+			$ids = $ids.",".$prev->next->id;
+			$prev = $prev->next;
+		}
+		$ids = substr($ids, 1); // 去掉第一个逗号
+		return $ids;
+	}
+
+	public function print_list() {
+		$prev = $this->head;
+		if ($this->size == 0) {
+			return;
+		}
+		while ($prev->next != null) {
+			print($prev->next->id."\t".$prev->next->jaccard_score."\n");
+			$prev = $prev->next;
+		}
+	}
+}
+
+// 将相似句列表存入数据库
+function insert_similar_sent_list_into_sqlite($current_id, $text_list) {
+	/* 使用这部分代码先为数据库添加一个 sim_sents 字段
+	$add_column = "ALTER TABLE pali_sent ADD COLUMN sim_sents TEXT";
+	$Action_add = PDO_Execute($add_column);
+	$query = "PRAGMA TABLE_INFO (pali_sent)";
+	$Fetch = PDO_FetchALL($query);
+	print_r($Fetch);
+	*/
+	global $PDO;
+	$Update = "UPDATE pali_sent SET sim_sents = ".$PDO->quote($text_list)." WHERE id = ".$current_id;
+	$Result = PDO_Execute($Update);
+	return;
+}
+
+// 预计算,存入数据库
+function similar_sent_matrix() {
+	// 按照 count = 18, 8, ..., 255 依次获得查询结果 (i-3,i+3)
+	//          count = 17,16,...,7                                       (i-2,i+2)
+	for ($current_count=17; $current_count > 7; $current_count--) { 
+		print("单词数:".$current_count."\n");
+		$current_query = "select id,text from pali_sent where count=".$current_count;
+		$Current = PDO_FetchAll($current_query);
+		if (count($Current)) {
+			foreach($Current as $current_row) {
+				$current_id = $current_row['id'];
+				$current_sent = $current_row['text'];
+				$current_words = words_of_sentence($current_sent);
+				
+				// 按照 count > $current_count-3 and count <$current_count+3 查询希望比较的语句
+				$compare_query = "select id,text from pali_sent where count>".($current_count-2)." and count<".($current_count+2);
+				$Compare = PDO_FetchALL($compare_query);
+
+				$current_sim_sent_list = new sim_sent_list(); // 新建相似句链表
+				foreach($Compare as $compare_row) {
+					if ($current_row != $compare_row) {
+						$compare_id = $compare_row['id'];
+						$compare_sent = $compare_row['text'];
+						$compare_words = words_of_sentence($compare_sent);
+
+						$jaccard_score = jaccard_similarity($current_words, $compare_words);
+						if ($jaccard_score > 0.3) {
+							$current_sim_sent_list->jaccard_add($compare_id, $jaccard_score);
+						}
+					}
+				} // end of foreach $compare_row
+
+				if ($current_sim_sent_list->size != 0) {
+					print("update ".$current_id."\n");
+					$text_list = $current_sim_sent_list->get_text_list();
+					insert_similar_sent_list_into_sqlite($current_id, $text_list);
+				}
+			} // end of foreach $current_row
+		}
+	}
+	return;
+}
+
+// 实时计算相似句
+function sents_similar_to_id($id) {
+	$query = "SELECT count,text FROM pali_sent WHERE id=".$id;
+	$Current = PDO_FetchALL($query);
+	if (count($Current)) {
+		foreach($Current as $current_row) {
+			$current_count = $current_row['count'];
+			$current_sent = $current_row['text'];
+			$current_words = words_of_sentence($current_sent);
+			print("current text: \n".$current_sent."\n");
+
+			if ($current_count <= 5) {
+				print("[-] too short.\n");
+				return;
+			}
+
+			// 只和单词数大于 5 的比较
+			$compare_query = "SELECT id,text FROM pali_sent WHERE count>5";
+			$Compare = PDO_FetchALL($compare_query);
+
+			$current_sim_sent_list = new sim_sent_list(); // 新建相似句链表
+			foreach($Compare as $compare_row) {
+				if ($current_row != $compare_row) {
+					$compare_id = $compare_row['id'];
+					$compare_sent = $compare_row['text'];
+					$compare_words = words_of_sentence($compare_sent);
+
+					$jaccard_score = jaccard_similarity($current_words, $compare_words);
+					if ($jaccard_score > 0.3) {
+						print("Jaccard similarity: ".$jaccard_score."\tSentence id:".$compare_id."\n");
+						print("Text: \n". $compare_sent."\n");
+						$current_sim_sent_list->jaccard_add($compare_id, $jaccard_score);
+					}
+				}
+			} // end of foreach $compare_row
+
+			if ($current_sim_sent_list->size != 0) {
+				// $current_sim_sent_list->print_list();
+			} else {
+				print("[-]not found.\n");
+			}
+
+		} // end of foreach($Current)
+	} // end of if (count($Current))
+}
+
+$id = $argv[1];
+sents_similar_to_id($id);
+
+if (!isset($_op)) {
+	exit(0);
+}
+
 switch($_op){
 	case "get":
 	{

+ 4 - 3
app/pcdl/html_head.php

@@ -25,10 +25,10 @@ else{
 	<meta name="viewport" content="width=device-width, initial-scale=1">
 	<link type="text/css" rel="stylesheet" href="../pcdl/css/font.css"/>
     <link type="text/css" rel="stylesheet" href="../pcdl/css/basic_style.css"/>
+    <link type="text/css" rel="stylesheet" href="../pcdl/css/style.css"/>
     <link type="text/css" rel="stylesheet" href="../pcdl/css/color_day.css" id="colorchange" />
     <link type="text/css" rel="stylesheet" href="../pcdl/css/style_mobile.css" media="screen and (max-width:767px)">
 
-	<link type="text/css" rel="stylesheet" href="../guide/guide.css"/>
 
     <title>圣典</title>
 
@@ -36,6 +36,7 @@ else{
 	<script src="../public/js/comm.js"></script>
 	<script src="../studio/js/fixedsticky.js"></script>
 	<script src="../guide/guide.js"></script>
+	<link type="text/css" rel="stylesheet" href="../guide/guide.css"/>
 	
 	<script >
 	<?php require_once '../public/load_lang_js.php';?>
@@ -48,10 +49,10 @@ else{
 		line-height: 1.3;
 	}
 	.card .title a , a:link{
-		color:blue;
+		color: var(--tool-link-hover-color);
 	}
 	.card a:hover{
-		color:blue;
+		color: var(--tool-link-hover-color);
 	}
 
 	</style>

+ 2 - 1
app/pcdl/index.php

@@ -2,6 +2,7 @@
 require_once '../pcdl/html_head.php';
 ?>
 <body >	
+
 <style>
 	.content_block{
 		flex: 0 0 auto;
@@ -24,7 +25,7 @@ require_once '../pcdl/html_head.php';
 		margin-bottom: 2em;
 	}
 	.index_list_categories a,a:link{
-		color:blue;
+		color: var(--tool-link-hover-color);
 	}
 	.pd-10{
 		padding:10px;

+ 1 - 1
app/pcdl/language/default.php

@@ -204,7 +204,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/pcdl/language/en.php

@@ -204,7 +204,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/pcdl/language/si.php

@@ -166,7 +166,7 @@ $module_gui_str['editor_project']['1007']="සටහන";//Note
 $module_gui_str['editor_project']['1008']="ශ්‍රවණ";//Audio
 $module_gui_str['editor_project']['1009']="මාතෘකාව ";//Heading
 $module_gui_str['editor_project']['1010']="තොරතුරු";//Infomation
-$module_gui_str['editor_project']['1011']="කර්තෘ";//Author:
+$_local->gui->author="කර්තෘ";//Author:
 $module_gui_str['editor_project']['1012']="සංස්කාරක";//Editor:
 $module_gui_str['editor_project']['1013']="භාෂාව ";//Language:
 $module_gui_str['editor_project']['1014']="පුනරීක්ෂණය ";//Revision:

+ 1 - 1
app/pcdl/language/zh-cn.php

@@ -204,7 +204,7 @@ $module_gui_str['editor_project']['1007']="注解";
 $module_gui_str['editor_project']['1008']="音频";
 $module_gui_str['editor_project']['1009']="标题";
 $module_gui_str['editor_project']['1010']="详细信息";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="编辑";
 $module_gui_str['editor_project']['1013']="语言";
 $module_gui_str['editor_project']['1014']="版本";

+ 1 - 1
app/pcdl/language/zh-tw.php

@@ -204,7 +204,7 @@ $module_gui_str['editor_project']['1007']="註解";
 $module_gui_str['editor_project']['1008']="音頻";
 $module_gui_str['editor_project']['1009']="標題";
 $module_gui_str['editor_project']['1010']="檔案資訊";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="編輯";
 $module_gui_str['editor_project']['1013']="語言";
 $module_gui_str['editor_project']['1014']="版本";

+ 12 - 4
app/public/lang/default.json

@@ -108,8 +108,8 @@
 		"finished": "finished",
 		"g_mean": "G-Mean",
 		"gama_entry": "entry the village",
-		"gramma": "Gramma",
-		"gramma_case": "Gramma Case",
+		"gramma": "nirutti",
+		"gramma_case": "Grammar Case",
 		"guid_creator": "GUID Creator",
 		"guru": "Guru",
 		"h": "(h)",
@@ -235,7 +235,7 @@
 		"pcd_studio": "PCD Studio&nbsp;",
 		"piṭaka": "Piṭaka",
 		"plugin": "Plugin",
-		"poweredby": "Powered by PCSD  build27-Jul-2018",
+		"poweredby": "Powered by PCSD  build 27th-Jul-2018",
 		"preview": "preview",
 		"print": "Print",
 		"print_preview": "Print Preview",
@@ -342,7 +342,7 @@
 		"wizard_my_book": "Wizard -> My Book",
 		"word_base": "Word base",
 		"word_by_word": "Word by Word",
-		"word_gramma_statistics": "Word & Gramma Statistics",
+		"word_gramma_statistics": "Word & Grammar Statistics",
 		"word_length": "average word length",
 		"word_list": "Word List",
 		"word_note": "Word Note",
@@ -449,6 +449,14 @@
 		"general": "General",
 		"username": "Login ID",
 		"change_password": "change the password",
+		"ignore": "ignore",
+		"oversize_to_load": "unable to load due to oversize, please reduce the articles range",
+		"open_doc": "如果未自动跳转,请点此打开",
+		"page_end": "The End of The Page",
+		"academy": "Academy",
+		"preference": "preference",
+		"appearance": "appearance",
+		"theme": "theme",
 		"": ""
 	},
 	"grammastr": [

+ 10 - 3
app/public/lang/en.json

@@ -108,8 +108,8 @@
 		"finished": "finished",
 		"g_mean": "G-Mean",
 		"gama_entry": "entry the village",
-		"gramma": "Gramma",
-		"gramma_case": "Gramma Case",
+		"gramma": "Grammar",
+		"gramma_case": "Grammar Case",
 		"guid_creator": "GUID Creator",
 		"guru": "Guru",
 		"h": "(h)",
@@ -342,7 +342,7 @@
 		"wizard_my_book": "Wizard -> My Book",
 		"word_base": "Word base",
 		"word_by_word": "word by word",
-		"word_gramma_statistics": "Word & Gramma Statistics",
+		"word_gramma_statistics": "Word & Grammar Statistics",
 		"word_length": "average word length",
 		"word_list": "Word List",
 		"word_note": "Word Note",
@@ -449,6 +449,13 @@
 		"general": "General",
 		"username": "Login ID",
 		"change_password": "change the password",
+		"ignore": "ignore",
+		"oversize_to_load": "unable to load due to oversize, please reduce the articles range",
+		"page_end": "The End of The Page",
+		"academy": "Academy",
+		"preference": "preference",
+		"appearance": "appearance",
+		"theme": "theme",
 		"": ""
 	},
 	"grammastr": [

+ 10 - 3
app/public/lang/my.json

@@ -108,8 +108,8 @@
 		"finished": "finished",
 		"g_mean": "G-Mean",
 		"gama_entry": "entry the village",
-		"gramma": "Gramma",
-		"gramma_case": "Gramma Case",
+		"gramma": "Grammar",
+		"gramma_case": "Grammar Case",
 		"guid_creator": "GUID Creator",
 		"guru": "ဂုရု",
 		"h": "(h)",
@@ -342,7 +342,7 @@
 		"wizard_my_book": "Wizard -> My Book",
 		"word_base": "Word base",
 		"word_by_word": "Word by Word",
-		"word_gramma_statistics": "Word & Gramma Statistics",
+		"word_gramma_statistics": "Word & Grammar Statistics",
 		"word_length": "average word length",
 		"word_list": "Word List",
 		"word_note": "Word Note",
@@ -449,6 +449,13 @@
 		"general": "General",
 		"username": "Login ID",
 		"change_password": "change the password",
+		"ignore": "ignore",
+		"oversize_to_load": "unable to load due to oversize, please reduce the articles range",
+		"page_end": "The End of The Page",
+		"academy": "Academy",
+		"preference": "preference",
+		"appearance": "appearance",
+		"theme": "theme",
 		"": "",
 		"": ""
 	},

+ 7 - 0
app/public/lang/si.json

@@ -454,6 +454,13 @@
 		"general": "General",
 		"username": "Login ID",
 		"change_password": "change the password",
+		"ignore": "ignore",
+		"oversize_to_load": "unable to load due to oversize, please reduce the articles range",
+		"page_end": "The End of The Page",
+		"academy": "Academy",
+		"preference": "preference",
+		"appearance": "appearance",
+		"theme": "theme",
 		"": "",
 		"": ""
 	},

+ 13 - 7
app/public/lang/zh-cn.json

@@ -87,7 +87,7 @@
 		"edit_now": "立即编辑",
 		"edit1": "编辑:",
 		"edition": "版本:",
-		"editor": "编辑",
+		"editor": "编辑",
 		"e_mail": "邮箱",
 		"empty": "清空",
 		"empty_history": "清空历史记录",
@@ -202,7 +202,7 @@
 		"newheading": "内容编辑",
 		"newproject": "启动新工程",
 		"newword": "添加词汇",
-		"night": "夜",
+		"night": "夜",
 		"no.": "第",
 		"no_related_file": "没有相关文档",
 		"no_string": "不能",
@@ -236,7 +236,7 @@
 		"pcd_studio": "圣典工作室",
 		"piṭaka": "选栏",
 		"plugin": "插件",
-		"poweredby": "技术支持:圣典工作室",
+		"poweredby": "技术支持:圣典工作室 2018年7月27日",
 		"preview": "预览",
 		"print": "打印",
 		"print_preview": "打印预览",
@@ -272,7 +272,7 @@
 		"sandhi_orginal_word": "连读词原词",
 		"sandhi_splited_word": "连读词拆分",
 		"save": "保存",
-		"script": "巴利字符",
+		"script": "巴利脚本",
 		"search": "搜索",
 		"season": "季节 ",
 		"sec": "秒",
@@ -450,9 +450,15 @@
 		"general": "通用",
 		"username": "用户名",
 		"change_password": "修改密码",
-		"": "",
-		"": "",
-		"": "",
+		"ignore": "忽略",
+		"oversize_to_load": "尺寸过大,无法加载,请缩小加载范围",
+		"open_doc": "如果未自动跳转,请点此打开",
+		"page_end": "已到达页面底端",
+		"academy": "圣书院",
+		"interface": "界面",
+		"preference": "个性化",
+		"appearance": "外观",
+		"theme": "主题",
 		"": ""
 	},
 	"grammastr": [

+ 10 - 2
app/public/lang/zh-tw.json

@@ -236,7 +236,7 @@
 		"pcd_studio": "聖典工作室",
 		"piṭaka": "選欄",
 		"plugin": "外掛",
-		"poweredby": "技術支援:聖典工作室",
+		"poweredby": "技術支援:聖典工作室 2018年7月27日",
 		"preview": "預覽",
 		"print": "列印",
 		"print_preview": "預覽列印",
@@ -272,7 +272,7 @@
 		"sandhi_orginal_word": "黏音詞原詞",
 		"sandhi_splited_word": "黏音詞拆分",
 		"save": "儲存",
-		"script": "巴利字元",
+		"script": "巴利指令碼",
 		"search": "搜尋",
 		"season": "季節",
 		"sec": "秒",
@@ -450,6 +450,14 @@
 		"general": "通用",
 		"username": "使用者名稱",
 		"change_password": "修改密碼",
+		"ignore": "忽略",
+		"oversize_to_load": "尺寸過大,無法載入,請縮減載入範圍",
+		"open_doc": "如果未自動跳轉,請點此開啟",
+		"page_end": "已到達頁面底端",
+		"academy": "聖書院",
+		"preference": "個性化",
+		"appearance": "外觀",
+		"theme": "主題",
 		"": ""
 	},
 	"grammastr": [

+ 1 - 1
app/search/language/default.php

@@ -224,7 +224,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/search/language/en.php

@@ -224,7 +224,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/search/language/sinhala.php

@@ -189,7 +189,7 @@ $module_gui_str['editor_project']['1007']="සටහන";//Note
 $module_gui_str['editor_project']['1008']="ශ්‍රවණ";//Audio
 $module_gui_str['editor_project']['1009']="මාතෘකාව ";//Heading
 $module_gui_str['editor_project']['1010']="තොරතුරු";//Infomation
-$module_gui_str['editor_project']['1011']="කර්තෘ";//Author:
+$_local->gui->author="කර්තෘ";//Author:
 $module_gui_str['editor_project']['1012']="සංස්කාරක";//Editor:
 $module_gui_str['editor_project']['1013']="භාෂාව ";//Language:
 $module_gui_str['editor_project']['1014']="පුනරීක්ෂණය ";//Revision:

+ 1 - 1
app/search/language/tw.php

@@ -226,7 +226,7 @@ $module_gui_str['editor_project']['1007']="註解";
 $module_gui_str['editor_project']['1008']="音頻";
 $module_gui_str['editor_project']['1009']="標題";
 $module_gui_str['editor_project']['1010']="檔案資訊";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="編輯";
 $module_gui_str['editor_project']['1013']="語言";
 $module_gui_str['editor_project']['1014']="版本";

+ 1 - 1
app/search/language/zh.php

@@ -224,7 +224,7 @@ $module_gui_str['editor_project']['1007']="注解";
 $module_gui_str['editor_project']['1008']="音频";
 $module_gui_str['editor_project']['1009']="标题";
 $module_gui_str['editor_project']['1010']="详细信息";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="编辑";
 $module_gui_str['editor_project']['1013']="语言";
 $module_gui_str['editor_project']['1014']="版本";

+ 2 - 2
app/statistics/index.php

@@ -188,14 +188,14 @@ $bookstring="";
 				$prsent1=$prsent*100/$first;
 				$sum_prsent+=$prsent;
 				echo "<tr>";
-				echo "<td>".($i+1)."</td><td>".$Fetch[$i][$groupby]."</td><td>".number_format($sum)."</td><td><span style='width:".$prsent1."px;background-color:red;'></span><span style:'width:".(100-$prsent1)."px;background-color:blue;'></span>".number_format($prsent,3)."</td><td>".number_format($sum_prsent,1)."</td>";
+				echo "<td>".($i+1)."</td><td>".$Fetch[$i][$groupby]."</td><td>".number_format($sum)."</td><td><span style='width:".$prsent1."px;background-color:red;'></span><span style:'width:".(100-$prsent1)."px;background-color: var(--tool-link-hover-color);'></span>".number_format($prsent,3)."</td><td>".number_format($sum_prsent,1)."</td>";
 				echo "</tr>";
 			}
 		}
 		echo "</table>";
 	}
 	else{
-		echo("<h3>Word: <spen style='color:blue;'>$spell</spen></h3>");
+		echo("<h3>Word: <spen style='color: var(--tool-link-hover-color);'>$spell</spen></h3>");
 		$newSpell=$PDO->quote($spell);
 		$query = "SELECT count(*) FROM \"word\" WHERE (word $wordop $newSpell) ";/*查總词數*/
 		$count_word=PDO_FetchOne($query);

+ 1 - 1
app/studio/dictadmin/user/pla.php

@@ -5827,4 +5827,4 @@ function checkVersion(installed,url)
 {var xhr=createCORSRequest('GET',url);if(!xhr)
 return false;xhr.onload=function()
 {if(xhr.responseText.split("\n").indexOf(installed)==-1)
-{document.getElementById('oldVersion').style.display='inline';}};xhr.send();}AAABAAEAEBAAAAEAIAAoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwoKZQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEMDJMAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASDg7BAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAETDw9CCQkJ1QUFBb4AAABjAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgsLVgAAAO8YExP/AAAA7QAAALEAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQNDUsAAADJGBMT/xgTE/8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZERE8DQoKwhgTE/8QDQ2sGBMT/xgTE/8AAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwICHkAAAD/EQwMzQAAAMIAAAD/AAAA7gAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCwtWAAAA8RgTE/8IBQW1AAAA/wAAAP8AAADlAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0KCsEAAAD/EQ8PzAAAAMkAAAD/AAAA/wAAAHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAA/xgTE/8TDw/FAAAA8gAAAP8AAADqAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAALUAAAD/GBMT/wAAALkAAAD/AAAA/wAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAA4wAAAP8GBgbFAAAA2QAAAP8AAADGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAAD5AAAA/RgTE/8AAAD/AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAOIAAAD/AAAA/wAAAHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAArgAAAG4AAAAAAAAAAAAAAAAAAAAA
+{document.getElementById('oldVersion').style.display='inline';}};xhr.send();}AAABAAEAEBAAAAEAIAAoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwoKZQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEMDJMAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASDg7BAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAETDw9CCQkJ1QUFBb4AAABjAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgsLVgAAAO8YExP/AAAA7QAAALEAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQNDUsAAADJGBMT/xgTE/8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZERE8DQoKwhgTE/8QDQ2sGBMT/xgTE/8AAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwICHkAAAD/EQwMzQAAAMIAAAD/AAAA7gAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCwtWAAAA8RgTE/8IBQW1AAAA/wAAAP8AAADlAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0KCsEAAAD/EQ8PzAAAAMkAAAD/AAAA/wAAAHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAA/xgTE/8TDw/FAAAA8gAAAP8AAADqAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAALUAAAD/GBMT/wAAALkAAAD/AAAA/wAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAA4wAAAP8GBgbFAAAA2QAAAP8AAADGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAAD5AAAA/RgTE/8AAAD/AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAOIAAAD/AAAA/wAAAHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAArgAAAG4AAAAAAAAAAAAAAAAAAAAA

+ 44 - 21
app/studio/editor.php

@@ -32,7 +32,12 @@ else{$currDevice="computer";}
 			echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"".$dir_user_base.$userid.$dir_myApp."/style.css\"/>";
 		}
 	?>
-	<title id="file_title"><?php echo $_local->gui->pcd_studio; ?></title>
+
+	<script src="../guide/guide.js"></script>
+	<link type="text/css" rel="stylesheet" href="../guide/guide.css"/>
+	<script src="../public/js/marked.js"></script>
+
+<title id="file_title"><?php echo $_local->gui->pcd_studio; ?></title>
 	<script language="javascript" src="config.js"></script>
 	<script language="javascript" src="js/data.js"></script>
 	<script language="javascript" src="js/common.js"></script>
@@ -43,6 +48,8 @@ else{$currDevice="computer";}
 	<script language="javascript" src="js/wordmap.js"></script>
 	<script language="javascript" src="js/dict.js"></script>
 	<script language="javascript" src="js/relation.js"></script>
+
+
 	<script language="javascript" src="js/relation_list.json"></script>
 	
 	<script language="javascript" src="sent/sent.js"></script>
@@ -164,6 +171,9 @@ else{$currDevice="computer";}
 		width: 1em;
 		margin-left: -1em;
 	}
+	guide {
+		margin: 0 15px 0 -8px;
+	}
 	</style>
 	
 	<!--左侧工具栏-->
@@ -369,7 +379,7 @@ foreach($plugin_list as $info){
 					</button> 
 				
 				<!--Save-->
-				<button id="B_Save" class="icon_btn" onclick="editor_save()" type="button" title="<?php echo $module_gui_str['editor']['1017'];?>">
+				<button id="B_Save" class="icon_btn" onclick="editor_save()" type="button" style="display:none;" title="<?php echo $module_gui_str['editor']['1017'];?>">
 						<svg class="icon">
 							<use xlink:href="svg/icon.svg#ic_save"></use>
 						</svg>
@@ -579,7 +589,8 @@ foreach($plugin_list as $info){
 			<div id="modify_detaile">
 				<!-- 意思 -->
 				<div class="edit_detail_p">
-					<span class="edit_detail_span"><?php echo $_local->gui->g_mean;?>:</span>
+					<guide gid="studio_general_meaning"></guide>
+					<span class="edit_detail_span"><?php echo $_local->gui->meaning;?>:</span>
 					<input type="text" id="input_meaning" class="input_bar" value="" name="in_meaning">
 					<div class="case_dropdown">
 						<svg class="edit_icon">
@@ -591,7 +602,8 @@ foreach($plugin_list as $info){
 				</div>
 				<!-- 拆分 -->
 				<div class="edit_detail_p">
-					<span class="edit_detail_span"><?php echo $_local->gui->factor;?>:</span>
+					<guide gid="studio_break_down"></guide>
+					<span class="edit_detail_span"><?php echo $_local->gui->part;?>:</span>
 					<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">
@@ -603,13 +615,15 @@ foreach($plugin_list as $info){
 				</div>
 				<!-- 拆分意思 -->
 				<div class="edit_detail_p" >
-					<span class="edit_detail_span"><?php echo $_local->gui->f_mean;?>:</span>
+					<guide gid="studio_part_meaning"></guide>
+					<span class="edit_detail_span"><?php echo $_local->gui->partmeaning;?>:</span>
 					<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;">
@@ -621,7 +635,8 @@ foreach($plugin_list as $info){
 						<button style="margin-left:auto; display:none;" onclick="input_org_switch('input_select_case','input_case')">
 							<?php echo $_local->gui->source;?>
 						</button>
-						<div class="case_dropdown">
+					</div>				
+					<div class="case_dropdown">
 							<svg class="edit_icon">
 								<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_more"></use>
 							</svg>
@@ -629,10 +644,10 @@ foreach($plugin_list as $info){
 							<div id="word_mdf_case_dropdown" class="case_dropdown-content">
 							</div>
 						</div>								
-					</div>				
 				</div>
 				<!-- 语基 -->
 				<div class="edit_detail_p">
+					<guide gid="studio_parent"></guide>
 				<script>
 					function edit_show_prt_prt(obj){
 						let o = obj.getElementsByTagName("svg");
@@ -668,13 +683,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)" />
@@ -785,7 +801,7 @@ foreach($plugin_list as $info){
 					<option value="tw">正體中文</option>
 			</select>
 			<span>
-				<?php echo $module_gui_str['editor_project']['1011'];?>
+				<?php echo $_local->gui->author;?>
 				<input type="input" id="id_text_edit_author" onkeydown="match_key(this)" onkeyup="unicode_key(this)"/>
 				<?php echo $module_gui_str['editor_project']['1042'];?>
 				<input id="id_text_edit_area_smart_switch" type="checkbox" checked="">
@@ -876,23 +892,23 @@ foreach($plugin_list as $info){
 		</div>
 	</div>
 	
-	<div id="end_of_page" class="borderT textS textAc">
-	The End of The Page<br>
-	——wikipāli studio——
+	<div id="end_of_page" class="borderT textS textAc" style="font-size: medium;">
+	<?php echo $_local->gui->page_end; ?><br>
+	——wikipāḷi <?php echo $_local->gui->studio; ?>——
 	</div>
 	
 	<style>
 	#word_note_pop{
 	border-radius: 6px;
     width: 95%;
-    max-height: 50%;
-    height: 10em;
+	max-height: calc(30vh);
     position: fixed;
-    top: calc(100% - 11em);
+    bottom: 10px;
     left: 3em;
-    background-color: var(--booka);
+	background-color: var(--drop-bg-color);
 	overflow-y: auto;
 	display:none;
+
 }
 
 
@@ -903,7 +919,12 @@ foreach($plugin_list as $info){
 	}
 	</script>
 	<div id="word_note_pop">
-		<div id="word_note_pop_title"><span onclick="close_word_note_pop()">[close]</span></div>
+		<div id="word_note_pop_title" style="background-color: var(--border-shadow);">
+			<span onclick="close_word_note_pop()" style="display: flex;">
+				<svg style="fill: var(--main-color);margin: 5px;height: 15px;width: 15px;"  t="1597905254064" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2185" ><path d="M573.207 527.834l404.184-404.22a52.811 52.811 0 0 0 0-74.401l-2.217-2.217a52.836 52.836 0 0 0-74.413 0l-404.209 404.73-404.22-404.9a52.823 52.823 0 0 0-74.401 0l-2.217 2.217a51.915 51.915 0 0 0 0 74.414l404.22 404.377-404.22 404.22a52.823 52.823 0 0 0 0 74.402l2.217 2.217a52.811 52.811 0 0 0 74.401 0l404.22-404.22 404.22 404.22a52.823 52.823 0 0 0 74.414 0l2.217-2.217a52.811 52.811 0 0 0 0-74.401z m0 0" p-id="2186"></path>
+				</svg>
+			</span>
+		</div>
 		<div id="word_note_pop_content">
 		</div>
 	</div>
@@ -1107,7 +1128,9 @@ catch(e){
 	<script language="javascript" src="module/editor_dictionary/language/<?php echo $currLanguage; ?>.js"></script>
 	<script language="javascript" src="module/editor_plugin/module_function.js"></script>
 	<script language="javascript" src="module/editor_plugin/language/<?php echo $currLanguage; ?>.js"></script>
-
+	<script>
+		guide_init();
+	</script>
 </body>
 
 </html>

+ 22 - 23
app/studio/index.php

@@ -362,24 +362,24 @@ else{
 <div id="login_right">
 
 	<div class="help_div">
-		<div  class="htlp_title">个性化设置</div>
+		<div  class="htlp_title"><?php echo $_local->gui->preference;?></div>
 		<div>
 			<div class="help_fun_block">
-				<div class="title" >语言</div>
+				<div class="title" ><?php echo $_local->gui->language;?></div>
 				<div >
-				界面语言:<a>English</a> <a>简体中文</a> <a>繁体中文</a> <a>更多</a>
+					<?php echo $_local->gui->interface;?>:<a>English</a> <a>简体中文</a> <a>繁體中文</a><a>සින්හල</a> <a>မြန်မာ</a> <a><?php echo $_local->gui->more;?></a>
 				</div>
 				<div >
-				常用译文语言:<a>English</a> <a>简体中文</a> <a>繁体中文</a> <a>更多</a>
+					<?php echo $_local->gui->dictionary." & ".$_local->gui->translation;?>:<a>English</a> <a>简体中文</a> <a>繁体中文</a> <a>සින්හල</a> <a>မြန်မာ</a> <a><?php echo $_local->gui->more;?></a>
 				</div>
 				<div >
-				巴利脚本:<a>Roma</a> <a>sinhala</a> <a>mymar</a>
+					<?php echo $_local->gui->script;?>:<a>Pāḷi Roman</a> <a>සින්හල</a> <a>မြန်မာ</a> <a>తెలుగు</a> <a><?php echo $_local->gui->more;?></a>
 				</div>
 			</div>
 			<div class="help_fun_block">
-				<div class="title" >外观</div>
+				<div class="title" ><?php echo $_local->gui->appearance;?></div>
 				<div >
-				颜色搭配:<a>静夜</a> <a>白色</a> <a>黄昏</a> <a>更多</a>
+				<?php echo $_local->gui->theme;?>:<a><?php echo $_local->gui->night;?></a> <a><?php echo $_local->gui->white;?></a> <a><?php echo $_local->gui->dwan;?></a> <a><?php echo $_local->gui->more;?></a>
 				</div>
 			</div>
 		</div>
@@ -388,29 +388,28 @@ else{
 
 	<div class="help_div">
 		<div  class="htlp_title">
-		统计
-		<?php //echo $_local->gui->wikipali_suite;?>
+			<?php echo $_local->gui->statistical_data;?>
 		</div>
 		<div>
 			<div class="help_fun_block">
-				<div class="title" >译经楼</div>
+				<div class="title" ><?php echo $_local->gui->studio;?></div>
 				<ul class="help_fun_block_link_list">
 					<li style="display:block;">已发表的文集:2</li>
 					<li style="display:block;">已发表的文章:12</li>
-					<li style="display:block;">私有文档:234</li>
-					<li style="display:block;">圣典百科:245</li>
+					<li style="display:block;"><?php echo $_local->gui->my_document;?>:234</li>
+					<li style="display:block;"><?php echo $_local->gui->encyclopedia;?>:245</li>
 				</ul>
 			</div>
 			<div class="help_fun_block">
-				<div class="title" >藏经阁</div>
+				<div class="title" ><?php echo $_local->gui->library;?></div>
 				<ul class="help_fun_block_link_list" style="display:unset;">
 					<li style="display:block;">文集:2</li>
 					<li style="display:block;">文章:12</li>
-					<li style="display:block;">百科:245</li>
+					<li style="display:block;"><?php echo $_local->gui->encyclopedia;?>:245</li>
 				</ul>
 			</div>
 			<div class="help_fun_block">
-				<div class="title" >圣书院</div>
+				<div class="title" ><?php echo $_local->gui->academy;?></div>
 				<ul class="help_fun_block_link_list" >
 					<li style="display:block;">创建课程:2</li>
 					<li style="display:block;">主讲课程:12</li>
@@ -482,7 +481,7 @@ file_list();
 	</div>
 	
 	<div class="foot_div">
-	<?php echo $module_gui_str['editor']['1066'];?>
+		<?php echo $_local->gui->poweredby;?>
 	</div>
 
 
@@ -497,14 +496,14 @@ file_list();
 		}
 		</style>
 	<div id="rs_doc_coop_shell">
-	<div id="rs_doc_coop_win" >
-	<div id="rs_doc_coop_win_inner" >
+		<div id="rs_doc_coop_win" >
+			<div id="rs_doc_coop_win_inner" >
 
-	</div>
-	<div id="rs_doc_coop_win_foot" >
-		<button onclick="file_coop_win_close()">关闭</button>
-	</div>
-	</div>
+			</div>
+			<div id="rs_doc_coop_win_foot" >
+				<button onclick="file_coop_win_close()">关闭</button>
+			</div>
+		</div>
 	</div>
 
 

+ 1 - 1
app/studio/index_tool_bar.php

@@ -84,7 +84,7 @@
 			<div >
 					<div>
 						<div>
-							<input id="search_input" type="input" placeholder='<?php echo $_local->gui->search;?>' onkeyup="search_input_keyup(event,this)" style="margin-left: 0.5em;width: 40em;max-width: 80%" onfocus="search_input_onfocus()">
+							<input id="search_input" type="input" placeholder='<?php echo $_local->gui->undone_function;?>' onkeyup="search_input_keyup(event,this)" style="margin-left: 0.5em;width: 40em;max-width: 80%" onfocus="search_input_onfocus()">
 						</div>
 						<div id="pre_search_result">
 							<div id="pre_search_chapter" class="pre_serach_block">

Разница между файлами не показана из-за своего большого размера
+ 335 - 369
app/studio/js/common.js


+ 227 - 202
app/studio/js/index_mydoc.js

@@ -1,271 +1,296 @@
-var my_file_title="";
-var my_file_status="all";//recycle
-var my_file_order="DESC";//ASC
+var my_file_title = "";
+var my_file_status = "all";//recycle
+var my_file_order = "DESC";//ASC
 
-function file_search_keyup(){
+function file_search_keyup() {
 	file_list_refresh();
 }
 
-function recycleInit(){
-		ntf_init();
+function recycleInit() {
+	ntf_init();
 	file_list_refresh();
 }
-function indexInit(){
+function indexInit() {
 	ntf_init();
 	file_list_refresh();
 }
+function time_standardize(date) {
+	var today_date = new Date();
+	var Local_time = date.toLocaleTimeString();
+	//將時間去掉秒的信息
+	if (Local_time && Local_time.split(":").length == 3) {
+		var Local_time_string = Local_time.split(":")[0] + ":" + Local_time.split(":")[1];
+		Local_time_string += Local_time.split(":")[2].slice(2);
+	}
+	else {
+		var Local_time_string = d.toLocaleTimeString()
+	}
+	if (date.toLocaleDateString() == today_date.toLocaleDateString()) {//如果是今天的消息,只显示时间
+		return (Local_time_string);
+	}
+	else if (date.toLocaleDateString().slice(0, 5) == today_date.toLocaleDateString().slice(0, 5)) {//如果是今年但非今天的消息,只显示月日
+		var date_length = date.toLocaleDateString().length;
+		return (date.toLocaleDateString().slice(5, date_length));
+	}
+	else {//如果不是今年的消息,显示年月日
+		return (date.toLocaleDateString());
+	}
+
+}
 
 
-function file_list_refresh(){
-	var d=new Date();
+function file_list_refresh() {
+	var d = new Date();
 	$.get("getfilelist.php",
-	  {
-		t:d.getTime(),
-		keyword:my_file_title,
-		status:$("#id_index_status").val(),
-		orderby:"accese_time",
-		order:"DESC",
-		currLanguage:$("#id_language").val()
-	  },
-	  function(data,status){
-		  try{
-			let file_list = JSON.parse(data);
-			let html="";
-			for(x in file_list){
-				html += "<div class=\"file_list_row\">";
-				html += "<div class=\"file_list_col_1\">";
-				html += "<input id='file_check_"+x+"' type=\"checkbox\" />";
-				html += "<input id='file_id_"+x+"' value='"+file_list[x].id+"' type=\"hidden\" />";
-				html += "</div>";
-				if(file_list[x].doc_info && file_list[x].doc_info.length>1){
-					$link="<a href='editor.php?op=opendb&fileid="+file_list[x].id+"' target='_blank'>[db]";
-				}
-				else{
-					$link="<a href='editor.php?op=open&fileid="+file_list[x].id+"' target='_blank'>";
-				}
-				html += "<div class=\"file_list_col_2\">";
-				if((file_list[x].parent_id == null || file_list[x].parent_id == "") && parseInt(file_list[x].share)==1){
-						//shared
-						html += "<span onclick=\"file_show_coop_win('"+file_list[x].id+"')\">";
-				}
-				else{
-					html += "<span>";
-				}
-				
-				html += "<svg class='icon' style='margin: 0 5px;'>";
-				if(file_list[x].parent_id == null || file_list[x].parent_id == ""){
-					if(parseInt(file_list[x].share)==1){
+		{
+			t: d.getTime(),
+			keyword: my_file_title,
+			status: $("#id_index_status").val(),
+			orderby: "accese_time",
+			order: "DESC",
+			currLanguage: $("#id_language").val()
+		},
+		function (data, status) {
+			try {
+				let file_list = JSON.parse(data);
+				let html = "";
+				for (x in file_list) {
+					html += "<div class=\"file_list_row\">";
+					html += "<div class=\"file_list_col_1\">";
+					html += "<input id='file_check_" + x + "' type=\"checkbox\" />";
+					html += "<input id='file_id_" + x + "' value='" + file_list[x].id + "' type=\"hidden\" />";
+					html += "</div>";
+					if (file_list[x].doc_info && file_list[x].doc_info.length > 1) {
+						$link = "<a href='editor.php?op=opendb&fileid=" + file_list[x].id + "' target='_blank'>[db]";
+					}
+					else {
+						$link = "<a href='editor.php?op=open&fileid=" + file_list[x].id + "' target='_blank'>";
+					}
+					html += "<div class=\"file_list_col_2\">";
+					if ((file_list[x].parent_id == null || file_list[x].parent_id == "") && parseInt(file_list[x].share) == 1) {
 						//shared
-						html += "<use xlink:href=\"./svg/icon.svg#share_to_other\"></use>";
+						html += "<span onclick=\"file_show_coop_win('" + file_list[x].id + "')\">";
 					}
-					else{
-					//my document
-					html += "<use xlink:href=\"./svg/icon.svg#ic_person\"></use>";							
+					else {
+						html += "<span>";
 					}
-				}
-				else{
-					//fork
-					html += "<use xlink:href=\"./svg/icon.svg#other_share_to_me\"></use>";
-				}
-				html += "</svg>";
-				html += "</span>";
-				html += "<div id='coop_show_"+file_list[x].id+"' style='display:inline;'></div>";
-				html += $link+file_list[x].title;
-				html += "</a>";
 
-				
-				html += "</div>";
-				html += "<div class=\"file_list_col_3\">";
-
-				if((file_list[x].parent_id && file_list[x].parent_id.length>10) || parseInt(file_list[x].share)==1){
-					html += "<svg class='icon'>";
-					html += "<use xlink:href=\"./svg/icon.svg#ic_two_person\"></use>";
+					html += "<svg class='icon' style='margin: 0 5px;'>";
+					if (file_list[x].parent_id == null || file_list[x].parent_id == "") {
+						if (parseInt(file_list[x].share) == 1) {
+							//shared
+							html += "<use xlink:href=\"./svg/icon.svg#share_to_other\"></use>";
+						}
+						else {
+							//my document
+							html += "<use xlink:href=\"./svg/icon.svg#ic_person\"></use>";
+						}
+					}
+					else {
+						//fork
+						html += "<use xlink:href=\"./svg/icon.svg#other_share_to_me\"></use>";
+					}
 					html += "</svg>";
+					html += "</span>";
+					html += "<div id='coop_show_" + file_list[x].id + "' style='display:inline;'></div>";
+					html += $link + file_list[x].title;
+					html += "</a>";
+
+
+					html += "</div>";
+					html += "<div class=\"file_list_col_3\">";
+
+					if ((file_list[x].parent_id && file_list[x].parent_id.length > 10) || parseInt(file_list[x].share) == 1) {
+						html += "<svg class='icon'>";
+						html += "<use xlink:href=\"./svg/icon.svg#ic_two_person\"></use>";
+						html += "</svg>";
+					}
+					html += "</div>";
+					html += "<div class=\"file_list_col_4\">";
+					let d = new Date();
+					let today_date = d.toLocaleDateString();
+					d.setTime(file_list[x].accese_time);
+					let Local_time = "";
+					Local_time = time_standardize(d);
+					/*
+					if(d.getHours()<=9){
+						Local_time +=":0"+d.getHours();
+					}
+					else{
+						Local_time += ":"+d.getHours();
+					}
+					if(d.getMinutes()<=9){
+						Local_time +=":0"+d.getMinutes();
+					}
+					else{
+						Local_time += ":"+d.getMinutes();
+					}
+					let Local_date = d.toLocaleDateString();
+					if(today_date==Local_date){
+						html += gLocal.gui.today+Local_time;
+					}
+					else{
+						html += Local_date;
+					}
+					*/
+					html += Local_time
+					html += "</div>";
+					html += "<div class=\"file_list_col_5\">";
+
+					if (file_list[x].file_size < 102) {
+						$str_size = file_list[x].file_size + "B";
+					}
+					else if (file_list[x].file_size < (1024 * 902)) {
+						$str_size = (file_list[x].file_size / 1024).toFixed(0) + "KB";
+					}
+					else {
+						$str_size = (file_list[x].file_size / (1024 * 1024)).toFixed(1) + "MB";
+					}
+					html += $str_size;
+					if (!(file_list[x].doc_info && file_list[x].doc_info.length > 1)) {
+						html += "<a href='../doc/pcs2db.php?doc_id=" + file_list[x].id + "' target='_blank'>转数据库格式</a>";
+					}
+					html += "</div>";
+					html += "</div>";
 				}
-				html += "</div>";
-				html += "<div class=\"file_list_col_4\">";
-				let d = new Date();
-				let today_date=d.toLocaleDateString();
-				d.setTime(file_list[x].accese_time);
-				let Local_time = "";
-				if(d.getHours()<=9){
-					Local_time +=":0"+d.getHours();
-				}
-				else{
-					Local_time += ":"+d.getHours();
-				}
-				if(d.getMinutes()<=9){
-					Local_time +=":0"+d.getMinutes();
-				}
-				else{
-					Local_time += ":"+d.getMinutes();
-				}
-				let Local_date = d.toLocaleDateString();
-				if(today_date==Local_date){
-					html += gLocal.gui.today+Local_time;
-				}
-				else{
-					html += Local_date;
-				}
-				
-				html += "</div>";
-				html += "<div class=\"file_list_col_5\">";
-				
-				if(file_list[x].file_size<102){
-					$str_size=file_list[x].file_size+"B";
-				}
-				else if(file_list[x].file_size<(1024*902)){
-					$str_size=(file_list[x].file_size/1024).toFixed(0)+"KB";
-				}
-				else{
-					$str_size=(file_list[x].file_size/(1024*1024)).toFixed(1)+"MB";
-				}
-				html += $str_size;
-				if(!(file_list[x].doc_info && file_list[x].doc_info.length>1)){
-					html += "<a href='../doc/pcs2db.php?doc_id="+file_list[x].id+"' target='_blank'>转数据库格式</a>";
-				}
-				html += "</div>";
-				html += "</div>";
+				html += "<input id='file_count' type='hidden' value='" + file_list.length + "'/>"
+				$("#userfilelist").html(html);
+			}
+			catch (e) {
+				console.error(e.message);
 			}
-			html += "<input id='file_count' type='hidden' value='"+file_list.length+"'/>"
-			$("#userfilelist").html(html);
-		  }
-		  catch(e){
-			  console.error(e.message);
-		  }
-	  });
+		});
 }
 
-function showUserFilaList()
-{
+function showUserFilaList() {
 	file_list_refresh();
 }
 
-		
-function mydoc_file_select(doSelect){
-	if(doSelect){
+
+function mydoc_file_select(doSelect) {
+	if (doSelect) {
 		$("#file_tools").show();
 		$("#file_filter").hide();
 		$(".file_select_checkbox").show();
-		$(".file_select_checkbox").css("display","inline-block");
-		
-		if($("#id_index_status").val()=="recycle"){
+		$(".file_select_checkbox").css("display", "inline-block");
+
+		if ($("#id_index_status").val() == "recycle") {
 			$("#button_group_recycle").show();
 			$("#button_group_nomal").hide();
 		}
-		else{
+		else {
 			$("#button_group_recycle").hide();
-			$("#button_group_nomal").show();			
+			$("#button_group_nomal").show();
 		}
 	}
-	else{
+	else {
 		$("#file_tools").hide();
 		$("#file_filter").show();
 		$(".file_select_checkbox").hide();
 	}
 }
 
-function file_del(){
-	var file_list=new Array();
-	var file_count=$("#file_count").val();
-	for(var i=0;i<file_count;i++){
-		if(document.getElementById("file_check_"+i).checked){
-			file_list.push($("#file_id_"+i).val());
+function file_del() {
+	var file_list = new Array();
+	var file_count = $("#file_count").val();
+	for (var i = 0; i < file_count; i++) {
+		if (document.getElementById("file_check_" + i).checked) {
+			file_list.push($("#file_id_" + i).val());
 		}
 	}
-	if(file_list.length>0){
-	$.post("file_index.php",
-	  {
-		op:"delete",
-		file:file_list.join()
-	  },
-	  function(data,status){
-		ntf_show(data);
-		file_list_refresh();
-	  });
+	if (file_list.length > 0) {
+		$.post("file_index.php",
+			{
+				op: "delete",
+				file: file_list.join()
+			},
+			function (data, status) {
+				ntf_show(data);
+				file_list_refresh();
+			});
 	}
 }
 //彻底删除
-function file_remove(){
-	var file_list=new Array();
-	var file_count=$("#file_count").val();
-	for(var i=0;i<file_count;i++){
-		if(document.getElementById("file_check_"+i).checked){
-			file_list.push($("#file_id_"+i).val());
+function file_remove() {
+	var file_list = new Array();
+	var file_count = $("#file_count").val();
+	for (var i = 0; i < file_count; i++) {
+		if (document.getElementById("file_check_" + i).checked) {
+			file_list.push($("#file_id_" + i).val());
 		}
 	}
-	if(file_list.length>0){
-	$.post("file_index.php",
-	  {
-		op:"remove",
-		file:file_list.join()
-	  },
-	  function(data,status){
-		ntf_show(data);
-		file_list_refresh();
-	  });
+	if (file_list.length > 0) {
+		$.post("file_index.php",
+			{
+				op: "remove",
+				file: file_list.join()
+			},
+			function (data, status) {
+				ntf_show(data);
+				file_list_refresh();
+			});
 	}
 }
 //从回收站中恢复
-function file_restore(){
-	var file_list=new Array();
-	var file_count=$("#file_count").val();
-	for(var i=0;i<file_count;i++){
-		if(document.getElementById("file_check_"+i).checked){
-			file_list.push($("#file_id_"+i).val());
+function file_restore() {
+	var file_list = new Array();
+	var file_count = $("#file_count").val();
+	for (var i = 0; i < file_count; i++) {
+		if (document.getElementById("file_check_" + i).checked) {
+			file_list.push($("#file_id_" + i).val());
 		}
 	}
-	if(file_list.length>0){
-	$.post("file_index.php",
-	  {
-		op:"restore",
-		file:file_list.join()
-	  },
-	  function(data,status){
-		ntf_show(data);
-		file_list_refresh();
-	  });
+	if (file_list.length > 0) {
+		$.post("file_index.php",
+			{
+				op: "restore",
+				file: file_list.join()
+			},
+			function (data, status) {
+				ntf_show(data);
+				file_list_refresh();
+			});
 	}
 }
-function file_share(isShare){
-	var file_list=new Array();
-	var file_count=$("#file_count").val();
-	for(var i=0;i<file_count;i++){
-		if(document.getElementById("file_check_"+i).checked){
-			file_list.push($("#file_id_"+i).val());
+function file_share(isShare) {
+	var file_list = new Array();
+	var file_count = $("#file_count").val();
+	for (var i = 0; i < file_count; i++) {
+		if (document.getElementById("file_check_" + i).checked) {
+			file_list.push($("#file_id_" + i).val());
 		}
 	}
-	if(file_list.length>0){
-		if(isShare){
-			var share=1;
+	if (file_list.length > 0) {
+		if (isShare) {
+			var share = 1;
 		}
-		else{
-			var share=0;
+		else {
+			var share = 0;
 		}
 		$.post("file_index.php",
-		{
-			op:"share",
-			share:share,
-			file:file_list.join()
-		},
-		function(data,status){
-		alert(data);
-		//mydoc_file_select(false);
-		file_list_refresh();
-		});
+			{
+				op: "share",
+				share: share,
+				file: file_list.join()
+			},
+			function (data, status) {
+				alert(data);
+				//mydoc_file_select(false);
+				file_list_refresh();
+			});
 	}
 }
 
-function file_show_coop_win(doc_id){
-	let xFileHead = document.getElementById("coop_show_"+doc_id);
+function file_show_coop_win(doc_id) {
+	let xFileHead = document.getElementById("coop_show_" + doc_id);
 	let xCoopWin = document.getElementById("rs_doc_coop_win");
 	xFileHead.appendChild(xCoopWin);
-	coop_init(doc_id,"rs_doc_coop_win_inner");
+	coop_init(doc_id, "rs_doc_coop_win_inner");
 	coop_list();
 }
 
-function file_coop_win_close(){
+function file_coop_win_close() {
 	let xShell = document.getElementById("rs_doc_coop_shell");
 	let xCoopWin = document.getElementById("rs_doc_coop_win");
-	xShell.appendChild(xCoopWin);	
+	xShell.appendChild(xCoopWin);
 }

+ 64 - 64
app/studio/js/index_share.js

@@ -1,77 +1,77 @@
-function indexInit(){
+function indexInit() {
 	ntf_init();
 	file_list_refresh();
 }
 
-function file_list_refresh(){
-	var d=new Date();
+function file_list_refresh() {
+	var d = new Date();
 	$.get("../doc/coopfilelist.php",
-	  {
-		t:d.getTime()
-	  },
-	  function(data,status){
-		  try{
-			let file_list = JSON.parse(data);
-			let html="";
-			for(x in file_list){
-				html += '<div class="file_list_row" >';
-				html += '<div class="file_list_col_1" >';
-				html += "<svg class='icon' style='margin: 0 5px;'>";
-				html += '<use xlink:href="./svg/icon.svg#share_to_other"></use>';
-				html += "</svg>";
-				html += "</div>";
+		{
+			t: d.getTime()
+		},
+		function (data, status) {
+			try {
+				let file_list = JSON.parse(data);
+				let html = "";
+				for (x in file_list) {
+					html += '<div class="file_list_row" >';
+					html += '<div class="file_list_col_1" >';
+					html += "<svg class='icon' style='margin: 0 5px;'>";
+					html += '<use xlink:href="./svg/icon.svg#share_to_other"></use>';
+					html += "</svg>";
+					html += "</div>";
 
-				html += '<div class="file_list_col_2" >';
-				if(file_list[x].power_status==1){
-					//html += "[新]";
-				}
-				if(file_list[x].doc_info && file_list[x].doc_info.length>1){
-					$link="<a href='project.php?op=open&doc_id="+file_list[x].id+ "' target='_blank'>[db]";
-				}
-				else{
-					$link="<a href='editor.php?op=open&fileid="+file_list[x].id+"&filename="+file_list[x].file_name+"' target='_blank'>";
+					html += '<div class="file_list_col_2" >';
+					if (file_list[x].power_status == 1) {
+						//html += "[新]";
+					}
+					if (file_list[x].doc_info && file_list[x].doc_info.length > 1) {
+						$link = "<a href='project.php?op=open&doc_id=" + file_list[x].id + "' target='_blank'>[db]";
+					}
+					else {
+						$link = "<a href='editor.php?op=open&fileid=" + file_list[x].id + "&filename=" + file_list[x].file_name + "' target='_blank'>";
 
-				}
-                html += "<div class=\"file_list_title\">"+$link+file_list[x].title+"</a></div>";
-                
-				html += '<div class="file_list_path">';
-                html += file_list[x].path;
-				html += "</div>";
-                html += '<div class="file_list_summary">';
-                html += "</div>";
-				html += "</div>";
-				
+					}
+					html += "<div class=\"file_list_title\">" + $link + file_list[x].title + "</a></div>";
 
-				html += '<div class="file_list_col_3" >';
-				html += '<div class="file_list_owner">';
-				html += "<svg class='icon' >";
-				html += "<use xlink:href=\"./svg/icon.svg#ic_person\"></use>";
-				html += "</svg>";
-				html += file_list[x].user_name+'</div>';
+					html += '<div class="file_list_path">';
+					html += file_list[x].path;
+					html += "</div>";
+					html += '<div class="file_list_summary">';
+					html += "</div>";
+					html += "</div>";
 
- 				let d = new Date();
-				d.setTime(file_list[x].power_create_time);
-				let Local_date = d.toLocaleDateString();               
-				html += '<div class="file_list_date">'+Local_date+'</div>';
-				html += "</div>";
 
-				html += '<div class="file_list_col_4" >';
-				if(file_list[x].my_doc_id.length>20){
-					html += "<a href='editor.php?op=opendb&doc_id="+file_list[x].my_doc_id+ "' target='_blank'>[打开]</a>";
-				}
-				else{
-					html += "[复刻]";
-				}
-				html += "[忽略]";
-				html += "</div>";
-	
+					html += '<div class="file_list_col_3" >';
+					html += '<div class="file_list_owner">';
+					html += "<svg class='icon' >";
+					html += "<use xlink:href=\"./svg/icon.svg#ic_person\"></use>";
+					html += "</svg>";
+					html += file_list[x].user_name + '</div>';
 
-				html += "</div>";
+					let d = new Date();
+					d.setTime(file_list[x].power_create_time);
+					let Local_date = d.toLocaleDateString();
+					html += '<div class="file_list_date">' + Local_date + '</div>';
+					html += "</div>";
+
+					html += '<div class="file_list_col_4" >';
+					if (file_list[x].my_doc_id.length > 20) {
+						html += "<a href='editor.php?op=opendb&doc_id=" + file_list[x].my_doc_id + "' target='_blank'>[" + gLocal.gui.open + "]</a>";
+					}
+					else {
+						html += "[" + gLocal.gui.folk + "]";
+					}
+					html += "[" + gLocal.gui.ignore + "]";
+					html += "</div>";
+
+
+					html += "</div>";
+				}
+				$("#userfilelist").html(html);
+			}
+			catch (e) {
+				console.error(e.message);
 			}
-			$("#userfilelist").html(html);
-		  }
-		  catch(e){
-			  console.error(e.message);
-		  }
-	  });
+		});
 }

+ 5 - 1
app/studio/js/message.js

@@ -415,7 +415,11 @@ function time_standardize(date) {
 	if (date.toLocaleDateString() == today_date.toLocaleDateString()) {//如果是今天的消息,只显示时间
 		return (Local_time_string);
 	}
-	else {//如果不是今天的消息,只显示日期
+	else if (date.toLocaleDateString().slice(0, 5) == today_date.toLocaleDateString().slice(0, 5)) {//如果是今年但非今天的消息,只显示月日
+		var date_length = date.toLocaleDateString().length;
+		return (date.toLocaleDateString().slice(5, date_length - 1));
+	}
+	else {//如果不是今年的消息,显示年月日
 		return (date.toLocaleDateString());
 	}
 

+ 11 - 5
app/studio/js/render.js

@@ -339,7 +339,7 @@ function insertBlockToHtml(element) {
 			//document.getElementById("id_heading_level_"+bookId+"_"+(paragraph-1)).value=headingLevel;
 			break;
 	}
-
+	guide_init();
 }
 
 function updataHeadingBlockInHtml(book, par) {
@@ -463,7 +463,7 @@ function renderTranslateParBlockInner(elementBlock) {
 		}
 		output += "<div id='tran_pre_" + bId + "_" + senA + "' class='tran_sent_pre'>";
 		if (senText == "") {
-			output += "<span style='color:gray;'>我的译文</span>";
+			output += "<span style='color:gray;'>" + gLocal.gui.translation + "</span>";
 		}
 		else {
 			output += term_std_str_to_tran(senText);
@@ -1009,8 +1009,11 @@ function render_sent_tool_bar(elementBlock, begin) {
 	output += "<div class='sent_wbw_trans_bar'>";
 	let sentIdString = abook + "-" + aparagraph + "-" + iBegin + "-" + iEnd;
 	let sentIdStringLink = "{{" + sentIdString + "}}";
-	output += "<span>" + sentIdString + "<a onclick=\"copy_to_clipboard('" + sentIdStringLink + "')\">[" + gLocal.gui.copy_to_clipboard + "]</a></span>";
+	output += "<span>" + sentIdString + "<a onclick=\"copy_to_clipboard('" + sentIdStringLink + "')\">[";
+	output += gLocal.gui.copy_to_clipboard;
+	output += "]</a></span>";
 	//	output += "<span>"+abook+"-"+aparagraph+"-"+iBegin+"-"+iEnd+"</span>";
+	output += "<guide gid='sent_func' style='margin:unset;'></guide>";
 	output += "</div>";
 	return (output);
 }
@@ -1193,7 +1196,10 @@ function renderWordParBlockInner(elementBlock) {
 				output += "<div class='sent_wbw_trans_bar'>";
 				let sentIdString = book + "-" + paragraph + "-" + nextBegin + "-" + nextEnd;
 				let sentIdStringLink = "{{" + sentIdString + "}}";
-				output += "<span>" + sentIdString + "<a onclick=\"copy_to_clipboard('" + sentIdStringLink + "')\">[" + gLocal.gui.copy_to_clipboard + "]</a></span>";
+				output += "<span>" + sentIdString + "<a onclick=\"copy_to_clipboard('" + sentIdStringLink + "')\">[";
+				output += gLocal.gui.copy_to_clipboard;
+				output += "]</a></span>";
+				output += "<guide gid='sent_func' style='margin:unset;'></guide>";
 				output += "</div>";
 
 				output += "<div class='sent_wbw'>";
@@ -1233,8 +1239,8 @@ function renderWordParBlockInner(elementBlock) {
 	arr_Para_ID.push(wID);
 	arr_par_sent_num.push(sent_ID);
 	g_arr_Para_ID[par_num] = arr_Para_ID;
-
 	return output;//+outList;
+
 }
 
 function magic_sentence_cut() {

+ 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": "" }
 ];
 
 

+ 1 - 1
app/studio/language/default.php

@@ -231,7 +231,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/language/en.php

@@ -231,7 +231,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/language/my.php

@@ -231,7 +231,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/language/pali.php

@@ -231,7 +231,7 @@ $module_gui_str['editor_project']['1007']="Note";
 $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/language/si.php

@@ -196,7 +196,7 @@ $module_gui_str['editor_project']['1007']="සටහන";//Note
 $module_gui_str['editor_project']['1008']="ශ්‍රවණ";//Audio
 $module_gui_str['editor_project']['1009']="මාතෘකාව ";//Heading
 $module_gui_str['editor_project']['1010']="තොරතුරු";//Infomation
-$module_gui_str['editor_project']['1011']="කර්තෘ";//Author:
+$_local->gui->author="කර්තෘ";//Author:
 $module_gui_str['editor_project']['1012']="සංස්කාරක";//Editor:
 $module_gui_str['editor_project']['1013']="භාෂාව ";//Language:
 $module_gui_str['editor_project']['1014']="පුනරීක්ෂණය ";//Revision:

+ 1 - 1
app/studio/language/zh-cn.php

@@ -231,7 +231,7 @@ $module_gui_str['editor_project']['1007']="注解";
 $module_gui_str['editor_project']['1008']="音频";
 $module_gui_str['editor_project']['1009']="标题";
 $module_gui_str['editor_project']['1010']="详细信息";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="编辑";
 $module_gui_str['editor_project']['1013']="语言";
 $module_gui_str['editor_project']['1014']="版本";

+ 1 - 1
app/studio/language/zh-tw.php

@@ -233,7 +233,7 @@ $module_gui_str['editor_project']['1007']="註解";
 $module_gui_str['editor_project']['1008']="音頻";
 $module_gui_str['editor_project']['1009']="標題";
 $module_gui_str['editor_project']['1010']="檔案資訊";
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="編輯";
 $module_gui_str['editor_project']['1013']="語言";
 $module_gui_str['editor_project']['1014']="版本";

+ 1 - 1
app/studio/module/editor_project/language/default.php

@@ -10,7 +10,7 @@ $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
 
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/module/editor_project/language/en.php

@@ -10,7 +10,7 @@ $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
 
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/module/editor_project/language/si.php

@@ -10,7 +10,7 @@ $module_gui_str['editor_project']['1008']="Audio";
 $module_gui_str['editor_project']['1009']="Heading";
 $module_gui_str['editor_project']['1010']="Infomation";
 
-$module_gui_str['editor_project']['1011']="Author:";
+$_local->gui->author="Author:";
 $module_gui_str['editor_project']['1012']="Editor:";
 $module_gui_str['editor_project']['1013']="Language:";
 $module_gui_str['editor_project']['1014']="Revision:";

+ 1 - 1
app/studio/module/editor_project/language/zh-cn.php

@@ -10,7 +10,7 @@ $module_gui_str['editor_project']['1008']="音频";
 $module_gui_str['editor_project']['1009']="标题";
 $module_gui_str['editor_project']['1010']="详细信息";
 
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="编辑";
 $module_gui_str['editor_project']['1013']="语言";
 $module_gui_str['editor_project']['1014']="版本";

+ 1 - 1
app/studio/module/editor_project/language/zh-tw.php

@@ -10,7 +10,7 @@ $module_gui_str['editor_project']['1008']="音頻";
 $module_gui_str['editor_project']['1009']="標題";
 $module_gui_str['editor_project']['1010']="檔案資訊";
 
-$module_gui_str['editor_project']['1011']="作者";
+$_local->gui->author="作者";
 $module_gui_str['editor_project']['1012']="編輯";
 $module_gui_str['editor_project']['1013']="語言";
 $module_gui_str['editor_project']['1014']="版本";

+ 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">

+ 297 - 271
app/studio/plugin/system_project/gui.html

@@ -1,7 +1,7 @@
-		<div class="menu" id="menu_project">
-			<h1><?php echo $module_gui_str['editor_project']['1001']; ?></h1>
-			<div id="project_resouce_manage" class="sub_li_menu">
-				<!--
+<div class="menu" id="menu_project">
+	<h1><?php echo $module_gui_str['editor_project']['1001']; ?></h1>
+	<div id="project_resouce_manage" class="sub_li_menu">
+		<!--
 				<div id="project_detail" class="submenu">
 					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_project']['1010'];?>
 						<svg class="icon">
@@ -13,292 +13,318 @@
 					</div>
 				</div>
 				-->
-				<div id="project_resouce" class="submenu">
-					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_project']['1004'];?>
-						<svg class="icon">
-    							<use xlink:href="svg/icon.svg#ic_add"></use>
-						</svg></p>
-					<div class="submenu_details">
-						<div id="id_editor_project_res_list">
-							<div>
-								<a onclick="project_res_type_click('doc')">Document</a>
-							</div>
+		<div id="project_resouce" class="submenu">
+			<p class="submenu_title" onclick="submenu_show_detail(this)">
+				<?php echo $module_gui_str['editor_project']['1004'];?>
+				<svg class="icon">
+					<use xlink:href="svg/icon.svg#ic_add"></use>
+				</svg></p>
+			<div class="submenu_details">
+				<div id="id_editor_project_res_list">
+					<div>
+						<a onclick="project_res_type_click('doc')">Document</a>
+					</div>
+					<ul>
+						<li>
+							<!--<button type="button" onclick="com_show_sub_tree(this)" ><span>-</span></button>-->
+							<input type="checkbox" checked />
+							<a onclick="project_res_type_click('wbw')"><?php echo $_local->gui->word_by_word;?></a>
+							<ul class="res_list" id="id_editor_project_res_wbw_inner">
+							</ul>
+						</li>
+						<li>
+							<input type="checkbox" checked />
+							<a onclick="project_res_type_click('tran')"><?php echo $_local->gui->translate;?></a>
+							<ul class="res_list" id="id_editor_project_res_translate_inner">
+							</ul>
+						</li>
+						<li>
+							<input type="checkbox" checked />
+							<a onclick="project_res_type_click('note')"><?php echo $_local->gui->note;?></a>
+							<ul class="res_list" id="id_editor_project_res_note_inner">
+							</ul>
+						</li>
+						<li>
+							<input type="checkbox" />
+							<?php echo $module_gui_str['editor_project']['1008'];?>
 							<ul>
-								<li>
-									<!--<button type="button" onclick="com_show_sub_tree(this)" ><span>-</span></button>-->
-									<input type="checkbox" checked />
-									<a onclick="project_res_type_click('wbw')"><?php echo $module_gui_str['editor_project']['1005'];?></a>
-									<ul class="res_list" id="id_editor_project_res_wbw_inner">
-									</ul>
-								</li>
-								<li>
-									<input type="checkbox" checked />
-									<a onclick="project_res_type_click('tran')"><?php echo $module_gui_str['editor_project']['1006'];?></a>
-									<ul  class="res_list"  id="id_editor_project_res_translate_inner">
-									</ul>
-								</li>
-								<li>
-									<input type="checkbox" checked />
-									<a onclick="project_res_type_click('note')"><?php echo $module_gui_str['editor_project']['1007'];?></a>
-									<ul  class="res_list"  id="id_editor_project_res_note_inner">
-									</ul>
-								</li>
-								<li>
-									<input type="checkbox" />
-									<?php echo $module_gui_str['editor_project']['1008'];?>
-									<ul>
-									</ul>
-								</li>
-								<li>
-									<input type="checkbox" />
-									<?php echo $module_gui_str['editor_project']['1009'];?>
-									<ul  class="res_list"  id="id_editor_project_res_heading_inner">
-									</ul>
-								</li>
-								<li>
-									<input type="checkbox" />
-									<?php echo $module_gui_str['editor_project']['1037'];?>
-									<ul  class="res_list"  id="id_editor_project_res_ild_inner">
-									</ul>
-								</li>
-								
 							</ul>
+						</li>
+						<li>
+							<input type="checkbox" />
+							<?php echo $module_gui_str['editor_project']['1009'];?>
+							<ul class="res_list" id="id_editor_project_res_heading_inner">
+							</ul>
+						</li>
+						<li>
+							<input type="checkbox" />
+							<?php echo $module_gui_str['editor_project']['1037'];?>
+							<ul class="res_list" id="id_editor_project_res_ild_inner">
+							</ul>
+						</li>
+
+					</ul>
+				</div>
+				<hr>
+				<div id="project_res_details">
+					<!--文档信息面板-->
+					<div id="id_editor_project_res_docinfo" style="display:none;">
+						<div class="project_res_info_head">
+							文档信息
 						</div>
-						<hr>
-						<div id="project_res_details">
-							<!--文档信息面板-->
-							<div id="id_editor_project_res_docinfo" style="display:none;">
-							<div class="project_res_info_head">
-								文档信息
-							</div>
-							<div id="id_editor_project_doc_info">
-							<span><?php echo $module_gui_str['editor_project']['1036'];?></span><input type="input" id="doc_info_title" onkeydown="match_key(this)" onkeyup="unicode_key(this)" onchange="doc_info_title_change(this)"/>
-							</div>
-							
-							<div id="id_editor_project_infomation">
-							</div>						
+						<div id="id_editor_project_doc_info">
+							<span><?php echo $module_gui_str['editor_project']['1036'];?></span><input type="input"
+								id="doc_info_title" onkeydown="match_key(this)" onkeyup="unicode_key(this)"
+								onchange="doc_info_title_change(this)" />
 						</div>
-							
-							<!--逐词译资源新建 导出面板-->
-							<div id="id_editor_project_res_wbw" class="editor_project_res_info" style="display:none;">
-								<div class="project_res_info_head">
-									新建逐词解析
-								</div>
-								<div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1013'];?></span>
-										<select id="id_project_wbw_new_language">
-											<option value="en">English</option>
-											<option value="sc">简体中文</option>
-											<option value="tc">正體中文</option>
-										</select>
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1011'];?></span>
-									<input id="id_project_wbw_new_author" type="text" value="<?php echo $nickname; ?>" /></div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1012'];?></span>
-									<input id="id_project_wbw_new_editor" type="text" value="<?php echo $nickname; ?>" /></div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1014'];?></span>
-									<input id="id_project_wbw_new_revision" type="text" value="" />
-								</div>
-								</div>
-								<button type="button" onclick="editor_project_wbw_new()"><?php echo $module_gui_str['editor_project']['1019'];?></button>
-								<div class="project_res_info_head">
-									导出逐词解析
-								</div>
-								<select id="id_wbw_export_list">
-								</select>
-								<textarea id="id_project_wbw_export_text"></textarea>
-								<button type="button" onclick="editor_project_wbw_export()"><?php echo $module_gui_str['editor_project']['1021'];?></button>
-							</div>		
-
-							<!--译文 新建 导出-->
-							<div id="id_editor_project_res_translate" class="editor_project_res_info" style="display:none;">
-								<div class="project_res_info_head">
-									新建译文
-								</div>								
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1013'];?></span>
-										<select id="id_project_translate_new_language">
-											<option value="en">English</option>
-											<option value="zh-cn">简体中文</option>
-											<option value="zh-tw">正體中文</option>
-										</select>
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1011'];?></span>
-									<input id="id_project_translate_new_author" type="text" value="<?php echo $nickname; ?>" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1012'];?></span>
-									<input id="id_project_translate_new_editor" type="text" value="<?php echo $nickname; ?>" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;">tag</span>
-									<input id="id_project_translate_new_tag" type="text" value="_trans_" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1034'];?></span>
-										<select id="id_file_translate_new_type">
-											<option value="par"><?php echo $module_gui_str['editor_project']['1032'];?></option>
-											<option value="sentence"><?php echo $module_gui_str['editor_project']['1033'];?></option>
-										</select>
-								</div>
-								<div id="project_new_tran_album"></div>
-								
-								<button type="button" onclick="editor_project_translate_addnew(false)"><?php echo $module_gui_str['editor_project']['1019'];?></button>
 
+						<div id="id_editor_project_infomation">
+						</div>
+					</div>
 
-								<div class="project_res_info_head">
-									导出译文
-								</div>	
-								<textarea id="id_project_translate_import_text"></textarea>
-								<button type="button" onclick="editor_project_translate_addnew(true)"><?php echo $module_gui_str['editor_project']['1020'];?></button>
-								<div class="project_res_info_head">
-									导入译文
-								</div>	
-								<select id="id_translate_export_list">
+					<!--逐词译资源新建 导出面板-->
+					<div id="id_editor_project_res_wbw" class="editor_project_res_info" style="display:none;">
+						<div class="project_res_info_head">
+							新建逐词解析
+						</div>
+						<div>
+							<div class="project_res_add_author">
+								<span style="width: 10em;"><?php echo $_local->gui->language_select;?></span>
+								<select id="id_project_wbw_new_language">
+									<option value="en">English</option>
+									<option value="sc">简体中文</option>
+									<option value="tc">正體中文</option>
 								</select>
-								<textarea id="id_project_translate_export_text"></textarea>
-								<button type="button" onclick="editor_project_translate_export()"><?php echo $module_gui_str['editor_project']['1021'];?></button>
 							</div>
-							<!--注解新建 导出面板-->
-							<div id="id_editor_project_res_note" class="editor_project_res_info" style="display:none;">
-								<div class="project_res_info_head">
-									注解
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1013'];?></span>
-										<select id="id_project_note_new_language">
-											<option value="en">English</option>
-											<option value="sc">简体中文</option>
-											<option value="tc">正體中文</option>
-										</select>
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1011'];?></span>
-									<input id="id_project_note_new_author" type="text" value="<?php echo $nickname; ?>" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1012'];?></span>
-									<input id="id_project_note_new_editor" type="text" value="<?php echo $nickname; ?>" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1014'];?></span>
-									<input id="id_project_note_new_revision" type="text" value="" />
-								</div>
-
-								<button type="button"  onclick="editor_project_note_addnew(false)"><?php echo $module_gui_str['editor_project']['1019'];?></button>
-								<hr />
-								<textarea id="id_project_note_import_text"></textarea>
-								<button type="button" onclick="editor_project_note_addnew(true)"><?php echo $module_gui_str['editor_project']['1020'];?></button>
-								<hr />
-								<select id="id_note_export_list">
-								</select>
-								<textarea id="id_project_note_export_text"></textarea>
-								<button type="button" onclick="editor_project_note_export()"><?php echo $module_gui_str['editor_project']['1021'];?></button>
-							</div>	
-							<!--注解新建 导出面板 结束-->
-							<div id="project_res_album_info" style="display:none;">
-								<div id="project_res_info_title" class="project_res_info_head">
-									title...
-								</div>
-								<div class="project_res_album_toolbar">
-									<button type="button" onclick="editor_project_res_info_modify()"><?php echo $module_gui_str['editor_project']['1017'];?></button>
-									<button type="button" onclick="editor_project_res_remove()"><?php echo $module_gui_str['editor_project']['1018'];?></button>
-									<button type="button" onclick="editor_project_res_publish()">Publish</button>
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1013'];?></span>
-										<select id="id_project_res_info_language">
-											<option value="pali">Pali</option>
-											<option value="en">English</option>
-											<option value="sc">简体中文</option>
-											<option value="tc">正體中文</option>
-										</select>							
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1011'];?></span>
-									<input id="id_project_res_info_author" type="text" value="" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1012'];?></span>
-									<input id="id_project_res_info_editor" type="text" value="" />
-								</div>
-								<div class="project_res_add_author">
-									<span style="width: 10em;"><?php echo $module_gui_str['editor_project']['1015'];?></span>
-									<input id="id_project_res_info_edition" type="text" value="" />
-								</div>
-								
-								<div id="project_album_id">
-								
-								</div>
+							<div class="project_res_add_author">
+								<span style="width: 10em;"><?php echo $_local->gui->author;?></span>
+								<input id="id_project_wbw_new_author" type="text" value="<?php echo $nickname; ?>" />
 							</div>
-								
+							<div class="project_res_add_author">
+								<span style="width: 10em;"><?php echo $_local->gui->editor;?></span>
+								<input id="id_project_wbw_new_editor" type="text" value="<?php echo $nickname; ?>" />
+							</div>
+							<div class="project_res_add_author">
+								<span style="width: 10em;"><?php echo $_local->gui->revision;?></span>
+								<input id="id_project_wbw_new_revision" type="text" value="" />
+							</div>
+						</div>
+						<button type="button"
+							onclick="editor_project_wbw_new()"><?php echo $_local->gui->new;?></button>
+						<div class="project_res_info_head">
+							导出逐词解析
 						</div>
-					
+						<select id="id_wbw_export_list">
+						</select>
+						<textarea id="id_project_wbw_export_text"></textarea>
+						<button type="button"
+							onclick="editor_project_wbw_export()"><?php echo $_local->gui->export;?></button>
 					</div>
-				</div>
 
-				<div id="project_tools" class="submenu">
-					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_project']['1028'];?>
-						<svg class="icon">
-    							<use xlink:href="svg/icon.svg#ic_add"></use>
-						</svg>
-					</p>
-					<div class="submenu_details">
-						<p class="menu_note"><?php echo $module_gui_str['editor_project']['1030'];?>:</p>
-						<button type="button" onclick="menu_file_tools_empty('all')" style="background-color:red;"><?php echo $module_gui_str['editor_project']['1029'];?></button>
-						<button type="button" onclick="menu_file_tools_empty('mean')" style="background-color:red;"><?php echo $module_gui_str['editor_project']['1041'];?></button>
-						<button type="button" onclick="menu_file_tools_empty('case')" style="background-color:red;"><?php echo $module_gui_str['editor_project']['1038'];?></button>
-						<button type="button" onclick="menu_file_tools_empty('bookmark')" style="background-color:red;"><?php echo $module_gui_str['editor_project']['1039'];?></button>
-						<button type="button" onclick="menu_file_tools_empty('note')" style="background-color:red;"><?php echo $module_gui_str['editor_project']['1040'];?></button>						
-					</div>
-				</div>
+					<!--译文 新建 导出-->
+					<div id="id_editor_project_res_translate" class="editor_project_res_info" style="display:none;">
+						<div class="project_res_info_head">
+							<?php echo $_local->gui->new." ".$_local->gui->translation;?>
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->language_select;?></span>
+							<select id="id_project_translate_new_language">
+								<option value="en">English</option>
+								<option value="zh-cn">简体中文</option>
+								<option value="zh-tw">正體中文</option>
+							</select>
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->author;?></span>
+							<input id="id_project_translate_new_author" type="text" value="<?php echo $nickname; ?>" />
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->editor;?></span>
+							<input id="id_project_translate_new_editor" type="text" value="<?php echo $nickname; ?>" />
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;">tag</span>
+							<input id="id_project_translate_new_tag" type="text" value="_trans_" />
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->base_on;?></span>
+							<select id="id_file_translate_new_type">
+								<option value="sentence"><?php echo $_local->gui->sentence;?></option>
+								<option value="par"><?php echo $_local->gui->paragraph;?></option>
+							</select>
+						</div>
+						<div id="project_new_tran_album"></div>
 
-				<div id="project_publish" class="submenu">
-					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_project']['1022'];?>
-						<svg class="icon">
-    							<use xlink:href="svg/icon.svg#ic_add"></use>
-						</svg>
-					</p>
-					<div class="submenu_details">
-						<button onclick="editor_project_publish()"><?php echo $module_gui_str['editor_project']['1022'];?></button>
-					</div>
-				</div>
+						<button type="button"
+							onclick="editor_project_translate_addnew(false)"><?php echo $_local->gui->new;?></button>
 
 
-				<div id="project_output" class="submenu">
-					<p class="submenu_title" onclick="submenu_show_detail(this)"><?php echo $module_gui_str['editor_project']['1021'];?>
-						<svg class="icon">
-    							<use xlink:href="svg/icon.svg#ic_add"></use>
-						</svg>
-					</p>
-					<div class="submenu_details">
+						<div class="project_res_info_head">
+							<?php echo $_local->gui->export." ".$_local->gui->translation;?>
+						</div>
+						<textarea id="id_project_translate_import_text"></textarea>
+						<button type="button"
+							onclick="editor_project_translate_addnew(true)"><?php echo $_local->gui->import;?></button>
+						<div class="project_res_info_head">
+							<?php echo $_local->gui->import." ".$_local->gui->translation;?>
+						</div>
+						<select id="id_translate_export_list">
+						</select>
+						<textarea id="id_project_translate_export_text"></textarea>
+						<button type="button"
+							onclick="editor_project_translate_export()"><?php echo $_local->gui->export;?></button>
+					</div>
+					<!--注解新建 导出面板-->
+					<div id="id_editor_project_res_note" class="editor_project_res_info" style="display:none;">
+						<div class="project_res_info_head">
+							<?php echo $_local->gui->note;?>
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->language_select;?></span>
+							<select id="id_project_note_new_language">
+								<option value="en">English</option>
+								<option value="sc">简体中文</option>
+								<option value="tc">正體中文</option>
+							</select>
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->author;?></span>
+							<input id="id_project_note_new_author" type="text" value="<?php echo $nickname; ?>" />
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->editor;?></span>
+							<input id="id_project_note_new_editor" type="text" value="<?php echo $nickname; ?>" />
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->revision;?></span>
+							<input id="id_project_note_new_revision" type="text" value="" />
+						</div>
+
+						<button type="button"
+							onclick="editor_project_note_addnew(false)"><?php echo $_local->gui->new;?></button>
+						<hr />
+						<textarea id="id_project_note_import_text"></textarea>
+						<button type="button"
+							onclick="editor_project_note_addnew(true)"><?php echo $_local->gui->import;?></button>
+						<hr />
+						<select id="id_note_export_list">
+						</select>
+						<textarea id="id_project_note_export_text"></textarea>
+						<button type="button"
+							onclick="editor_project_note_export()"><?php echo $_local->gui->export;?></button>
+					</div>
+					<!--注解新建 导出面板 结束-->
+					<div id="project_res_album_info" style="display:none;">
+						<div id="project_res_info_title" class="project_res_info_head">
+							title...
+						</div>
+						<div class="project_res_album_toolbar">
+							<button type="button"
+								onclick="editor_project_res_info_modify()"><?php echo $_local->gui->modify;?></button>
+							<button type="button"
+								onclick="editor_project_res_remove()"><?php echo $_local->gui->remove;?></button>
+							<button type="button" onclick="editor_project_res_publish()">Publish</button>
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->language_select;?></span>
+							<select id="id_project_res_info_language">
+								<option value="pali">Pali</option>
+								<option value="en">English</option>
+								<option value="sc">简体中文</option>
+								<option value="tc">正體中文</option>
+							</select>
+						</div>
 						<div class="project_res_add_author">
-							<form action="export_html.php" method="post" onsubmit="return file_export_html_validate_form(this)" target="_blank">
-								<div class="project_res_add_author" id="export_data">
-									<textarea id="toc_string" rows="3" cols="18" name="txt_toc"></textarea><br>
-									<textarea id="sutta_string" rows="3" cols="18"  name="txt_sutta"></textarea><br>
-								</div>
-								<input type="submit" value="<?php echo $module_gui_str['editor_project']['1031'];?>" />
-							</form>
-							<button type="button" onclick="menu_file_export_csv()"><?php echo $module_gui_str['editor_project']['1025'];?></button>
+							<span style="width: 10em;"><?php echo $_local->gui->author;?></span>
+							<input id="id_project_res_info_author" type="text" value="" />
 						</div>
-						<hr/>
 						<div class="project_res_add_author">
-							<span style="width: 10em;">CSV <?php echo $module_gui_str['editor_project']['1027'];?></span>
-							<input type="input" id="import_csv_filename"/>
+							<span style="width: 10em;"><?php echo $_local->gui->editor;?></span>
+							<input id="id_project_res_info_editor" type="text" value="" />
+						</div>
+						<div class="project_res_add_author">
+							<span style="width: 10em;"><?php echo $_local->gui->edition;?></span>
+							<input id="id_project_res_info_edition" type="text" value="" />
+						</div>
+
+						<div id="project_album_id">
+
 						</div>
-						<button type="button" onclick="menu_file_import_csv()"><?php echo $module_gui_str['editor_project']['1026'];?></button><br/>
-						<span id="id_csv_msg_inner"></span>
 					</div>
-				</div>	
 
-		
-			</div>	
-		
+				</div>
+
+			</div>
+		</div>
+
+		<div id="project_tools" class="submenu">
+			<p class="submenu_title" onclick="submenu_show_detail(this)">
+				<?php echo $module_gui_str['editor_project']['1028'];?>
+				<svg class="icon">
+					<use xlink:href="svg/icon.svg#ic_add"></use>
+				</svg>
+			</p>
+			<div class="submenu_details">
+				<p class="menu_note"><?php echo $module_gui_str['editor_project']['1030'];?>:</p>
+				<button type="button" onclick="menu_file_tools_empty('all')"
+					style="background-color:red;"><?php echo $module_gui_str['editor_project']['1029'];?></button>
+				<button type="button" onclick="menu_file_tools_empty('mean')"
+					style="background-color:red;"><?php echo $module_gui_str['editor_project']['1041'];?></button>
+				<button type="button" onclick="menu_file_tools_empty('case')"
+					style="background-color:red;"><?php echo $module_gui_str['editor_project']['1038'];?></button>
+				<button type="button" onclick="menu_file_tools_empty('bookmark')"
+					style="background-color:red;"><?php echo $module_gui_str['editor_project']['1039'];?></button>
+				<button type="button" onclick="menu_file_tools_empty('note')"
+					style="background-color:red;"><?php echo $module_gui_str['editor_project']['1040'];?></button>
+			</div>
 		</div>
-			
+
+		<div id="project_publish" class="submenu">
+			<p class="submenu_title" onclick="submenu_show_detail(this)">
+				<?php echo $module_gui_str['editor_project']['1022'];?>
+				<svg class="icon">
+					<use xlink:href="svg/icon.svg#ic_add"></use>
+				</svg>
+			</p>
+			<div class="submenu_details">
+				<button
+					onclick="editor_project_publish()"><?php echo $module_gui_str['editor_project']['1022'];?></button>
+			</div>
+		</div>
+
+
+		<div id="project_output" class="submenu">
+			<p class="submenu_title" onclick="submenu_show_detail(this)">
+				<?php echo $_local->gui->export;?>
+				<svg class="icon">
+					<use xlink:href="svg/icon.svg#ic_add"></use>
+				</svg>
+			</p>
+			<div class="submenu_details">
+				<div class="project_res_add_author">
+					<form action="export_html.php" method="post" onsubmit="return file_export_html_validate_form(this)"
+						target="_blank">
+						<div class="project_res_add_author" id="export_data">
+							<textarea id="toc_string" rows="3" cols="18" name="txt_toc"></textarea><br>
+							<textarea id="sutta_string" rows="3" cols="18" name="txt_sutta"></textarea><br>
+						</div>
+						<input type="submit" value="<?php echo $module_gui_str['editor_project']['1031'];?>" />
+					</form>
+					<button type="button"
+						onclick="menu_file_export_csv()"><?php echo $module_gui_str['editor_project']['1025'];?></button>
+				</div>
+				<hr />
+				<div class="project_res_add_author">
+					<span style="width: 10em;">CSV <?php echo $module_gui_str['editor_project']['1027'];?></span>
+					<input type="input" id="import_csv_filename" />
+				</div>
+				<button type="button"
+					onclick="menu_file_import_csv()"><?php echo $module_gui_str['editor_project']['1026'];?></button><br />
+				<span id="id_csv_msg_inner"></span>
+			</div>
+		</div>
+
+
+	</div>
+
+</div>

+ 460 - 441
app/studio/plugin/system_project/module_function.js

@@ -14,8 +14,8 @@
 Modle:
     Name:editor_project
 */
-var currResObj=null
-var currResIndex=-1
+var currResObj = null
+var currResIndex = -1
 /*
  * Modle Init.
  * public
@@ -26,238 +26,238 @@ var currResIndex=-1
  * @endcode
 
  */
-function editor_project_init(){
+function editor_project_init() {
 
 }
 
-function editor_project_wbw_export(){
-	var allText="";
-	var resId=document.getElementById("id_wbw_export_list").value;
+function editor_project_wbw_export() {
+	var allText = "";
+	var resId = document.getElementById("id_wbw_export_list").value;
 	var resList = lstResWbw[resId]
-	for(var iBlock=0;iBlock<resList.element.length;iBlock++){
-		currBlock=resList.element[iBlock]
+	for (var iBlock = 0; iBlock < resList.element.length; iBlock++) {
+		currBlock = resList.element[iBlock]
 		xmlParInfo = currBlock.getElementsByTagName("info")[0];
 		xmlParData = currBlock.getElementsByTagName("data")[0];
 		{
-			wbwTextNode=xmlParData.getElementsByTagName("word");
-			for(var iText=0;iText<wbwTextNode.length;iText++){
-				if(getNodeText(wbwTextNode[iText],"type")!=".ctl."){
-					allText+=getNodeText(wbwTextNode[iText],"pali")+" ";
+			wbwTextNode = xmlParData.getElementsByTagName("word");
+			for (var iText = 0; iText < wbwTextNode.length; iText++) {
+				if (getNodeText(wbwTextNode[iText], "type") != ".ctl.") {
+					allText += getNodeText(wbwTextNode[iText], "pali") + " ";
 				}
 			}
-			allText+="\r\n"
+			allText += "\r\n"
 		}
 	}
-	document.getElementById("id_project_wbw_export_text").value=allText;
+	document.getElementById("id_project_wbw_export_text").value = allText;
 }
 
 
-function editor_project_translate_export(){
-	var allText="";
-	var resId=document.getElementById("id_translate_export_list").value;
+function editor_project_translate_export() {
+	var allText = "";
+	var resId = document.getElementById("id_translate_export_list").value;
 	var resList = lstResTranslate[resId]
-	for(var iBlock=0;iBlock<resList.element.length;iBlock++){
-		currBlock=resList.element[iBlock]
+	for (var iBlock = 0; iBlock < resList.element.length; iBlock++) {
+		currBlock = resList.element[iBlock]
 		xmlParInfo = currBlock.getElementsByTagName("info")[0];
 		xmlParData = currBlock.getElementsByTagName("data")[0];
 		{
-			tranTextNode=xmlParData.getElementsByTagName("sen");
-			for(var iText=0;iText<tranTextNode.length;iText++){
-				allText+=getNodeText(tranTextNode[iText],"text")+"\r\n";
+			tranTextNode = xmlParData.getElementsByTagName("sen");
+			for (var iText = 0; iText < tranTextNode.length; iText++) {
+				allText += getNodeText(tranTextNode[iText], "text") + "\r\n";
 			}
 		}
 	}
-	document.getElementById("id_project_translate_export_text").value=allText;
+	document.getElementById("id_project_translate_export_text").value = allText;
 }
 
-function editor_project_note_export(){
-	var allText="";
-	var resId=document.getElementById("id_note_export_list").value;
+function editor_project_note_export() {
+	var allText = "";
+	var resId = document.getElementById("id_note_export_list").value;
 	var resList = lstResNote[resId]
-	for(var iBlock=0;iBlock<resList.element.length;iBlock++){
-		currBlock=resList.element[iBlock]
+	for (var iBlock = 0; iBlock < resList.element.length; iBlock++) {
+		currBlock = resList.element[iBlock]
 		xmlParInfo = currBlock.getElementsByTagName("info")[0];
 		xmlParData = currBlock.getElementsByTagName("data")[0];
 		{
-			tranTextNode=xmlParData.getElementsByTagName("sen");
-			for(var iText=0;iText<tranTextNode.length;iText++){
-				allText+=getNodeText(tranTextNode[iText],"text")+"\r\n";
+			tranTextNode = xmlParData.getElementsByTagName("sen");
+			for (var iText = 0; iText < tranTextNode.length; iText++) {
+				allText += getNodeText(tranTextNode[iText], "text") + "\r\n";
 			}
 		}
 	}
-	document.getElementById("id_project_note_export_text").value=allText;
+	document.getElementById("id_project_note_export_text").value = allText;
 }
 
 //添加新的译文
-function editor_project_translate_addnew(bWithText){
-	var strXml="";
-	strXml+="<pkg>"
-	if(bWithText){
-		var strSen=document.getElementById("id_project_translate_import_text").value.split("\n");
-	}
-	let newTranslateLanguage=document.getElementById("id_project_translate_new_language").value;
-	let newTranslateAuthor=document.getElementById("id_project_translate_new_author").value;
-	let newTranslateEditor=document.getElementById("id_project_translate_new_editor").value;
-	let newTranslateTag=document.getElementById("id_project_translate_new_tag").value;
-	
+function editor_project_translate_addnew(bWithText) {
+	var strXml = "";
+	strXml += "<pkg>"
+	if (bWithText) {
+		var strSen = document.getElementById("id_project_translate_import_text").value.split("\n");
+	}
+	let newTranslateLanguage = document.getElementById("id_project_translate_new_language").value;
+	let newTranslateAuthor = document.getElementById("id_project_translate_new_author").value;
+	let newTranslateEditor = document.getElementById("id_project_translate_new_editor").value;
+	let newTranslateTag = document.getElementById("id_project_translate_new_tag").value;
+
 	var album_guid = new Array();
-	for(var iPar=0;iPar<gArrayDocParagraph.length;iPar++){
-		BookId=gArrayDocParagraph[iPar].book;
-		album_guid[BookId.toString()]=com_uuid();
-	}
-	for(let iPar=0;iPar<gArrayDocParagraph.length;iPar++){
-		let BookId=gArrayDocParagraph[iPar].book;
-		let ParId=gArrayDocParagraph[iPar].paragraph;
-		let iLevel=gArrayDocParagraph[iPar].level;
+	for (var iPar = 0; iPar < gArrayDocParagraph.length; iPar++) {
+		BookId = gArrayDocParagraph[iPar].book;
+		album_guid[BookId.toString()] = com_uuid();
+	}
+	for (let iPar = 0; iPar < gArrayDocParagraph.length; iPar++) {
+		let BookId = gArrayDocParagraph[iPar].book;
+		let ParId = gArrayDocParagraph[iPar].paragraph;
+		let iLevel = gArrayDocParagraph[iPar].level;
 		let blockId = com_uuid();
 		strXml += "<block>";
 		strXml += "<info>";
 		strXml += "<album_id>-1</album_id>";
-		strXml += "<album_guid>"+album_guid[BookId.toString()]+"</album_guid>";
-		strXml += "<id>"+blockId+"</id>";
-		strXml += "<book>"+BookId+"</book>";
-		strXml += "<paragraph>"+ParId+"</paragraph>";
-		strXml += "<level>"+iLevel+"</level>";
+		strXml += "<album_guid>" + album_guid[BookId.toString()] + "</album_guid>";
+		strXml += "<id>" + blockId + "</id>";
+		strXml += "<book>" + BookId + "</book>";
+		strXml += "<paragraph>" + ParId + "</paragraph>";
+		strXml += "<level>" + iLevel + "</level>";
 		strXml += "<type>translate</type>";
-		strXml += "<tag>"+newTranslateTag+"</tag>";
-		strXml += "<author>"+newTranslateAuthor+"</author>";
-		strXml += "<editor>"+newTranslateEditor+"</editor>";
+		strXml += "<tag>" + newTranslateTag + "</tag>";
+		strXml += "<author>" + newTranslateAuthor + "</author>";
+		strXml += "<editor>" + newTranslateEditor + "</editor>";
 		strXml += "<version>1</version>";
 		strXml += "<edition>第一版</edition>";
-		strXml += "<language>"+newTranslateLanguage+"</language>";
+		strXml += "<language>" + newTranslateLanguage + "</language>";
 		strXml += "</info>";
-		
-		usent_block_create(blockId,BookId,ParId,newTranslateLanguage,newTranslateAuthor,newTranslateEditor,newTranslateTag);
-		fileinfo_add_block(doc_head("doc_id"),2,blockId);
-		
-		if(bWithText && iPar<strSen.length){
-			strXml+="<data><sen><begin></begin><end></end><text>"+strSen[iPar]+"</text></sen></data>"
+
+		usent_block_create(blockId, BookId, ParId, newTranslateLanguage, newTranslateAuthor, newTranslateEditor, newTranslateTag);
+		fileinfo_add_block(doc_head("doc_id"), 2, blockId);
+
+		if (bWithText && iPar < strSen.length) {
+			strXml += "<data><sen><begin></begin><end></end><text>" + strSen[iPar] + "</text></sen></data>"
 		}
-		else{
-			strXml+="<data>";
-			var xBlock=gXmlBookDataBody.getElementsByTagName("block");
-			for(var iBlock=0;iBlock<xBlock.length;iBlock++){
+		else {
+			strXml += "<data>";
+			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];
-				let mId=getNodeText(xmlParInfo,"id");
-				let book=getNodeText(xmlParInfo,"book");
-				let paragraph=getNodeText(xmlParInfo,"paragraph");
-				let type=getNodeText(xmlParInfo,"type");
-				if(BookId==book && ParId==paragraph && type=="wbw"){
-					var xWord=xBlock[iBlock].getElementsByTagName("word");
-					if(xWord.length>0){
-						var ibegin=getNodeText(xWord[0],"id").split("-")[2];
-						var iend=0;
-						for(var iWord=0;iWord<xWord.length;iWord++){
-							var wEnter=getNodeText(xWord[iWord],"enter");
-							if(wEnter==1){
-								iend=getNodeText(xWord[iWord],"id").split("-")[2];
+				let mId = getNodeText(xmlParInfo, "id");
+				let book = getNodeText(xmlParInfo, "book");
+				let paragraph = getNodeText(xmlParInfo, "paragraph");
+				let type = getNodeText(xmlParInfo, "type");
+				if (BookId == book && ParId == paragraph && type == "wbw") {
+					var xWord = xBlock[iBlock].getElementsByTagName("word");
+					if (xWord.length > 0) {
+						var ibegin = getNodeText(xWord[0], "id").split("-")[2];
+						var iend = 0;
+						for (var iWord = 0; iWord < xWord.length; iWord++) {
+							var wEnter = getNodeText(xWord[iWord], "enter");
+							if (wEnter == 1) {
+								iend = getNodeText(xWord[iWord], "id").split("-")[2];
 								let sentId = com_uuid();
-								strXml+="<sen>";
-								strXml+="<id>"+sentId+"</id>";
-								strXml+="<begin>"+ibegin+"</begin>";
-								strXml+="<end>"+iend+"</end>";
-								strXml+="<text></text>";
-								strXml+="<status>1</status>";
-								strXml+="</sen>";
-								usent_create(blockId,sentId,book,paragraph,ibegin,iend,"",newTranslateTag,newTranslateLanguage,newTranslateAuthor,newTranslateEditor);
+								strXml += "<sen>";
+								strXml += "<id>" + sentId + "</id>";
+								strXml += "<begin>" + ibegin + "</begin>";
+								strXml += "<end>" + iend + "</end>";
+								strXml += "<text></text>";
+								strXml += "<status>1</status>";
+								strXml += "</sen>";
+								usent_create(blockId, sentId, book, paragraph, ibegin, iend, "", newTranslateTag, newTranslateLanguage, newTranslateAuthor, newTranslateEditor);
 								iend++;
-								ibegin=iend;
+								ibegin = iend;
 							}
 						}
-						iend=getNodeText(xWord[xWord.length-1],"id").split("-")[2];
+						iend = getNodeText(xWord[xWord.length - 1], "id").split("-")[2];
 						let sentId = com_uuid();
-						strXml+="<sen>";
-						strXml+="<id>"+sentId+"</id>";
-						strXml+="<begin>"+ibegin+"</begin>";
-						strXml+="<end>"+iend+"</end>";
-						strXml+="<text></text>";
-						strXml+="<status>1</status>";
-						strXml+="</sen>";
-						usent_create(blockId,sentId,book,paragraph,ibegin,iend,"",newTranslateTag,newTranslateLanguage,newTranslateAuthor,newTranslateEditor);
+						strXml += "<sen>";
+						strXml += "<id>" + sentId + "</id>";
+						strXml += "<begin>" + ibegin + "</begin>";
+						strXml += "<end>" + iend + "</end>";
+						strXml += "<text></text>";
+						strXml += "<status>1</status>";
+						strXml += "</sen>";
+						usent_create(blockId, sentId, book, paragraph, ibegin, iend, "", newTranslateTag, newTranslateLanguage, newTranslateAuthor, newTranslateEditor);
 					}
 				}
 			}
-			strXml+="</data>";
+			strXml += "</data>";
 		}
-		strXml+="</block>"
+		strXml += "</block>"
 	}
-	strXml+="</pkg>";
-	
+	strXml += "</pkg>";
+
 	usent_block_commit();
 	usent_commit();
 	fileinfo_add_block_commit(g_docid);
-	
-	if (window.DOMParser){
-		parser=new DOMParser();
-		newXmlData=parser.parseFromString(strXml,"text/xml");
+
+	if (window.DOMParser) {
+		parser = new DOMParser();
+		newXmlData = parser.parseFromString(strXml, "text/xml");
 	}
 	else // Internet Explorer
 	{
-		newXmlData=new ActiveXObject("Microsoft.XMLDOM");
-		newXmlData.async="false";
+		newXmlData = new ActiveXObject("Microsoft.XMLDOM");
+		newXmlData.async = "false";
 		newXmlData.loadXML(strXml);
 	}
-			  
-	if (newXmlData == null){
+
+	if (newXmlData == null) {
 		alert("error:can not load book index.");
-			return;
+		return;
 	}
-	
+
 	xmlParBlocks = newXmlData.getElementsByTagName("block");
-	for(iXml=0;iXml<xmlParBlocks.length;iXml++){
+	for (iXml = 0; iXml < xmlParBlocks.length; iXml++) {
 		insertBlockToHtml(xmlParBlocks[iXml])
 		insertBlockToXmlBookData(xmlParBlocks[iXml])
 	}
-	
+
 	refreshResource();
 }
 
 //添加新的注解
-function editor_project_note_addnew(bWithText){
-	var strXml="";
-	strXml+="<pkg>"
-	
-	if(bWithText){
-		var strSen=document.getElementById("id_project_note_import_text").value.split("\n");
-	}
-
-	newNoteLanguage=document.getElementById("id_project_note_new_language").value;
-	newNoteAuthor=document.getElementById("id_project_note_new_author").value;
-	
-	xmlBookToc= gXmlBookDataHeadToc.getElementsByTagName("paragraph");
-	for(var iPar=0;iPar<gArrayDocParagraph.length;iPar++){
-		BookId=gArrayDocParagraph[iPar].book
-		ParId=gArrayDocParagraph[iPar].paragraph
-		strXml+="<block>"
-		strXml+= "<info><id>"+com_guid()+"</id><book>"+BookId+"</book><paragraph>"+ParId+"</paragraph><type>note</type><author>"+newNoteAuthor+"</author><edition>1</edition><subver>0</subver><language>"+newNoteLanguage+"</language></info>";
-		if(bWithText && iPar<strSen.length){
-			strXml+="<data><sen><a></a><text>"+strSen[iPar]+"</text></sen></data>"
+function editor_project_note_addnew(bWithText) {
+	var strXml = "";
+	strXml += "<pkg>"
+
+	if (bWithText) {
+		var strSen = document.getElementById("id_project_note_import_text").value.split("\n");
+	}
+
+	newNoteLanguage = document.getElementById("id_project_note_new_language").value;
+	newNoteAuthor = document.getElementById("id_project_note_new_author").value;
+
+	xmlBookToc = gXmlBookDataHeadToc.getElementsByTagName("paragraph");
+	for (var iPar = 0; iPar < gArrayDocParagraph.length; iPar++) {
+		BookId = gArrayDocParagraph[iPar].book
+		ParId = gArrayDocParagraph[iPar].paragraph
+		strXml += "<block>"
+		strXml += "<info><id>" + com_guid() + "</id><book>" + BookId + "</book><paragraph>" + ParId + "</paragraph><type>note</type><author>" + newNoteAuthor + "</author><edition>1</edition><subver>0</subver><language>" + newNoteLanguage + "</language></info>";
+		if (bWithText && iPar < strSen.length) {
+			strXml += "<data><sen><a></a><text>" + strSen[iPar] + "</text></sen></data>"
 		}
-		else{
-			strXml+="<data><sen><a></a><text>"+gui_string_editor_project[1]+"</text></sen></data>"
+		else {
+			strXml += "<data><sen><a></a><text>" + gui_string_editor_project[1] + "</text></sen></data>"
 		}
-		strXml+="</block>"
+		strXml += "</block>"
 	}
-	strXml+="</pkg>"
-	if (window.DOMParser){
-		parser=new DOMParser();
-		newXmlData=parser.parseFromString(strXml,"text/xml");
+	strXml += "</pkg>"
+	if (window.DOMParser) {
+		parser = new DOMParser();
+		newXmlData = parser.parseFromString(strXml, "text/xml");
 	}
 	else // Internet Explorer
 	{
-		newXmlData=new ActiveXObject("Microsoft.XMLDOM");
-		newXmlData.async="false";
+		newXmlData = new ActiveXObject("Microsoft.XMLDOM");
+		newXmlData.async = "false";
 		newXmlData.loadXML(strXml);
 	}
-			  
-	if (newXmlData == null){
+
+	if (newXmlData == null) {
 		alert("error:can not load book index.");
-			return;
+		return;
 	}
-	
+
 	xmlParBlocks = newXmlData.getElementsByTagName("block");
-	for(iXml=0;iXml<xmlParBlocks.length;iXml++){
+	for (iXml = 0; iXml < xmlParBlocks.length; iXml++) {
 		insertBlockToHtml(xmlParBlocks[iXml])
 		insertBlockToXmlBookData(xmlParBlocks[iXml])
 	}
@@ -267,244 +267,268 @@ function editor_project_note_addnew(bWithText){
 
 /*refresh resource list
 */
-function refreshResource(){
+function refreshResource() {
 	lstResTranslate = new Array();
 	lstResNote = new Array();
 	lstResWbw = new Array();
 	lstResHeading = new Array();
 	lstResIld = new Array();
-	
-	xBlock=gXmlBookDataBody.getElementsByTagName("block");
-	for(var iBlock=0;iBlock<xBlock.length;iBlock++){
+
+	xBlock = gXmlBookDataBody.getElementsByTagName("block");
+	for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
 		var xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
 		var xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
-		var bookId=getNodeText(xmlParInfo,"book");
-		var paragraph=getNodeText(xmlParInfo,"paragraph");
-		var type=getNodeText(xmlParInfo,"type");
+		var bookId = getNodeText(xmlParInfo, "book");
+		var paragraph = getNodeText(xmlParInfo, "paragraph");
+		var type = getNodeText(xmlParInfo, "type");
 		newRes = new Object();
-		newRes.type=type;
-		newRes.book=getNodeText(xmlParInfo,"book");
-		newRes.paragraph=getNodeText(xmlParInfo,"paragraph");
-		newRes.album_id=getNodeText(xmlParInfo,"album_id");
-		newRes.album_guid=getNodeText(xmlParInfo,"album_guid");
-		newRes.album_author=getNodeText(xmlParInfo,"album_author");
-		newRes.author=getNodeText(xmlParInfo,"author");
-		newRes.editor=getNodeText(xmlParInfo,"editor");
-		newRes.revision=getNodeText(xmlParInfo,"revision");
-		newRes.edition=getNodeText(xmlParInfo,"edition");
-		newRes.subver=getNodeText(xmlParInfo,"subver");
-		newRes.language=getNodeText(xmlParInfo,"language");
-		newRes.count=1
-		newRes.element=new Array(xBlock[iBlock]);
-		switch(type){
+		newRes.type = type;
+		newRes.book = getNodeText(xmlParInfo, "book");
+		newRes.paragraph = getNodeText(xmlParInfo, "paragraph");
+		newRes.album_id = getNodeText(xmlParInfo, "album_id");
+		newRes.album_guid = getNodeText(xmlParInfo, "album_guid");
+		newRes.album_author = getNodeText(xmlParInfo, "album_author");
+		newRes.author = getNodeText(xmlParInfo, "author");
+		newRes.editor = getNodeText(xmlParInfo, "editor");
+		newRes.revision = getNodeText(xmlParInfo, "revision");
+		newRes.edition = getNodeText(xmlParInfo, "edition");
+		newRes.subver = getNodeText(xmlParInfo, "subver");
+		newRes.language = getNodeText(xmlParInfo, "language");
+		newRes.count = 1
+		newRes.element = new Array(xBlock[iBlock]);
+		switch (type) {
 			case "wbw":
-				addItemToResList(newRes,lstResWbw)
+				addItemToResList(newRes, lstResWbw)
 				break;
 			case "translate":
-				addItemToResList(newRes,lstResTranslate)
+				addItemToResList(newRes, lstResTranslate)
 				break;
 			case "note":
-				addItemToResList(newRes,lstResNote)
+				addItemToResList(newRes, lstResNote)
 				break;
 			case "heading":
-				addItemToResList(newRes,lstResHeading)
+				addItemToResList(newRes, lstResHeading)
 				break;
 		}
 	}
-	var wbwListStr="";
-	var wbwListStr2="";
-	for(i=0;i<lstResWbw.length;i++){
-		wbwListStr+="<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('wbw',"+i+")\">"+lstResWbw[i].author+"["+lstResWbw[i].language+"]-"+lstResWbw[i].count+"</a></li>"
-
-		var info1=lstResWbw[i].author+","+lstResWbw[i].language
-		var info2=lstResWbw[i].author+"["+lstResWbw[i].language+"]"
-		wbwListStr2+="<option value=\""+i+"\">"+info2+"</option>"
-	}
-
-	var tranListStr="";
-	var tranListStr2=""
-	for(i=0;i<lstResTranslate.length;i++){
-		tranListStr+="<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('translate',"+i+")\">"+lstResTranslate[i].author+"["+lstResTranslate[i].language+"]-"+lstResTranslate[i].count+"</a></li>"
-		var info1=lstResTranslate[i].author+","+lstResTranslate[i].language
-		var info2=lstResTranslate[i].author+"["+lstResTranslate[i].language+"]"
-		tranListStr2+="<option value=\""+i+"\">"+info2+"</option>"
-	}
-	var noteListStr="";
-	var noteListStr2="";
-	for(i=0;i<lstResNote.length;i++){
-		noteListStr+="<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('note',"+i+")\">"+lstResNote[i].author+"["+lstResNote[i].language+"]-"+lstResNote[i].count+"</a></li>"
-		var info1=lstResNote[i].author+","+lstResNote[i].language
-		var info2=lstResNote[i].author+"["+lstResNote[i].language+"]"
-		noteListStr2+="<option value=\""+i+"\">"+info2+"</option>"
-	}
-
-	var headingListStr="";
-	for(i=0;i<lstResHeading.length;i++){
-		headingListStr+="<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('heading',"+i+")\">"+lstResHeading[i].author+"["+lstResHeading[i].language+"]-"+lstResHeading[i].count+"</a></li>"
-	}
-	var iCountIld=g_DictWordList.length;
-	var iCountIldXML=gXmlBookDataInlineDict.getElementsByTagName("word").length;
-	var ildListStr="<li>Inline Dict XML("+iCountIldXML+")</li><li>Inline Dict Array("+iCountIld+")</li>";
-	
-	document.getElementById("id_editor_project_res_wbw_inner").innerHTML=wbwListStr;
-	document.getElementById("id_editor_project_res_translate_inner").innerHTML=tranListStr;
-	document.getElementById("id_editor_project_res_note_inner").innerHTML=noteListStr;
-	document.getElementById("id_editor_project_res_heading_inner").innerHTML=headingListStr;
-	document.getElementById("id_editor_project_res_ild_inner").innerHTML=ildListStr;
-	document.getElementById("id_translate_export_list").innerHTML=tranListStr2;
-	document.getElementById("id_note_export_list").innerHTML=noteListStr2;
-	document.getElementById("id_wbw_export_list").innerHTML=wbwListStr2;
+	var wbwListStr = "";
+	var wbwListStr2 = "";
+	var wbw_count = 0;
+	for (i = 0; i < lstResWbw.length; i++) {
+		if (i > 0 && lstResWbw[i].author != lstResWbw[i - 1].author && lstResWbw[i].language != lstResWbw[i - 1].language) {
+			wbwListStr += "<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('wbw'," + (i - 1) + ")\">" + lstResWbw[i - 1].author + "[" + lstResWbw[i - 1].language + "]-" + wbw_count + "</a></li>"
+			tran_count = 1;
+			wbwListStr2 += "<option value=\"" + (i - 1) + "\">" + info2 + "</option>"
+		}
+		else if (i == lstResWbw.length - 1 && i != 0) {
+			wbwListStr += "<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('wbw'," + (i - 1) + ")\">" + lstResWbw[i - 1].author + "[" + lstResWbw[i - 1].language + "]-" + wbw_count + "</a></li>"
+			wbwListStr2 += "<option value=\"" + (i - 1) + "\">" + info2 + "</option>"
+
+		}
+		else {
+			wbw_count += lstResWbw[i].count;
+		}
+
+		var info1 = lstResWbw[i].author + "," + lstResWbw[i].language
+		var info2 = lstResWbw[i].author + "[" + lstResWbw[i].language + "]"
+	}
+
+	var tranListStr = "";
+	var tranListStr2 = ""
+	var tran_count = 0;
+	for (i = 0; i < lstResTranslate.length; i++) {
+		if (i > 0 && lstResTranslate[i].author != lstResTranslate[i - 1].author && lstResTranslate[i].language != lstResTranslate[i - 1].language) {
+			tranListStr += "<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('translate'," + (i - 1) + ")\">" + lstResTranslate[i - 1].author + "[" + lstResTranslate[i - 1].language + "]-" + tran_count + "</a></li>"
+			tran_count = 1;
+			tranListStr2 += "<option value=\"" + (i - 1) + "\">" + info2 + "</option>"
+		}
+		else if (i == lstResTranslate.length - 1 && i != 0) {
+			tranListStr += "<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('translate'," + (i - 1) + ")\">" + lstResTranslate[i - 1].author + "[" + lstResTranslate[i - 1].language + "]-" + tran_count + "</a></li>"
+			tranListStr2 += "<option value=\"" + (i - 1) + "\">" + info2 + "</option>"
+
+		}
+		else {
+			tran_count += lstResTranslate[i].count;
+		}
+		var info1 = lstResTranslate[i].author + "," + lstResTranslate[i].language
+		var info2 = lstResTranslate[i].author + "[" + lstResTranslate[i].language + "]"
+	}
+	var noteListStr = "";
+	var noteListStr2 = "";
+	for (i = 0; i < lstResNote.length; i++) {
+		noteListStr += "<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('note'," + i + ")\">" + lstResNote[i].author + "[" + lstResNote[i].language + "]-" + lstResNote[i].count + "</a></li>"
+		var info1 = lstResNote[i].author + "," + lstResNote[i].language
+		var info2 = lstResNote[i].author + "[" + lstResNote[i].language + "]"
+		noteListStr2 += "<option value=\"" + i + "\">" + info2 + "</option>"
+	}
+
+	var headingListStr = "";
+	for (i = 0; i < lstResHeading.length; i++) {
+		headingListStr += "<li><input type=\"checkbox\" checked /><a onclick=\"project_res_info_click('heading'," + i + ")\">" + lstResHeading[i].author + "[" + lstResHeading[i].language + "]-" + lstResHeading[i].count + "</a></li>"
+	}
+	var iCountIld = g_DictWordList.length;
+	var iCountIldXML = gXmlBookDataInlineDict.getElementsByTagName("word").length;
+	var ildListStr = "<li>Inline Dict XML(" + iCountIldXML + ")</li><li>Inline Dict Array(" + iCountIld + ")</li>";
+
+	document.getElementById("id_editor_project_res_wbw_inner").innerHTML = wbwListStr;
+	document.getElementById("id_editor_project_res_translate_inner").innerHTML = tranListStr;
+	document.getElementById("id_editor_project_res_note_inner").innerHTML = noteListStr;
+	document.getElementById("id_editor_project_res_heading_inner").innerHTML = headingListStr;
+	document.getElementById("id_editor_project_res_ild_inner").innerHTML = ildListStr;
+	document.getElementById("id_translate_export_list").innerHTML = tranListStr2;
+	document.getElementById("id_note_export_list").innerHTML = noteListStr2;
+	document.getElementById("id_wbw_export_list").innerHTML = wbwListStr2;
 
 }
 
-function project_res_ild_remove(){
-	var_dump(removeAllInlinDictItem()+" recoder removed");
+function project_res_ild_remove() {
+	var_dump(removeAllInlinDictItem() + " recoder removed");
 	refreshResource();
 }
 
-function project_res_info_click(type,index){
-	
+function project_res_info_click(type, index) {
+
 	$("#project_res_album_info").show();
 	$("#project_res_album_info").siblings().hide();
 
-	currResIndex=index;
-	switch(type){
+	currResIndex = index;
+	switch (type) {
 		case "wbw":
 			currResObj = lstResWbw;
-			project_show_album_info(currResObj[index].album_id,currResObj[index].book,type);
-		break;
+			project_show_album_info(currResObj[index].album_id, currResObj[index].book, type);
+			break;
 		case "translate":
 			currResObj = lstResTranslate;
-			project_show_album_info(currResObj[index].album_id,currResObj[index].book,type);
-		break;
+			project_show_album_info(currResObj[index].album_id, currResObj[index].book, type);
+			break;
 		case "note":
 			currResObj = lstResNote
-		break;
+			break;
 		case "heading":
 			currResObj = lstResHeading
-		break;
+			break;
 		default:
-			currResObj=null;
-		break;
+			currResObj = null;
+			break;
 	}
-	document.getElementById("id_project_res_info_language").value=currResObj[index].language;
-	document.getElementById("id_project_res_info_author").value=currResObj[index].author;
-	document.getElementById("id_project_res_info_editor").value=currResObj[index].editor;
+	document.getElementById("id_project_res_info_language").value = currResObj[index].language;
+	document.getElementById("id_project_res_info_author").value = currResObj[index].author;
+	document.getElementById("id_project_res_info_editor").value = currResObj[index].editor;
 	$("#id_project_res_info_edition").val(currResObj[index].edition);
 	$("#project_res_info_title").html(currResObj[index].author);
 }
 
-var g_new_album_guid="";
-function project_show_album_info(album_id,book,type){
+var g_new_album_guid = "";
+function project_show_album_info(album_id, book, type) {
 	$.get("album.php",
-	{
-	op:"get_album",
-	book:book,
-	type:type,
-	album_id:album_id
-	},
-	function(data,status){
-		var album_data=JSON.parse(data);
-		var html="";
-		if(album_data.length>0){
-			var bFound=false;
-			for(var i=0;i<album_data.length;i++){
-				if(album_data[i].id==currResObj[currResIndex].album_id){
-					var alink="album.php?op=show_info&album_id="+album_data[i].id;
-					html="专辑名称:<a href='"+alink+"' target='_blank'>《"+album_data[i].title+"》</a><button>删除</button>";
-					bFound=true;
-					break;
-					//$("#project_album_id").html(html);	
-					//return;
+		{
+			op: "get_album",
+			book: book,
+			type: type,
+			album_id: album_id
+		},
+		function (data, status) {
+			var album_data = JSON.parse(data);
+			var html = "";
+			if (album_data.length > 0) {
+				var bFound = false;
+				for (var i = 0; i < album_data.length; i++) {
+					if (album_data[i].id == currResObj[currResIndex].album_id) {
+						var alink = "album.php?op=show_info&album_id=" + album_data[i].id;
+						html = "专辑名称:<a href='" + alink + "' target='_blank'>《" + album_data[i].title + "》</a><button>删除</button>";
+						bFound = true;
+						break;
+						//$("#project_album_id").html(html);	
+						//return;
+					}
 				}
-			}
-			if(!bFound){
-			html="专辑名称:无";
-			}
-			var html_album_list="";
-			//标记文档中已经被使用的
-			for(var i=0;i<album_data.length;i++){
-				album_data[i].used=false;
-				for(var j=0;j<currResObj.length;j++){
-					if(album_data[i].id==currResObj[j].album_id){
-						album_data[i].used=true;
+				if (!bFound) {
+					html = "专辑名称:无";
+				}
+				var html_album_list = "";
+				//标记文档中已经被使用的
+				for (var i = 0; i < album_data.length; i++) {
+					album_data[i].used = false;
+					for (var j = 0; j < currResObj.length; j++) {
+						if (album_data[i].id == currResObj[j].album_id) {
+							album_data[i].used = true;
+						}
 					}
 				}
-			}
-			for(var i=0;i<album_data.length;i++){
-				if(album_data[i].used==false){
-					var alink="album.php?op=show_info&album_id="+album_data[i].id;
-					var album_id=album_data[i].id;
-					var album_guid=album_data[i].guid;
-					html_album_list+="<li><a href='"+alink+"' target='_blank'>《"+album_data[i].title+"》</a>"+album_data[i].author+album_data[i].language+" <button onclick=\"project_apply_album('"+album_id+"','"+album_guid+"')\">使用此专辑发布</button></li>";	
+				for (var i = 0; i < album_data.length; i++) {
+					if (album_data[i].used == false) {
+						var alink = "album.php?op=show_info&album_id=" + album_data[i].id;
+						var album_id = album_data[i].id;
+						var album_guid = album_data[i].guid;
+						html_album_list += "<li><a href='" + alink + "' target='_blank'>《" + album_data[i].title + "》</a>" + album_data[i].author + album_data[i].language + " <button onclick=\"project_apply_album('" + album_id + "','" + album_guid + "')\">使用此专辑发布</button></li>";
+					}
+				}
+				if (html_album_list != "") {
+					html += " <br />(可以选择下列已有的专辑)";
+					html += "<ul>";
+					html += html_album_list;
+					html += "</ul>";
 				}
+				g_new_album_guid = com_guid();
+				html += "<button onclick='project_new_album_show()'>新建专辑</button>";
+				html += "<div id='project_new_album' style='display:none;'>";
+				html += "<input type='hidden' id='new_album_album_guid' value='" + g_new_album_guid + "'/>";
+				html += "<input type='hidden' id='new_album_album_type' value='" + currResObj[currResIndex].type + "'/>";
+				html += "<input type='hidden' id='new_album_book' value='" + currResObj[currResIndex].book + "'/>";
+				html += "作者(必填):<input type='input' id='new_album_author' value='" + currResObj[currResIndex].author + "'/><br>";
+				html += "专辑名称(必填):<input type='input' id='new_album_title' value=''/><br>";
+				html += "语言:" + currResObj[currResIndex].language + "<input type='hidden' id='new_album_lang' value='" + currResObj[currResIndex].language + "'/><br>";
+				html += "Tag:<input type='input' id='new_album_tag' value=''/><br>";
+				html += "Summary:<input type='input' id='new_album_summary' value=''/><br>";
+				html += "Edition:<input type='input' id='new_album_edition' placeholder=\"第一版\" value=''/><br>";
+				html += "<input type=\"button\" value='完成' onclick='project_new_album_submit()' />";
+				html += "</div>";
+
+
 			}
-			if(html_album_list!=""){
-				html+=" <br />(可以选择下列已有的专辑)";
-				html+="<ul>";
-				html+=html_album_list;
-				html+="</ul>";
+			else {
+				var html = "专辑名称:无";
+				g_new_album_guid = com_guid();
+				html += "<button onclick='project_new_album_show()'>新建专辑</button>";
+				html += "<div id='project_new_album' style='display:none;'>";
+				html += "<input type='hidden' id='new_album_album_guid' value='" + g_new_album_guid + "'/>";
+				html += "<input type='hidden' id='new_album_album_type' value='" + currResObj[currResIndex].type + "'/>";
+				html += "<input type='hidden' id='new_album_book' value='" + currResObj[currResIndex].book + "'/>";
+				html += "作者(必填):<input type='input' id='new_album_author' value='" + currResObj[currResIndex].author + "'/><br>";
+				html += "专辑名称(必填):<input type='input' id='new_album_title' value=''/><br>";
+				html += "语言:" + currResObj[currResIndex].language + "<input type='hidden' id='new_album_lang' value='" + currResObj[currResIndex].language + "'/><br>";
+				html += "Tag:<input type='input' id='new_album_tag' value=''/><br>";
+				html += "Summary:<input type='input' id='new_album_summary' value=''/><br>";
+				html += "Edition:<input type='input' id='new_album_edition' placeholder=\"第一版\" value=''/><br>";
+				html += "<input type=\"button\" value='完成' onclick='project_new_album_submit()' />";
+				html += "</div>";
+
 			}
-			g_new_album_guid=com_guid();
-			html+="<button onclick='project_new_album_show()'>新建专辑</button>";
-			html+= "<div id='project_new_album' style='display:none;'>";
-			html+= "<input type='hidden' id='new_album_album_guid' value='"+g_new_album_guid+"'/>";
-			html+= "<input type='hidden' id='new_album_album_type' value='"+currResObj[currResIndex].type+"'/>";
-			html+= "<input type='hidden' id='new_album_book' value='"+currResObj[currResIndex].book+"'/>";
-			html+= "作者(必填):<input type='input' id='new_album_author' value='"+currResObj[currResIndex].author+"'/><br>";
-			html+= "专辑名称(必填):<input type='input' id='new_album_title' value=''/><br>";
-			html+= "语言:"+currResObj[currResIndex].language+"<input type='hidden' id='new_album_lang' value='"+currResObj[currResIndex].language+"'/><br>";
-			html+= "Tag:<input type='input' id='new_album_tag' value=''/><br>";
-			html+= "Summary:<input type='input' id='new_album_summary' value=''/><br>";
-			html+= "Edition:<input type='input' id='new_album_edition' placeholder=\"第一版\" value=''/><br>";
-			html+= "<input type=\"button\" value='完成' onclick='project_new_album_submit()' />";			
-			html+= "</div>";
-			
+			html += "<div id='project_new_album_server_response'></div>"
+			$("#project_album_id").html(html);
+		});
 
-		}
-		else{
-			var html="专辑名称:无";
-			g_new_album_guid=com_guid();
-			html+="<button onclick='project_new_album_show()'>新建专辑</button>";
-			html+= "<div id='project_new_album' style='display:none;'>";
-			html+= "<input type='hidden' id='new_album_album_guid' value='"+g_new_album_guid+"'/>";
-			html+= "<input type='hidden' id='new_album_album_type' value='"+currResObj[currResIndex].type+"'/>";
-			html+= "<input type='hidden' id='new_album_book' value='"+currResObj[currResIndex].book+"'/>";
-			html+= "作者(必填):<input type='input' id='new_album_author' value='"+currResObj[currResIndex].author+"'/><br>";
-			html+= "专辑名称(必填):<input type='input' id='new_album_title' value=''/><br>";
-			html+= "语言:"+currResObj[currResIndex].language+"<input type='hidden' id='new_album_lang' value='"+currResObj[currResIndex].language+"'/><br>";
-			html+= "Tag:<input type='input' id='new_album_tag' value=''/><br>";
-			html+= "Summary:<input type='input' id='new_album_summary' value=''/><br>";
-			html+= "Edition:<input type='input' id='new_album_edition' placeholder=\"第一版\" value=''/><br>";
-			html+= "<input type=\"button\" value='完成' onclick='project_new_album_submit()' />";			
-			html+= "</div>";
-			
-		}
-		html+= "<div id='project_new_album_server_response'></div>"
-		$("#project_album_id").html(html);
-	});
-	
 }
 
-function project_apply_album(album_id,album_guid){
+function project_apply_album(album_id, album_guid) {
 	//应用新的专辑号到文档数据块
-	var count=0;
-	var xBlock=currResObj[currResIndex].element;
-	for(var iBlock=0;iBlock<xBlock.length;iBlock++){
+	var count = 0;
+	var xBlock = currResObj[currResIndex].element;
+	for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
 		var xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
-		setNodeText(xmlParInfo,"album_guid",album_guid);
-		setNodeText(xmlParInfo,"album_id",album_id);
+		setNodeText(xmlParInfo, "album_guid", album_guid);
+		setNodeText(xmlParInfo, "album_id", album_id);
 		count++;
 	}
-	currResObj[currResIndex].album_id=album_id;
-	currResObj[currResIndex].album_guid=album_guid;
-	alert("应用新的专辑到"+count+"段落");
-	project_res_info_click(currResObj[currResIndex].type,currResIndex);
+	currResObj[currResIndex].album_id = album_id;
+	currResObj[currResIndex].album_guid = album_guid;
+	alert("应用新的专辑到" + count + "段落");
+	project_res_info_click(currResObj[currResIndex].type, currResIndex);
 }
-function project_new_album_show(){
+function project_new_album_show() {
 	$("#project_new_album").show(200);
 }
-function project_new_album_submit(){
+function project_new_album_submit() {
 	var album_guid = $("#new_album_album_guid").val();
 	var album_type = $("#new_album_album_type").val();
 	var book = $("#new_album_book").val();
@@ -514,59 +538,59 @@ function project_new_album_submit(){
 	var tag = $("#new_album_tag").val();
 	var summary = $("#new_album_summary").val();
 	var edition = $("#new_album_edition").val();
-	if(author==""){
+	if (author == "") {
 		alert("作者不能为空");
 		return;
 	}
-	if(title==""){
+	if (title == "") {
 		alert("标题不能为空");
 		return;
 	}
 	$.get("album.php",
-	{
-	op:"new",
-	album_guid:album_guid,
-	album_type:album_type,
-	book:book,
-	lang:lang,
-	tag:tag,
-	summary:summary,
-	author:author,
-	edition:edition,
-	title:title
-	},
-	function(data,status){
-		$("#project_new_album_server_response").html(data);
-		if(data.substring(0,5)!="error"){
-			//新建专辑成功 传回新建的album id
-			alert("新建专辑成功");
-			//应用新的专辑号到文档数据块
-			var old_album_guid=currResObj[currResIndex].album_guid;
-			
-			var count=0;
-			var xBlock=currResObj[currResIndex].element;
-			for(var iBlock=0;iBlock<xBlock.length;iBlock++){
-				var xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
-				setNodeText(xmlParInfo,"album_guid",g_new_album_guid);
-				setNodeText(xmlParInfo,"album_id",data);
-				count++;
-			}
-			currResObj[currResIndex].album_id=data;
-			currResObj[currResIndex].album_guid=g_new_album_guid;
-			alert("应用新的专辑到"+count+"段落");
-			project_res_info_click(currResObj[currResIndex].type,currResIndex);
-		}
-		else{
+		{
+			op: "new",
+			album_guid: album_guid,
+			album_type: album_type,
+			book: book,
+			lang: lang,
+			tag: tag,
+			summary: summary,
+			author: author,
+			edition: edition,
+			title: title
+		},
+		function (data, status) {
 			$("#project_new_album_server_response").html(data);
-		}
-	});		
+			if (data.substring(0, 5) != "error") {
+				//新建专辑成功 传回新建的album id
+				alert("新建专辑成功");
+				//应用新的专辑号到文档数据块
+				var old_album_guid = currResObj[currResIndex].album_guid;
+
+				var count = 0;
+				var xBlock = currResObj[currResIndex].element;
+				for (var iBlock = 0; iBlock < xBlock.length; iBlock++) {
+					var xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
+					setNodeText(xmlParInfo, "album_guid", g_new_album_guid);
+					setNodeText(xmlParInfo, "album_id", data);
+					count++;
+				}
+				currResObj[currResIndex].album_id = data;
+				currResObj[currResIndex].album_guid = g_new_album_guid;
+				alert("应用新的专辑到" + count + "段落");
+				project_res_info_click(currResObj[currResIndex].type, currResIndex);
+			}
+			else {
+				$("#project_new_album_server_response").html(data);
+			}
+		});
 }
 
-function addItemToResList(obj,resList){
-	var isFind=false
-	for(i=0;i<resList.length;i++){
-		if(resList[i].album_guid==obj.album_guid){
-			isFind=true;
+function addItemToResList(obj, resList) {
+	var isFind = false
+	for (i = 0; i < resList.length; i++) {
+		if (resList[i].album_guid == obj.album_guid) {
+			isFind = true;
 			resList[i].count++;
 			resList[i].element.push(obj.element[0])
 			return;
@@ -575,120 +599,115 @@ function addItemToResList(obj,resList){
 	resList.push(obj);
 }
 
-function editor_project_publish(){
-	xmlHttp=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)
-	{
-	  xmlHttp.open("POST", "pc_publish.php", false);
-	  xmlHttp.send(com_xmlToString(gXmlBookData));
-	  var_dump(xmlHttp.responseText);
+function editor_project_publish() {
+	xmlHttp = null;
+	if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc.
+		xmlHttp = new XMLHttpRequest();
 	}
-	else
-	{
-	  var_dump("Your browser does not support XMLHTTP.");
+	else if (window.ActiveXObject) {// code for IE6, IE5
+		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
+	}
+
+	if (xmlHttp != null) {
+		xmlHttp.open("POST", "pc_publish.php", false);
+		xmlHttp.send(com_xmlToString(gXmlBookData));
+		var_dump(xmlHttp.responseText);
+	}
+	else {
+		var_dump("Your browser does not support XMLHTTP.");
 	}
 }
 
-function editor_project_res_info_modify(){
-	xBlocks=currResObj[currResIndex].element
-	for(x in xBlocks){
+function editor_project_res_info_modify() {
+	xBlocks = currResObj[currResIndex].element
+	for (x in xBlocks) {
 		xmlParInfo = xBlocks[x].getElementsByTagName("info")[0];
-		setNodeText(xmlParInfo,"language",document.getElementById("id_project_res_info_language").value);
-		setNodeText(xmlParInfo,"author",document.getElementById("id_project_res_info_author").value);
-		setNodeText(xmlParInfo,"editor",document.getElementById("id_project_res_info_editor").value);
-		setNodeText(xmlParInfo,"edition",document.getElementById("id_project_res_info_edition").value);
+		setNodeText(xmlParInfo, "language", document.getElementById("id_project_res_info_language").value);
+		setNodeText(xmlParInfo, "author", document.getElementById("id_project_res_info_author").value);
+		setNodeText(xmlParInfo, "editor", document.getElementById("id_project_res_info_editor").value);
+		setNodeText(xmlParInfo, "edition", document.getElementById("id_project_res_info_edition").value);
 	}
 	refreshResource()
 }
 
-function editor_project_res_remove(){
-	var r=confirm("Remove a resource!");
-	if (r==true)
-	{ 
-		xBlocks=currResObj[currResIndex].element
-		
-		for(x in xBlocks){	
-		
+function editor_project_res_remove() {
+	var r = confirm("Remove a resource!");
+	if (r == true) {
+		xBlocks = currResObj[currResIndex].element
+
+		for (x in xBlocks) {
+
 			xmlParInfo = xBlocks[x].getElementsByTagName("info")[0];
-			blockid=getNodeText(xmlParInfo,"id");
-			type=getNodeText(xmlParInfo,"type");
-			var htmlDivId="";
-			switch(type){
+			blockid = getNodeText(xmlParInfo, "id");
+			type = getNodeText(xmlParInfo, "type");
+			var htmlDivId = "";
+			switch (type) {
 				case "wbw":
-					htmlDivId="id_wbw_"+blockid;
+					htmlDivId = "id_wbw_" + blockid;
 					break;
 				case "translate":
-					htmlDivId="id_tran_"+blockid;
+					htmlDivId = "id_tran_" + blockid;
 					break;
 				case "note":
-					htmlDivId="id_note_"+blockid;
+					htmlDivId = "id_note_" + blockid;
 					break;
 				case "heading":
-					htmlDivId="id_heading_"+blockid;
+					htmlDivId = "id_heading_" + blockid;
 					break;
 			}
-			xHtmlDom=document.getElementById(htmlDivId);
-			if(xHtmlDom){
+			xHtmlDom = document.getElementById(htmlDivId);
+			if (xHtmlDom) {
 				xHtmlDom.parentNode.removeChild(xHtmlDom);
 			}
-			else{
+			else {
 				//alert("错误的数据包id-"+blockid);
 			}
-			
+
 			xBlocks[x].parentNode.removeChild(xBlocks[x]);
 		}
 		refreshResource()
 		alert("Removed OK! \nPlease save and open project again.");
 
-	 }
+	}
 
 }
 
-function editor_project_res_publish(){
-	var xBlocks=currResObj[currResIndex].element;
-	if(xBlocks.length){
+function editor_project_res_publish() {
+	var xBlocks = currResObj[currResIndex].element;
+	if (xBlocks.length) {
 		var xmlParInfo = xBlocks[0].getElementsByTagName("info")[0];
-		var album_id=getNodeText(xmlParInfo,"album_id");
-		var album_guid=getNodeText(xmlParInfo,"album_guid");
-		var album_type=getNodeText(xmlParInfo,"type");
-		var album_lang=getNodeText(xmlParInfo,"language");
-		var album_author=getNodeText(xmlParInfo,"author");
-		var album_title=getNodeText(xmlParInfo,"album_title");
-		var book=getNodeText(xmlParInfo,"book");
+		var album_id = getNodeText(xmlParInfo, "album_id");
+		var album_guid = getNodeText(xmlParInfo, "album_guid");
+		var album_type = getNodeText(xmlParInfo, "type");
+		var album_lang = getNodeText(xmlParInfo, "language");
+		var album_author = getNodeText(xmlParInfo, "author");
+		var album_title = getNodeText(xmlParInfo, "album_title");
+		var book = getNodeText(xmlParInfo, "book");
+
+		window.open("publish.php?step=1&id=" + album_id + "&filename=" + g_filename + "&type=" + album_type + "&book=" + book + "&lang=" + album_lang + "&author=" + album_author + "&title=" + album_title, "_blank");
 
-		window.open("publish.php?step=1&id="+album_id+"&filename="+g_filename+"&type="+album_type+"&book="+book+"&lang="+album_lang+"&author="+album_author+"&title="+album_title,"_blank");
-		
 	}
 }
 
-function project_res_type_click(sType){
-	var html="";
-	switch(sType){
-		case "doc":	
+function project_res_type_click(sType) {
+	var html = "";
+	switch (sType) {
+		case "doc":
 			$("#id_editor_project_res_docinfo").show();
 			$("#id_editor_project_res_docinfo").siblings().hide();
-		break;
+			break;
 		case "wbw":
 			$("#id_editor_project_res_wbw").show();
 			$("#id_editor_project_res_wbw").siblings().hide();
-		break;
+			break;
 		case "tran":
 			$("#id_editor_project_res_translate").show();
 			$("#id_editor_project_res_translate").siblings().hide();
-		break;
+			break;
 		case "note":
 			$("#id_editor_project_res_note").show();
 			$("#id_editor_project_res_note").siblings().hide();
-		break;
-		
+			break;
+
 	}
 }

+ 25 - 21
app/studio/plugin/system_script/gui.html

@@ -1,21 +1,25 @@
-						<div class="code_list_dropdown" style="margin-left: 0.5em;margin-right: 0.5em;margin-top: 0.4em;margin-bottom: 0.2em;height:2em;width: auto">
-								<span style="margin-left:auto; display:flex; align-items: center; height:2em; width:auto;">							<?php echo $module_gui_str['editor_layout']['1005']; ?>:</span>
-								<select id="code_list0" onchange="layoutWordHeadCode(0,this)" style="height:2em;width: auto">
-									<option value="org">Pāḷi Roman</option>
-									<option value="si_c">සින්හල</option>
-									<option value="myanmar">myanmar</option>
-									<option value="telugu">తెలుగు</option>
-								</select>
-						</div>
-						<div class="code_list_dropdown" style="margin-left: 0.5em;margin-right: 0.5em;margin-top: 0.2em;margin-bottom: 0.4em;height:auto;width: auto">
-								<span style="margin-left:auto; display:flex; align-items: center; height:auto; width: auto">							<?php echo $module_gui_str['editor_layout']['1006'];//次要編碼 ?>:</span>
-								<select id="code_list1" onchange="layoutWordHeadCode(1,this)" style="height:2em;width: auto" >
-									<option value="none">None</option>
-									<option value="org">Pāḷi Roman</option>
-									<option value="myanmar">myanmar</option>
-									<option value="si_c">සින්හල</option>
-									<option value="zh">简体中文</option>
-									<option value="tw">正體中文</option>
-									<option value="telugu">తెలుగు</option>
-								</select>
-						</div>
+<div class="code_list_dropdown"
+	style="margin-left: 0.5em;margin-right: 0.5em;margin-top: 0.4em;margin-bottom: 0.2em;height:2em;width: auto">
+	<span style="margin-left:auto; display:flex; align-items: center; height:2em; width:auto;">
+		<?php echo $module_gui_str['editor_layout']['1005']; ?>:</span>
+	<select id="code_list0" onchange="layoutWordHeadCode(0,this)" style="height:2em;width: auto">
+		<option value="org">Pāḷi Roman</option>
+		<option value="si_c">සින්හල</option>
+		<option value="myanmar">မြန်မာ</option>
+		<option value="telugu">తెలుగు</option>
+	</select>
+</div>
+<div class="code_list_dropdown"
+	style="margin-left: 0.5em;margin-right: 0.5em;margin-top: 0.2em;margin-bottom: 0.4em;height:auto;width: auto">
+	<span style="margin-left:auto; display:flex; align-items: center; height:auto; width: auto">
+		<?php echo $module_gui_str['editor_layout']['1006'];//次要編碼 ?>:</span>
+	<select id="code_list1" onchange="layoutWordHeadCode(1,this)" style="height:2em;width: auto">
+		<option value="none">None</option>
+		<option value="org">Pāḷi Roman</option>
+		<option value="myanmar">မြန်မာ</option>
+		<option value="si_c">සින්හල</option>
+		<option value="zh">简体中文</option>
+		<option value="tw">正體中文</option>
+		<option value="telugu">తెలుగు</option>
+	</select>
+</div>

+ 5 - 5
app/studio/project.php

@@ -59,7 +59,7 @@ switch($op){
 		$Fetch = PDO_FetchAll($query);
 		if(count($Fetch)>0){
 			if($Fetch[0]["sum_str"]>15000){
-				echo "文件过大。不能编辑。请选择小一点的章节";
+				echo $_local->gui->oversize_to_load;
 				exit;
 			}
 		}
@@ -283,7 +283,7 @@ switch($op){
 						echo "成功新建一个文件.";
 					}
 		
-					echo "<a href=\"editor.php?op=opendb&doc_id={$doc_id}\">打开</a>";
+					echo "<a href=\"editor.php?op=opendb&doc_id={$doc_id}\">{$_local->gui->open}</a>";
 				}
 				break;
 			}
@@ -777,7 +777,7 @@ switch($op){
 			$uid=$_COOKIE["uid"];
 		}
 		else{
-			echo "<h3><a href='../ucenter/index.php?op=login'>登录</a>后才可以打开文档 </h3>";
+			echo "<h3><a href='../ucenter/index.php?op=login'>{$_local->gui->login}</a>后才可以打开文档</h3>";
 			exit;
 		}
 		$db_file = _FILE_DB_FILEINDEX_;
@@ -799,9 +799,9 @@ switch($op){
 				
 				if($owner==$uid){
 					//自己的文档
-					echo "<h3>我的文档</h3>";
+					echo "<h3>{$_local->gui->my_document}</h3>";
 					$my_doc_id=$doc_id;
-					echo "正在<a href=\"editor.php?op=opendb&fileid={$doc_id}\">打开</a>文档";
+					echo "<a href=\"editor.php?op=opendb&fileid={$doc_id}\">{$_local->gui->open_doc}</a>";
 					echo "<script>";
 					echo "window.location.assign(\"editor.php?op=opendb&fileid={$doc_id}\");";
 					echo "</script>";

+ 1 - 1
app/tools/pc_word_analysis.php

@@ -118,7 +118,7 @@ $bookstring="";
 				$prsent1=$prsent*100/$first;
 				$sum_prsent+=$prsent;
 				echo "<tr>";
-				echo "<td>".($i+1)."</td><td>".$Fetch[$i]["parent"]."</td><td>".$sum."</td><td><span style='width:".$prsent1."px;background-color:red;'></span><span style:'width:".(100-$prsent1)."px;background-color:blue;'></span>".$prsent."</td><td>".$sum_prsent."</td>";
+				echo "<td>".($i+1)."</td><td>".$Fetch[$i]["parent"]."</td><td>".$sum."</td><td><span style='width:".$prsent1."px;background-color:red;'></span><span style:'width:".(100-$prsent1)."px;background-color: var(--tool-link-hover-color);'></span>".$prsent."</td><td>".$sum_prsent."</td>";
 				echo "</tr>";
 			}
 		}

+ 31 - 14
app/ucenter/user.php

@@ -31,24 +31,34 @@
 		text-align:right;
 	}
 	#user_bar{
-		border: 1px solid var(--btn-border-color);
+		border: 2px solid var(--btn-border-color);
 		border-radius: 99px;
 		color: var(--btn-color);
 		padding: 2px 2px 2px 15px;
 		height: min-content;
+		display: flex;
 	}
+	.new_account{
+		border: 2px solid var(--btn-border-color);
+		border-radius: 99px;
+		color: var(--btn-color);
+		padding: 5px 10px;
+		height: min-content;
+	}
+	.new_account:hover{
+		background: var(--btn-border-color);
+
+	}
+
 	</style>
 		<div style="margin:auto;" class="dropdown" onmouseover="switchMenu(this,'user_info')" onmouseout="hideMenu()">
-			<div id="user_bar" >
-				<span>
+			
 				<?php
 				if(isset($_COOKIE["userid"])){
-					echo $_COOKIE["nickname"];
-				}
-				else{
-					echo "<a href='../ucenter/'>[登陆]</a> <a href='../ucenter/index.php?op=new'>[注册]</a>";
-				}
 				?>
+			<div id="user_bar" >
+				<span style="padding: 4px 0;">
+					<?php echo $_COOKIE["nickname"]; ?>
 				</span>
 				<button class="dropbtn icon_btn" onClick="switchMenu(this,'user_info')" id="use_mode">	
 					<svg class="icon" xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 32 32" id="ic_user_32px" style="fill: var(--tool-link-hover-color);">
@@ -56,9 +66,6 @@
 				</button>
 			</div>
 			<div class="dropdown-content" id="user_info">
-				<?php
-				if(isset($_COOKIE["userid"])){
-				?>
 				<div id="user_info_welcome">
 				<div id="user_info_welcome1"><?php echo $_local->gui->welcome;?></div>
 				<div id="user_info_name"><?php echo $_COOKIE["nickname"];?></div>
@@ -86,9 +93,19 @@
 					</svg>
 					<?php echo $_local->gui->logout;?>
 				</a>
-			<?php
-				}
-			?>				
 			</div>
 
+				<?php
+				}
+				else{
+					?>
+			<span style="display: flex;">
+				<div  style="padding: 7px; margin-right: 10px;"><a href='../ucenter/'><?php echo $_local->gui->login;?></a></div>
+				<div class="new_account"><a href='../ucenter/index.php?op=new'><?php echo $_local->gui->new_account;?></a></div>
+			</span>
+				<?php
+				}
+				?>
+
+
 		</div>

+ 15 - 0
documents/course/课程历史链接.md

@@ -0,0 +1,15 @@
+## 课程回放Lesson Replays:
+- Outside Mainland China
+[youtube](https://www.youtube.com/playlist?list=PL_1iJBQvNPFHmQFWvzotYY3F6et83tFZN)
+
+- 中国大陆地区
+[百度网盘](https://pan.baidu.com/s/1zjWdxydOMig4Zv213nsGiA)  提取码: q4k5
+  
+## 其他参考资料Other Referance
+### Dhamma Talk on "The Significance of Āsāḷha Full Moon Day"
+by Sayadaw Kuṇḍadhāna on12th July 2020
+- Outside Mainland China [youtube](https://www.youtube.com/playlist?list=PL_qplOeoq4DtIh6XfsE4O9nCe198aXeTT) 
+- 中国大陆:[百度网盘](https://pan.baidu.com/s/1e35cNpw1RaiSePrZ_OA2Fg) 提取码:pali
+### wikipāḷi使用指南
+- Outside Mainland China [中文版](https://youtu.be/Ymwk-L8cNlY) [英文版](https://youtu.be/F2U9guv_0cM)
+- 中国大陆:[百度网盘](https://pan.baidu.com/s/1PtvCVBx5sqspflKhzisJzg) 提取码: snba

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

@@ -0,0 +1,32 @@
+主题title:
+推动法的车轮经详解-第5讲
+Dhammacakkapavattanasutta Lesson 5
+by IAPT国际巴利三藏院 
+时间:
+8/16 18:30 L. A.
+8/16 21:30 北美
+8/17 8:00 仰光
+8/17 9:30 北京
+
+
+加入 Zoom 会议
+https://us02web.zoom.us/j/86184801875?pwd=VkdmTW9lUHQ1TDI3Q21YUVVHTkFKdz09
+
+会议 ID:861 8480 1875
+密码:009120
+
+转动法之车轮经详解 第0讲
+Explaination of Dhammacakkappavattanasutta Lesson 0
+
+转动正法车轮经 根本 义註 复註 的讲解。
+主讲老师:U Kuṇḍadhāna Sayadaw
+授课地点:帕奥禅修中心(缅甸·土瓦dawei)
+字幕投稿:https://www.youtube.com/timedtext_cs_panel?c=UClGNGi4ULgZafT_OIit_owA&tab=2
+线上教室:zoom
+技术支持:www.wikipali.org
+Explaination of Dhammacakkappavattanasutta mūla, aṭṭhakathā & tīkā
+Teacher:U Kuṇḍadhāna Sayadaw
+Place:Pa-auk Meditation Centre(Dawei, Myanmar)
+Subtitle distribute:https://www.youtube.com/timedtext_cs_panel?c=UClGNGi4ULgZafT_OIit_owA&tab=2
+Online classroom:zoom
+Power by:www.wikipali.org

+ 41 - 0
documents/users_guide/en/grammar_abbr.md

@@ -0,0 +1,41 @@
+## Basic Operations
+- Fill syntax information by selecting the drop-down list
+- First, select the type with outline, such as: verb
+- Then, select the following content, such as: **3p sg. pres.**
+- For the above-mentioned **syntax abbreviations**, please refer to the following table
+- Adjust **grammatical information** and **function word formula** to list the possible meanings of this word
+- Find out the optimal solution
+
+## Splitting of Slur
+The tutorial of splitting a slur word (unavailable)
+
+##  Splitting of Compound Word
+The tutorial of splitting compound word (text not yet available)
+- [YouTube](https://youtu.be/iN1t0Rq9aKk "Press Ctrl and Click On")  
+- [优酷](https://v.youku.com/v_show/id_XNDgwOTg4NDQ4MA==.html "Press Ctrl and Click On")
+- [百度网盘](https://pan.baidu.com/s/1nXZG2GQkkkfblNnshDuS_w "Press Ctrl and Click On")  提取码:pali 
+
+## grammatical abbr. list
+| 缩略语   | abbr.     | note                         |
+| :------- | :-------- | :--------------------------- |
+| 名       | n.        | noun                         |
+| 动       | v.        | verb                         |
+| 三性     | n.a.      | three genders.               |
+| 形       | adj.      | 形容词                       |
+| 不变     | ind.      | indeclinable (nipāta)        |
+| 代       | pron.     | pronoun                      |
+| 动不变   | v. ind.   | indeclinable (-tvā, sighaṃ)  |
+| 数       | num.      | numerals                     |
+| 黏音     | slur.     | sandhi                       |
+| 复合     | comp.     | compound(samāsa)             |
+| 代词干   | pron:base | amha                         | amhākaṃ |
+| 三性词干 | ti:base   | gacchanta mahallaka          |
+| 形词干   | adj:base  | mahallaka 传统分类归属三性词 |
+| 名词干   | n:base    | gāma                         |
+| 数词干   | num:base  | ti                           |
+| 前缀     | prefix    | na-, vi-, saṃ-               |
+| 词根     | root      | gamu                         |
+| 后缀     | suffix    | (-ika, -ana, -tā)            |
+| 语尾     | case end  | vibhatti (-ena, -ehi)        |
+| 动原型   | v:base    | karo(ti) gaccha(ti)          |
+| 原版注释 | note      | sī sya                       |

+ 6 - 0
documents/users_guide/en/grammar_abl.md

@@ -0,0 +1,6 @@
+# ablative case
+pāḷi:nissakkavacana,
+```
+Nissakkavacanaṃ nāma tannissaṭatadapagamaparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/grammar_acc.md

@@ -0,0 +1,6 @@
+# accusative case
+pāḷi:upayogavacana
+```
+Upayogavacanaṃ nāma yo yaṃ karoti, tena tadupayuttaparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/grammar_dat.md

@@ -0,0 +1,6 @@
+# dative case
+pāḷi:sampadānavacana
+```
+Sampadānavacanaṃ nāma tappadānaparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 2 - 0
documents/users_guide/en/grammar_f.md

@@ -0,0 +1,2 @@
+# feminine gender
+pāḷi:itthī

+ 6 - 0
documents/users_guide/en/grammar_gen.md

@@ -0,0 +1,6 @@
+# genitive case
+pāḷi:sāmivacana
+```
+Sāmivacanaṃ nāma tadissaraparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/grammar_inst.md

@@ -0,0 +1,6 @@
+# instrumental case
+pāḷi:karaṇavacanaṃ
+```
+Karaṇavacanaṃ nāma tajjāpakatanibbattakaparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/grammar_loc.md

@@ -0,0 +1,6 @@
+# locative case
+pāḷi:bhummavacana
+```
+Bhummavacanaṃ nāma tappatiṭṭhāparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 2 - 0
documents/users_guide/en/grammar_m.md

@@ -0,0 +1,2 @@
+# masculine gender
+pāḷi:puma

+ 6 - 0
documents/users_guide/en/grammar_nom.md

@@ -0,0 +1,6 @@
+# nominative case
+pāḷi:paccattavacana
+```
+Tatra paccattavacanaṃ nāma tividhaliṅgavavatthānagatānaṃ itthipumanapuṃsakānaṃ paccattasabhāvaniddesattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 2 - 0
documents/users_guide/en/grammar_nt.md

@@ -0,0 +1,2 @@
+# neuter gender
+pāḷi:napuṃsaka

+ 6 - 0
documents/users_guide/en/grammar_pl.md

@@ -0,0 +1,6 @@
+# plural
+pāḷi:bahuvacana
+```
+Bahūnamatthānaṃ vacanaṃ bahuvacanaṃ.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/grammar_sg.md

@@ -0,0 +1,6 @@
+# singular
+pāḷi:ekavacana
+```
+ekassatthassa vacanaṃ ekavacanaṃ.——“Saddanītippakaraṇaṃ”
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/grammar_voc.md

@@ -0,0 +1,6 @@
+# 呼格
+pāḷi:āmantanavacana
+```
+Āmantanavacanaṃ nāma tadāmantanaparidīpanattho.
+```
+——<u>*Saddanītippakaraṇaṃ*</u>

+ 6 - 0
documents/users_guide/en/sent_func.md

@@ -0,0 +1,6 @@
+## Sentence numbering function
+### Add Pāḷi as comment in word-by-word analysis
+Vedio as below (No text yet)
+- [YouTube](https://youtu.be/phRFoQbAh8s "Press Ctrl and Click On")
+- [优酷](https://v.youku.com/v_show/id_XNDgwOTg4OTA0NA==.html "Press Ctrl and Click On")
+- [百度网盘](https://pan.baidu.com/s/1Vs0evu9q6np1l8GRU9auug "Press Ctrl and Click On") 提取码:pali

+ 15 - 0
documents/users_guide/en/studio_break_down.md

@@ -0,0 +1,15 @@
+## Split method
+Pali language segmentation is an important means of semantic analysis starting from etymology.
+
+Users can decide to dismantle the words to what extent they wish.
+
+If the plus sign "+" to separate each component, the machine will automatically identify and find the respective components.
+
+If the word is tonal (sandhi) it can be further disassembled and analyzed separately.
+
+If you are not sure how to split, there are several channels to choose from:
+- Word query by clicking
+  - Click on a word, Opening the <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> in the upper right corner will display dictionary lookup results.
+  - Many long words can be found in the Pali-Myanmarese dictionary (three in total).
+- **Turbo Split** function
+- Ask the teacher

+ 9 - 0
documents/users_guide/en/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)
+- 通过**虚词公式**可以加深我们对语法概念的理解
+- 初学者也可以透过调整**语法信息**和**虚词公式**来实现**格位**、**变位**的抉择

+ 17 - 0
documents/users_guide/en/studio_general_meaning.md

@@ -0,0 +1,17 @@
+## Overall meaning and function word formula
+The meaning entered here will be automatically applied by the system according to the **grammatical information** **function word formula**;
+### Word query
+- Click on a word
+- Open<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>on the upper right corner
+- Dictionary query results will be displayed on the right sidebar
+
+Mouse over <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> at the end of the line, the meaning list of system matching can be showed which can realize the quick input by clicking.
+
+Tips:
+- translator's dictum of fidelity, clarity and elegance
+- The design here is aimed at **clarity** in the three translator's dictum which contains **fidelity**, **clarity** and **elegance**, which is to give priority to the pursuit of clarity of meaning.
+- Alexander Fraser Tytler
+- 此处的设计是针对**信达雅**三大翻译指标中的**达**,即优先追求含义表达的明确性
+- 对于词源学我们设计了**拆分方式**与**拆分含义**
+- 文学优美性我们提供了**整体译文**
+- **虚词公式**可能会有遗漏,如有补充,欢迎通过此[链接](https://github.com/iapt-platform/mint/issues/20)给我们留言。

+ 16 - 0
documents/users_guide/en/studio_message.md

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

+ 18 - 0
documents/users_guide/en/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/en/studio_parent2.md

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

+ 24 - 0
documents/users_guide/en/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 | 已携带 | 待定组分 |

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

@@ -0,0 +1,40 @@
+## 基本操作
+- 通过下拉菜单选择填入语法信息
+- 首先选定类型——带外框的,比如:动词
+- 然后选择后续的内容,比如:三 单 现
+- 以上涉及的**语法缩略语**可以参照下面的表格
+- 调整**语法信息**和**虚词公式**,列举这个词可能的含义
+
+## 连读词拆分
+连读词拆分使用教程 (暂缺)
+
+## 复合词拆分
+复合词拆分使用教程(文本暂缺)
+- [YouTube](https://youtu.be/iN1t0Rq9aKk "按住Ctrl键点开")
+- [优酷](https://v.youku.com/v_show/id_XNDgwOTg4NDQ4MA==.html "按住Ctrl键点开")
+- [百度网盘](https://pan.baidu.com/s/1nXZG2GQkkkfblNnshDuS_w "按住Ctrl键点开")  提取码:pali 
+
+## 语法缩略语表
+| 缩略语   | 英文缩写  | 备注                         |
+| :------- | :-------- | :--------------------------- |
+| 名       | n.        | noun                         |
+| 动       | v.        | verb                         |
+| 三性     | n.a.      | three genders.               |
+| 形       | adj.      | adjective                    |
+| 不变     | ind.      | indeclinable (nipāta)        |
+| 代       | pron.     | pronoun                      |
+| 动不变   | v. ind.   | indeclinable (-tvā, sighaṃ)  |
+| 数       | num.      | numerals                     |
+| 黏音     | slur.     | sandhi                       |
+| 复合     | comp.     | compound(samāsa)             |
+| 代词干   | pron:base | amha, amhākaṃ                |
+| 三性词干 | ti:base   | gacchanta mahallaka          |
+| 形词干   | adj:base  | mahallaka 传统分类归属三性词 |
+| 名词干   | n:base    | gāma                         |
+| 数词干   | num:base  | ti                           |
+| 前缀     | prefix    | na-, vi-, saṃ-               |
+| 词根     | root      | gamu                         |
+| 后缀     | suffix    | (-ika, -ana, -tā)            |
+| 语尾     | case end  | vibhatti (-ena, -ehi)        |
+| 动原型   | v:base    | karo(ti) gaccha(ti)          |
+| 原版注释 | note      | sī sya                       |

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

@@ -0,0 +1,6 @@
+## 句子编号功能
+### 在逐词解析中添加巴利原文注释
+(文本暂无)
+- [YouTube](https://youtu.be/phRFoQbAh8s "按住Ctrl键点开")
+- [优酷](https://v.youku.com/v_show/id_XNDgwOTg4OTA0NA==.html "按住Ctrl键点开")
+- [百度网盘](https://pan.baidu.com/s/1Vs0evu9q6np1l8GRU9auug "按住Ctrl键点开") 提取码: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 | 已携带 | 待定组分 |

+ 40 - 0
documents/users_guide/zh-tw/grammar_abbr.md

@@ -0,0 +1,40 @@
+## 基本操作
+- 通過下拉選單選擇填入語法資訊
+- 首先選定類型——帶外框的,比如:動詞
+- 然後選擇後續的內容,比如:三 單 現
+- 以上涉及的**語法縮略語**可以參照下面的表格
+- 調整**語法資訊**和**虛詞公式**,列舉這個詞可能的含義
+
+## 連讀詞拆分
+連讀詞拆分使用教程 (暫缺)
+
+## 複合詞拆分
+複合詞拆分使用教程(文字暫缺)
+- [YouTube](https://youtu.be/iN1t0Rq9aKk "按住Ctrl鍵點開")
+- [優酷](https://v.youku.com/v_show/id_XNDgwOTg4NDQ4MA==.html "按住Ctrl鍵點開")
+- [百度網盤](https://pan.baidu.com/s/1nXZG2GQkkkfblNnshDuS_w "按住Ctrl鍵點開")  提取碼:pali 
+
+## 語法縮略語表
+| 縮略語   | 英文縮寫  | 備註                         |
+| :------- | :-------- | :--------------------------- |
+| 名       | n.        | noun                         |
+| 動       | v.        | verb                         |
+| 三性     | n.a.      | three genders.               |
+| 形       | adj.      | 形容詞                       |
+| 不變     | ind.      | indeclinable (nipāta)        |
+| 代       | pron.     | pronoun                      |
+| 動不變   | v. ind.   | indeclinable (-tvā, sighaṃ)  |
+| 數       | num.      | numerals                     |
+| 黏音     | slur.     | sandhi                       |
+| 複合     | comp.     | compound(samāsa)             |
+| 代詞幹   | pron:base | amha                         | amhākaṃ |
+| 三性詞幹 | ti:base   | gacchanta mahallaka          |
+| 形詞幹   | adj:base  | mahallaka 傳統分類歸屬三性詞 |
+| 名詞幹   | n:base    | gāma                         |
+| 數詞幹   | num:base  | ti                           |
+| 字首     | prefix    | na-, vi-, saṃ-               |
+| 詞根     | root      | gamu                         |
+| 字尾     | suffix    | (-ika, -ana, -tā)            |
+| 語尾     | case end  | vibhatti (-ena, -ehi)        |
+| 動原型   | v:base    | karo(ti) gaccha(ti)          |
+| 原版註釋 | note      | sī sya                       |

+ 8 - 0
documents/users_guide/zh-tw/grammar_abl.md

@@ -0,0 +1,8 @@
+# 來源格
+pāḷi:nissakkavacana,
+
+別名:離格,奪格,從格
+```
+Nissakkavacanaṃ nāma tannissaṭatadapagamaparidīpanattho.
+```
+例句:2000多年前的一個月圓夜,王子為了解脫煩惱,**從祖國**出發,策馬前往荒野。

+ 8 - 0
documents/users_guide/zh-tw/grammar_acc.md

@@ -0,0 +1,8 @@
+# 賓格
+pāḷi:upayogavacana
+
+別名:業格,受格、對格
+```
+Upayogavacanaṃ nāma yo yaṃ karoti, tena tadupayuttaparidīpanattho.
+```
+例句:2000多年前的一個月圓夜,王子為了解脫煩惱,從祖國出發,策馬前往**荒野**。

+ 7 - 0
documents/users_guide/zh-tw/grammar_dat.md

@@ -0,0 +1,7 @@
+# 目的格
+pāḷi:sampadānavacana
+別名:與格,為格
+```
+Sampadānavacanaṃ nāma tappadānaparidīpanattho.
+```
+例句:2000多年前的一個月圓夜,王子**為了解脫煩惱**,從祖國出發,策馬前往荒野。

+ 4 - 0
documents/users_guide/zh-tw/grammar_f.md

@@ -0,0 +1,4 @@
+# 陰性
+pāḷi:itthī
+本意:女性、雌性
+除了表示人等有性別的生物之外,在其他事物的詞彙上並沒有一定之規。

+ 7 - 0
documents/users_guide/zh-tw/grammar_gen.md

@@ -0,0 +1,7 @@
+# 屬格
+pāḷi:sāmivacana
+別名:所有格
+```
+Sāmivacanaṃ nāma tadissaraparidīpanattho.
+```
+例句:**2000多年前的**一個月圓夜,王子為了解脫煩惱,從祖國出發,策馬前往**其他國家的**荒野。

+ 7 - 0
documents/users_guide/zh-tw/grammar_inst.md

@@ -0,0 +1,7 @@
+# 工具格
+pāḷi:karaṇavacanaṃ
+別名:具格,具做格
+```
+Karaṇavacanaṃ nāma tajjāpakatanibbattakaparidīpanattho.
+```
+例句:2000多年前的一個月圓夜,王子為了解脫煩惱,從祖國出發,**策馬**前往荒野。

+ 7 - 0
documents/users_guide/zh-tw/grammar_loc.md

@@ -0,0 +1,7 @@
+# 處格
+pāḷi:bhummavacana
+別名:位置格,依格
+```
+Bhummavacanaṃ nāma tappatiṭṭhāparidīpanattho.
+```
+例句:2000多年前的**一個月圓夜**,王子為了解脫煩惱,從祖國出發,策馬前往荒野。

+ 4 - 0
documents/users_guide/zh-tw/grammar_m.md

@@ -0,0 +1,4 @@
+# 陽性
+pāḷi:puma
+本意:雄性、男性;
+除了表示人等有性別的生物之外,在其他事物的詞彙上並沒有一定之規。

+ 10 - 0
documents/users_guide/zh-tw/grammar_nom.md

@@ -0,0 +1,10 @@
+# 主格
+pāḷi:paccattavacana
+原意:獨自的用語
+別名:體格
+```
+Tatra paccattavacanaṃ nāma tividhaliṅgavavatthānagatānaṃ itthipumanapuṃsakānaṃ paccattasabhāvaniddesattho.
+——《論語法》
+```
+名詞的變化形式之一,大部分情況在句子中扮演動作的發出者,如下文黑體字。
+例句:2000多年前的一個月圓夜,**王子**為了解脫煩惱,從祖國出發,策馬前往荒野。

+ 3 - 0
documents/users_guide/zh-tw/grammar_nt.md

@@ -0,0 +1,3 @@
+# 中性
+pāḷi:napuṃsaka
+本意:非雄,不是男的

Некоторые файлы не были показаны из-за большого количества измененных файлов