Browse Source

Merge pull request #334 from visuddhinanda:master

内联字典加图标
visuddhinanda 5 years ago
parent
commit
5e3492cc5a

+ 1 - 0
app/dict/css/style.css

@@ -244,6 +244,7 @@ input[type="submit"] {
 	font-weight: 700;
 	font-weight: 700;
 	margin-top: 15px;
 	margin-top: 15px;
 	padding-bottom: 0;
 	padding-bottom: 0;
+	overflow-wrap: anywhere;
 }
 }
 #main_view {
 #main_view {
 	display: flex;
 	display: flex;

+ 1 - 1
app/dict/dict.js

@@ -39,7 +39,7 @@ function dict_search(word, autoSplit = true) {
 			$("#search_result_shell").append($("#search_summary"));
 			$("#search_result_shell").append($("#search_summary"));
 
 
 			guide_init();
 			guide_init();
-			if (_autoSplit == true) {
+			if (_autoSplit == true && word.length > 10) {
 				get_comp_data(word);
 				get_comp_data(word);
 			}
 			}
 
 

+ 5 - 2
app/dict/dict_lookup.php

@@ -8,6 +8,7 @@ require_once "../public/load_lang.php"; //语言文件
 require_once "../public/function.php";
 require_once "../public/function.php";
 require_once "../search/word_function.php";
 require_once "../search/word_function.php";
 require_once "../ucenter/active.php";
 require_once "../ucenter/active.php";
+require_once "../ucenter/function.php";
 require_once "../dict/p_ending.php";
 require_once "../dict/p_ending.php";
 
 
 _load_book_index();
 _load_book_index();
@@ -56,9 +57,11 @@ $right_word_list = "";
             foreach ($userdict as $key => $value) {
             foreach ($userdict as $key => $value) {
                 echo "<div class='mean'>{$key}:{$value["mean"]}</div>";
                 echo "<div class='mean'>{$key}:{$value["mean"]}</div>";
             }
             }
-            echo "<div><span>{$_local->gui->contributor}:</span>";
+			echo "<div><span>{$_local->gui->contributor}:</span>";
+			$userinfo = new UserInfo();
             foreach ($userlist as $key => $value) {
             foreach ($userlist as $key => $value) {
-                echo $key . "[" . $value . "]";
+				$user = $userinfo->getName($key);
+                echo $user["nickname"] . "[" . $value . "]";
             }
             }
             echo "</div>";
             echo "</div>";
             echo "</div>";
             echo "</div>";

+ 28 - 27
app/dict/function.php

@@ -5,42 +5,43 @@ require_once '../redis/function.php';
 
 
 function getRefFirstMeaning($word,$lang,$redis){
 function getRefFirstMeaning($word,$lang,$redis){
 	if($redis!==false){
 	if($redis!==false){
-		/*
-		$mean = $redis->hGet("ref_first_mean://".$lang,$word);
-		if($mean===FALSE){
-			PDO_Connect(_FILE_DB_REF_, _DB_USERNAME_, _DB_PASSWORD_);
-			$query = "SELECT mean,language as lang from " . _TABLE_DICT_REF_ . " where word = ?  group by language";
-			$Fetch = PDO_FetchAll($query, array($word));
-			if(count($Fetch)>0){
-				foreach ($Fetch as $key => $value) {
-					# code...
-					$redis->hSet("ref_first_mean://".$word,$value["lang"],$value["mean"]);
-				}
+		if(mb_substr($word,0,1,"UTF-8")==="["){
+			$ending = "-".mb_substr($word,1,-1,"UTF-8");
+			$mean = $redis->hGet("ref_first_mean://".$lang,$ending);
+			if($mean!=FALSE){
+				return $mean;
 			}
 			}
 		}
 		}
-		*/
-		$mean = $redis->hGet("ref_first_mean://".$word,$lang);
+		$mean = $redis->hGet("ref_first_mean://".$lang,$word);
 		if($mean!=FALSE){
 		if($mean!=FALSE){
 			return $mean;
 			return $mean;
 		}
 		}
-		else{
-			if($lang!="en"){
-				$mean = $redis->hGet("ref_first_mean://".$word,"en");
-				if($mean!==FALSE){
-					return $mean;
-				}
-			}
-
-			$any = $redis->hGet("ref_first_mean://com",$word);
-			if($any!==FALSE){
-					# code...
-				return $any;
 
 
+		if($lang!="en"){
+			$mean = $redis->hGet("ref_first_mean://en",$word);
+			if($mean!==FALSE){
+				return $mean;
 			}
 			}
-			else{
-				return "";
+		}
+		#如果没有查规则变形
+		if($redis->hExists("dict://regular/part",$word)===TRUE){
+			$rglPart = explode("+",$redis->hGet("dict://regular/part",$word)) ;
+			$mean = $mean = $redis->hGet("ref_first_mean://".$lang,$rglPart[0]);
+			if($mean!=FALSE){
+				return $mean;
 			}
 			}
 		}
 		}
+		#查询其他的语言
+		$any = $redis->hGet("ref_first_mean://com",$word);
+		if($any!==FALSE){
+				# code...
+			return $any;
+
+		}
+		else{
+			return "";
+		}
+		
 	}
 	}
 	else{
 	else{
 		PDO_Connect(_FILE_DB_REF_, _DB_USERNAME_, _DB_PASSWORD_);
 		PDO_Connect(_FILE_DB_REF_, _DB_USERNAME_, _DB_PASSWORD_);

+ 1 - 1
app/dict/index.php

@@ -136,7 +136,7 @@ if (isset($_GET["key"]) && !empty($_GET["key"])) {
 }
 }
 ?>
 ?>
 
 
-window.addEventListener('scroll', winScroll);
+//window.addEventListener('scroll', winScroll);
 
 
 function winScroll(e) {
 function winScroll(e) {
 	if (GetPageScroll().y > 150) {
 	if (GetPageScroll().y > 150) {

+ 102 - 61
app/dict/split.php

@@ -82,78 +82,119 @@ foreach ($arrWords as $currword) {
 	
 	
     foreach ($arrword as $oneword) {
     foreach ($arrword as $oneword) {
 		$result = array(); //全局变量,递归程序的输出容器
 		$result = array(); //全局变量,递归程序的输出容器
-		//$noSandhi = removeSandhi($oneword);
-
-        mySplit2($oneword, 0, false, 0, 0.2, 0.9, true, false);
-		if(count($result) < 2){
-			mySplit2($oneword, 0, $_express, 0, 0.2, 0.8, true, true);
-		}
-        if (isset($_POST["debug"])) {
-            echo "正切:" . count($result) . "<br>\n";
+		#输出结果 ouput to json
+		$wordlist = array();
+
+		$needDeep = false;
+		//看现有的字典里是不是有
+		$new = split2($oneword);
+		if($new!==$oneword){
+			//现有字典里查到
+			$word_part["word"] = $new;
+			$word_part["confidence"] = $value;
+			$wordlist[] = $word_part;	
+			#再处理一次
+			$new2 = split2($new);
+			if($new2!==$new){
+				$word_part["word"] = $new2;
+				$word_part["confidence"] = $value;
+				$wordlist[] = $word_part;					
+			}
+			$needDeep = false;
 		}
 		}
-		if(count($result) < 2){
-			mySplit2($oneword, 0, $_express, 0, 0.2, 0.8, false, true);
+		else{
+			//没查到,查连音词
+			$preSandhi = preSandhi($oneword);
+			if($preSandhi!==$oneword){
+				$word_part["word"] = $preSandhi;
+				$word_part["confidence"] = 1.0;
+				$wordlist[] = $word_part;
+
+				//将处理后的连音词再二次拆分
+				$new = split2($preSandhi);
+				if($new!==$row){
+					$word_part["word"] = $new;
+					$word_part["confidence"] = $value;
+					$wordlist[] = $word_part;	
+					#再处理一次
+					$new2 = split2($new);
+					if($new2!==$new){
+						$word_part["word"] = $new2;
+						$word_part["confidence"] = $value;
+						$wordlist[] = $word_part;					
+					}	
+					//如果能处理,就不进行深度拆分了
+					$needDeep = false;
+				}
+				else{
+					//连音词的第一部分没查到,进行深度拆分
+					$needDeep = true;
+				}
+			}
+			else{
+				$needDeep = true;
+			}		
 		}
 		}
-        if (isset($_POST["debug"])) {
-            echo "反切:" . count($result) . "<br>\n";
-        }
-        /*
-        if (count($result) < 5) {
-        #sandhi advance
-        mySplit2($oneword, 0, $_express, 0, 0.8, 0.8, false, true);
-        if (isset($_POST["debug"])) {
-        echo "反切:" . count($result) . "\n";
-        }
-        }
-        if (count($result) < 5) {
-        #反向
-        mySplit2($oneword, 0, $_express, 0, 0.8, 0.8, false);
-        }
-        if (count($result) < 5) {
-        #正向
-        mySplit2($oneword, 0, $_express, 0, 0.8, 0, true);
-        }
-        if (count($result) < 5) {
-        #反向
-        mySplit2($oneword, 0, $_express, 0, 0.8, 0, false);
-        }
-         */
-        arsort($result); //按信心指数排序
 
 
-        #输出结果 ouput to json
-        $wordlist = array();
-        $iMax = 5;
-        $iCount = 0;
-        foreach ($result as $row => $value) {
-            $iCount++;
-			$word_part = array();
+
+		if($needDeep){
+			if(mb_strlen($oneword,"UTF-8")>35){
+				mySplit2($oneword, 0, true, 0, 0.9, 0.95, true, false);
+			}
+			else{
+				mySplit2($oneword, 0, false, 0, 0.5, 0.95, true, false);
+			}
 			
 			
-            $word_part["word"] = $row;
-			$word_part["confidence"] = $value;
-			$wordlist[] = $word_part;
+			if(count($result) < 1){
+				mySplit2($oneword, 0, $_express, 0, 0.4, 0.8, true, true);
+			}
+			if (isset($_POST["debug"])) {
+				echo "正切:" . count($result) . "<br>\n";
+			}
+			if(count($result) < 2){
+				mySplit2($oneword, 0, $_express, 0, 0.4, 0.8, false, true);
+			}
+			if (isset($_POST["debug"])) {
+				echo "反切:" . count($result) . "<br>\n";
+			}
 
 
-			//后处理 进一步切分没有意思的长词
-			$new = split2($row);
-			if($new!==$row){
-				$word_part["word"] = $new;
+			arsort($result); //按信心指数排序
+
+
+			$iMax = 5;
+			$iCount = 0;
+			foreach ($result as $row => $value) {
+				$iCount++;
+				$word_part = array();
+				
+				$word_part["word"] = $row;
 				$word_part["confidence"] = $value;
 				$word_part["confidence"] = $value;
-				$wordlist[] = $word_part;	
-				#再处理一次
-				$new2 = split2($new);
-				if($new2!==$new){
-					$word_part["word"] = $new2;
+				$wordlist[] = $word_part;
+
+				//后处理 进一步切分没有意思的长词
+				$new = split2($row);
+				if($new!==$row){
+					$word_part["word"] = $new;
 					$word_part["confidence"] = $value;
 					$word_part["confidence"] = $value;
-					$wordlist[] = $word_part;					
-				}				
-			}
+					$wordlist[] = $word_part;	
+					#再处理一次
+					$new2 = split2($new);
+					if($new2!==$new){
+						$word_part["word"] = $new2;
+						$word_part["confidence"] = $value;
+						$wordlist[] = $word_part;					
+					}				
+				}
 
 
 
 
 
 
-            if ($iCount >= $iMax) {
-                break;
-            }
+				if ($iCount >= $iMax) {
+					break;
+				}
+
+			}			
+		}
 
 
-        }
         $output[] = $wordlist;
         $output[] = $wordlist;
 
 
         if (isset($_POST["debug"])) {
         if (isset($_POST["debug"])) {

+ 95 - 41
app/dict/turbo_split.php

@@ -109,34 +109,36 @@ $sandhi[] = array("a" => "ṃ", "b" => "cet", "c" => "ñcet", "len" => 4, "adj_l
 $sandhi[] = array("a" => "ṃ", "b" => "ev", "c" => "mev", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
 $sandhi[] = array("a" => "ṃ", "b" => "ev", "c" => "mev", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
 
 
 /*
 /*
-$sandhi[] = array("a" => "a", "b" => "eva", "c" => "eva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ā", "b" => "eva", "c" => "āyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "e", "b" => "eva", "c" => "eva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "i", "b" => "eva", "c" => "yeva", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ī", "b" => "eva", "c" => "iyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ī", "b" => "eva", "c" => "īyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "o", "b" => "eva", "c" => "ova", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "u", "b" => "eva", "c" => "veva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-
-$sandhi[] = array("a" => "a", "b" => "eva", "c" => "evā", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "e", "b" => "eva", "c" => "evā", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "i", "b" => "eva", "c" => "yevā", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ī", "b" => "eva", "c" => "yevā", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ī", "b" => "eva", "c" => "iyevā", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ī", "b" => "eva", "c" => "īyevā", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "o", "b" => "eva", "c" => "ovā", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-
-$sandhi[] = array("a" => "ā", "b" => "api", "c" => "āpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "a", "b" => "api", "c" => "āpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "e", "b" => "api", "c" => "epi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ī", "b" => "api", "c" => "īpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "i", "b" => "api", "c" => "īpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "o", "b" => "api", "c" => "opi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ū", "b" => "api", "c" => "ūpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "u", "b" => "api", "c" => "ūpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "u", "b" => "api", "c" => "upi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
-$sandhi[] = array("a" => "ṃ", "b" => "api", "c" => "mpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
- */
+$sandhi2[] = array("a" => "ṃ", "b" => "ca", "c" => "ñca", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>1.0);
+$sandhi2[] = array("a" => "ṃ", "b" => "hi", "c" => "ñhi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>1.0);
+
+$sandhi2[] = array("a" => "a", "b" => "iti", "c" => "āti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "e", "b" => "iti", "c" => "eti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "i", "b" => "iti", "c" => "īti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "o", "b" => "iti", "c" => "oti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "u", "b" => "iti", "c" => "ūti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "ṃ", "b" => "iti", "c" => "nti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+
+$sandhi2[] = array("a" => "a", "b" => "eva", "c" => "eva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "e", "b" => "eva", "c" => "eva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "i", "b" => "eva", "c" => "yeva", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ī", "b" => "eva", "c" => "iyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ī", "b" => "eva", "c" => "īyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "o", "b" => "eva", "c" => "ova", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "eva", "c" => "veva", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+
+$sandhi2[] = array("a" => "ā", "b" => "api", "c" => "āpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "a", "b" => "api", "c" => "āpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "e", "b" => "api", "c" => "epi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ī", "b" => "api", "c" => "īpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "i", "b" => "api", "c" => "īpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "o", "b" => "api", "c" => "opi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ū", "b" => "api", "c" => "ūpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "api", "c" => "ūpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "api", "c" => "upi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ṃ", "b" => "api", "c" => "mpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+
+*/
 $sandhi[] = array("a" => "a", "b" => "a", "c" => "a", "len" => 1, "adj_len" => -1, "advance" => true,"cf"=>0.99);
 $sandhi[] = array("a" => "a", "b" => "a", "c" => "a", "len" => 1, "adj_len" => -1, "advance" => true,"cf"=>0.99);
 $sandhi[] = array("a" => "ī", "b" => "", "c" => "i", "len" => 1, "adj_len" => 0, "advance" => true,"cf"=>0.9);
 $sandhi[] = array("a" => "ī", "b" => "", "c" => "i", "len" => 1, "adj_len" => 0, "advance" => true,"cf"=>0.9);
 
 
@@ -241,6 +243,9 @@ function isExsit($word, $adj_len = 0)
 		$word_count = $part["{$word}"][0];
 		$word_count = $part["{$word}"][0];
 		$case_len = $part["{$word}"][1];
 		$case_len = $part["{$word}"][1];
         if ($word_count > 0) {
         if ($word_count > 0) {
+			if (isset($_POST["debug"])) {
+                echo "查到:{$word}:{$word_count}个\n";
+            }
             $isFound = true;
             $isFound = true;
             $count = $word_count + 1;
             $count = $word_count + 1;
         }
         }
@@ -263,12 +268,13 @@ function isExsit($word, $adj_len = 0)
         if (isset($confidence["{$word}"])) {
         if (isset($confidence["{$word}"])) {
             $cf = $confidence["{$word}"];
             $cf = $confidence["{$word}"];
         } else {
         } else {
-            $len = mb_strlen($word, "UTF-8") + $adj_len;
+			//$len = mb_strlen($word, "UTF-8") + $adj_len;
+			$len = mb_strlen($word, "UTF-8") - $case_len;
             $len_correct = 1.2;
             $len_correct = 1.2;
             $count2 = 1.1 + pow($count, 1.18);
             $count2 = 1.1 + pow($count, 1.18);
             $conf_num = pow(1 / $count2, pow(($len - 0.5), $len_correct));
             $conf_num = pow(1 / $count2, pow(($len - 0.5), $len_correct));
-            //$cf = round(1 / (1 + 640 * $conf_num), 9);
-			$cf = round((1-0.02*$case_len) / (1 + 640 * $conf_num), 9);
+            $cf = round(1 / (1 + 640 * $conf_num), 9);
+			//$cf = round((1-0.02*$case_len) / (1 + 640 * $conf_num), 9);
             $confidence["{$word}"] = $cf;
             $confidence["{$word}"] = $cf;
             if (isset($_POST["debug"])) {
             if (isset($_POST["debug"])) {
                 echo "信心指数:{$word}:{$cf}\n";
                 echo "信心指数:{$word}:{$cf}\n";
@@ -352,15 +358,12 @@ function mySplit2($strWord, $deep = 0, $express = false, $adj_len = 0, $c_thresh
             for ($i = $len; $i > 1; $i--) {
             for ($i = $len; $i > 1; $i--) {
                 foreach ($sandhi as $key => $row) {
                 foreach ($sandhi as $key => $row) {
                     if ($sandhi_advance == false && $row["advance"] == true) {
                     if ($sandhi_advance == false && $row["advance"] == true) {
-                        continue;
+                        //continue;
                     }
                     }
                     if (mb_substr($strWord, $i - $row["len"], $row["len"], "UTF-8") == $row["c"]) {
                     if (mb_substr($strWord, $i - $row["len"], $row["len"], "UTF-8") == $row["c"]) {
                         $str1 = mb_substr($strWord, 0, $i - $row["len"], "UTF-8") . $row["a"];
                         $str1 = mb_substr($strWord, 0, $i - $row["len"], "UTF-8") . $row["a"];
                         $str2 = $row["b"] . mb_substr($strWord, $i, null, "UTF-8");
                         $str2 = $row["b"] . mb_substr($strWord, $i, null, "UTF-8");
-                        $confidence = isExsit($str1, $adj_len);
-                        if ($row["advance"] == true) {
-                            $confidence = $confidence * 0.99;
-                        }
+                        $confidence = isExsit($str1, $adj_len)*$row["cf"];
                         if ($confidence > $c_threshhold) {
                         if ($confidence > $c_threshhold) {
                             $output[] = array($str1, $str2, $confidence, $row["adj_len"]);
                             $output[] = array($str1, $str2, $confidence, $row["adj_len"]);
                             if (isset($_POST["debug"])) {
                             if (isset($_POST["debug"])) {
@@ -379,15 +382,12 @@ function mySplit2($strWord, $deep = 0, $express = false, $adj_len = 0, $c_thresh
             for ($i = 1; $i < $len - 1; $i++) {
             for ($i = 1; $i < $len - 1; $i++) {
                 foreach ($sandhi as $key => $row) {
                 foreach ($sandhi as $key => $row) {
                     if ($sandhi_advance == false && $row["advance"] == true) {
                     if ($sandhi_advance == false && $row["advance"] == true) {
-                        continue;
+                        //continue;
                     }
                     }
                     if (mb_substr($strWord, $i, $row["len"], "UTF-8") == $row["c"]) {
                     if (mb_substr($strWord, $i, $row["len"], "UTF-8") == $row["c"]) {
                         $str1 = mb_substr($strWord, 0, $i, "UTF-8") . $row["a"];
                         $str1 = mb_substr($strWord, 0, $i, "UTF-8") . $row["a"];
                         $str2 = $row["b"] . mb_substr($strWord, $i + $row["len"], null, "UTF-8");
                         $str2 = $row["b"] . mb_substr($strWord, $i + $row["len"], null, "UTF-8");
-                        $confidence = isExsit($str2, $adj_len);
-                        if ($row["advance"] == true) {
-                            $confidence = $confidence * 0.99;
-                        }
+                        $confidence = isExsit($str2, $adj_len)*$row["cf"];
                         if ($confidence > $c_threshhold) {
                         if ($confidence > $c_threshhold) {
                             $output[] = array($str2, $str1, $confidence, $row["adj_len"]);
                             $output[] = array($str2, $str1, $confidence, $row["adj_len"]);
                             if (isset($_POST["debug"])) {
                             if (isset($_POST["debug"])) {
@@ -562,4 +562,58 @@ function split2($word){
 
 
 	}
 	}
 	return implode("+",$newword);
 	return implode("+",$newword);
+}
+
+function preSandhi($word){
+	$sandhi2[] = array("a" => "ṃ", "b" => "ca", "c" => "ñca", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>1.0);
+$sandhi2[] = array("a" => "ṃ", "b" => "hi", "c" => "ñhi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>1.0);
+
+$sandhi2[] = array("a" => "a", "b" => "iti", "c" => "āti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "e", "b" => "iti", "c" => "eti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "i", "b" => "iti", "c" => "īti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "o", "b" => "iti", "c" => "oti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "u", "b" => "iti", "c" => "ūti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+$sandhi2[] = array("a" => "ṃ", "b" => "iti", "c" => "nti", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.99999);
+
+$sandhi2[] = array("a" => "ī", "b" => "eva", "c" => "iyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ī", "b" => "eva", "c" => "īyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "eva", "c" => "uyeva", "len" => 5, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "i", "b" => "eva", "c" => "yeva", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "o", "b" => "eva", "c" => "ova", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ṃ", "b" => "eva", "c" => "meva", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "eva", "c" => "veva", "len" => 4, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "a", "b" => "eva", "c" => "eva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "e", "b" => "eva", "c" => "eva", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+
+$sandhi2[] = array("a" => "a", "b" => "api", "c" => "āpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ā", "b" => "api", "c" => "āpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "e", "b" => "api", "c" => "epi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "i", "b" => "api", "c" => "īpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ī", "b" => "api", "c" => "īpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "o", "b" => "api", "c" => "opi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "api", "c" => "ūpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ū", "b" => "api", "c" => "ūpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "u", "b" => "api", "c" => "upi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+$sandhi2[] = array("a" => "ṃ", "b" => "api", "c" => "mpi", "len" => 3, "adj_len" => 0, "advance" => false,"cf"=>0.9999);
+
+$newWord = "";
+$firstWord=$word;
+do {
+	$isFound = false;
+	foreach ($sandhi2 as $key => $sandhi) {
+		# code...
+		$len = $sandhi["len"];
+		$end = mb_substr($firstWord, 0 - $len, null, "UTF-8");
+		if ($end == $sandhi["c"]) {
+			$word1 = mb_substr($firstWord, 0, mb_strlen($firstWord, "UTF-8") - $len, "UTF-8") .$sandhi["a"];
+			$word2 = $sandhi["b"];
+			$newWord = $word2 . "+" .$newWord;
+			$firstWord = $word1;
+			$isFound=true;
+		break;
+		}
+	}
+} while ($isFound);
+$newWord = $firstWord . "+" .$newWord;
+return mb_substr($newWord,0,-1, "UTF-8");
 }
 }

+ 22 - 229
app/reader/index.php

@@ -7,9 +7,11 @@ require_once "../pcdl/html_head.php";
 
 
 	<script src="../channal/channal.js"></script>
 	<script src="../channal/channal.js"></script>
 	<script src="./reader.js"></script>
 	<script src="./reader.js"></script>
-
 	<script src="../widget/click_dropdown.js"></script>
 	<script src="../widget/click_dropdown.js"></script>
 	<link type="text/css" rel="stylesheet" href="../widget/click_dropdown.css"/>
 	<link type="text/css" rel="stylesheet" href="../widget/click_dropdown.css"/>
+	<link type="text/css" rel="stylesheet" href="style.css"  />
+	<link type="text/css" rel="stylesheet" href="mobile.css" media="screen and (max-width:800px)" />
+	<link type="text/css" rel="stylesheet" href="print.css" media="print" />
 
 
 	<script>
 	<script>
 	<?php
 	<?php
@@ -49,233 +51,8 @@ require_once "../pcdl/html_head.php";
 	}
 	}
 	?>
 	?>
 	</script>
 	</script>
-	<style>
-
-
-	#search_result{
-		position: absolute;
-		background: wheat;
-		max-width: 95%;
-		width: 24em;
-	}
-
-	.icon{
-		width: 15px;
-		height: 15px;
-	}
-	.submenu_title{
-		font-size: 120%;
-		font-weight: 700;		
-	}
-
-	#head_bar{
-		display: flex;
-		justify-content: space-between;
-		/*height: 5em;*/
-		background-color: var(--tool-bg-color1);
-		border-bottom: 1px solid var(--tool-line-color);
-		padding:10px;
-		margin-top: 50px;
-		position: fixed;
-		top: 0;
-		left: 0;
-		width: 100%;
-		z-index: 100;
-		
-	}
-
-	.main_view{
-		padding: 0 1em;
-		padding-top: 7em;
-		max-width: 1280px;
-		margin-left: auto;
-		margin-right: auto;
-	}
-
-	.fun_frame {
-		border-bottom: 1px solid gray;
-		margin-right: 10px;
-		margin-bottom: 10px;
-	}
-	.fun_frame .title{
-		padding:6px;
-		font-weight: 700;
-	}
-	.fun_frame>.content{
-		padding:6px;
-		max-height:6em;
-		overflow-y: scroll;
-	}
-	
-	.fixed{
-		position:fixed;
-		right: 0;
-    	top: 0;
-	}
-	.when_right_fixed{
-		padding-right:20em;
-	}
 
 
 
 
-	#contents_view{
-		display:flex;
-	}
-	#contents_div{
-		flex:7;
-	}
-	#contents{
-
-	}
-	#contents li{
-		white-space: normal;
-	}
-	#right_pannal{
-		flex:3;
-		max-width:20em;
-	}
-
-	#contents_foot{
-		margin-bottom: 70vh;
-	}
-
-
-#toc_content .level_2{
-	padding-left:0.5em;
-}
-#toc_content .level_3{
-	padding-left:1em;
-}
-#toc_content .level_4{
-	padding-left:1.5em;
-}
-#toc_content .level_5{
-	padding-left:2em;
-}
-.ui-dialog-titlebar{
-		display: flex;
-    justify-content: space-between;
-	background-color: var(--btn-bg-color);
-    padding: 5px;
-	}
-	.ui-widget-content{
-		background-color: var(--bg-color);
-	}
-	.ui-dialog{
-		box-shadow:  8px 8px 20px var(--border-shadow);
-	}
-	.active{
-		background-color: var(--btn-hover-bg-color);
-		
-	}
-	.active a{
-		color:white;
-	}
-	.icon_btn a {
-	color: var(--main-color);
-	}
-	.icon_btn:hover a {
-		color: var(--btn-hover-color);
-	}
-	chapter{
-	display:inline-block;
-}
-
-.language-para {
-    padding: 2px 2px;
-    position: absolute;
-    margin-top: 7px;
-    border-bottom: 3px solid var(--link-color);
-	margin-left: -60px;
-	font-family: 'Noto Sans', 'Noto Sans SC', 'Noto Sans TC','Padauk', Arial, Verdana;
-}
-
-.level_0{
-	margin-left:0;
-}
-.level_1{
-	margin-left:1em;
-}
-.level_2{
-	margin-left:2em;
-}
-.level_3{
-	margin-left:3em;
-}
-.level_4{
-	margin-left:4em;
-}
-.level_5{
-	margin-left:5em;
-}
-.level_6{
-	margin-left:6em;
-}
-.channal_list{
-		white-space: nowrap;
-		overflow-x: hidden;
-	}
-	.userinfo_channal{
-		display:none;
-	}
-	.userinfo_channal:hover{
-		display:block;
-	}
-	
-	#para_path chapter{
-		color: var(--link-color);
-		font-size: 120%;
-	}
-
-	#para_path_next_level{
-		display:inline-block;
-	}
-
-
-	#right_float_pannal{
-		position: fixed;
-		height: calc(100% - 7.5em);
-		top: 7.5em;
-		left: 100%;
-		width: 28em;
-		min-width:20em;
-		color: var(--btn-color);
-		background-color: var(--tool-bg-color);
-		z-index: 20;
-		-webkit-transition-duration: 0.4s;
-		transition-duration: 0.4s;
-		-webkit-contain: strict;
-		contain: strict;
-		z-index: 51;
-	}
-	#right_float_pannal>iframe{
-		width:100%;
-		height:100%;
-	}
-
-	.right_float_min #right_float_pannal{
-		left: calc(100% - 28em);
-	}
-	</style>
-
-<style media="screen and (max-width:800px)">
-	#right_pannal{
-		display:none;
-	}
-	.when_right_fixed{
-		padding-right:0;
-	}
-	.index_toolbar{
-		position:unset;
-	}
-	#pali_pedia{
-		font-size: 200%;
-		margin-top: auto;
-		margin-bottom: auto;
-		padding-left: 0.5em;
-	}
-</style>
-
-<link type="text/css" rel="stylesheet" href="print.css" media="print" />
 <?php
 <?php
     require_once("../pcdl/head_bar.php");
     require_once("../pcdl/head_bar.php");
 ?>
 ?>
@@ -356,13 +133,13 @@ require_once "../pcdl/html_head.php";
 		}
 		}
 
 
 		?>
 		?>
-			<button class='icon_btn'><a href="#"><?php echo $_local->gui->help; ?></a></button>
-			<button class='icon_btn' onclick="show_dict(this)"><a href="#"><?php echo $_local->gui->dict; ?></a></button>
+			<button class='icon_btn'><a><?php echo $_local->gui->help; ?></a></button>
+			<button id="btn_show_dict" class='icon_btn' onclick="show_dict(this)"><a ><?php echo $_local->gui->dict; ?></a></button>
 		</span>
 		</span>
 	</div>
 	</div>
 </div>
 </div>
 
 
-<div id="main_view_shell">
+
 	<div id="main_view" class="main_view">
 	<div id="main_view" class="main_view">
 		<div id="article_head" style="border-bottom: 1px solid gray;">
 		<div id="article_head" style="border-bottom: 1px solid gray;">
 			<div id="article_title" class="term_word_head_pali"><?php echo $_local->gui->title; ?></div>
 			<div id="article_title" class="term_word_head_pali"><?php echo $_local->gui->title; ?></div>
@@ -423,7 +200,23 @@ require_once "../pcdl/html_head.php";
 		</div>
 		</div>
 	</div>
 	</div>
 
 
+<div id="main_view_shell">
 	<div id="right_float_pannal">
 	<div id="right_float_pannal">
+		<div id="tool_bar">
+			<span>
+			<button id="max_right_float" class="icon_btn" onclick="max_right_float(this)">
+				<svg class='icon'><use xlink:href='../studio/svg/icon.svg#left_expand'></use></svg>
+			</button>
+			<button id="min_right_float" class="icon_btn" onclick="min_right_float(this)">
+				<svg class='icon'><use xlink:href='../studio/svg/icon.svg#right_expand'></use></svg>
+			</button>
+			</span>
+			<span>
+			<button id="close_right_float" class="icon_btn" onclick="close_right_float()">
+			<svg class='icon'><use xlink:href='../studio/svg/icon.svg#cross_with_circle'></use></svg>
+			</button>
+			</span>
+		</div>
 		<iframe id="dict" src="../dict/index.php?builtin=true" name="dict" title="wikipali"></iframe>
 		<iframe id="dict" src="../dict/index.php?builtin=true" name="dict" title="wikipali"></iframe>
 	</div>
 	</div>
 </div>
 </div>

+ 15 - 0
app/reader/mobile.css

@@ -0,0 +1,15 @@
+#right_pannal {
+	display: none;
+}
+.when_right_fixed {
+	padding-right: 0;
+}
+.index_toolbar {
+	position: unset;
+}
+#pali_pedia {
+	font-size: 200%;
+	margin-top: auto;
+	margin-bottom: auto;
+	padding-left: 0.5em;
+}

+ 33 - 0
app/reader/reader.js

@@ -253,6 +253,39 @@ function edit_wbw(book, para) {
 
 
 function show_dict(obj) {
 function show_dict(obj) {
 	$("#main_view_shell").toggleClass("right_float_min");
 	$("#main_view_shell").toggleClass("right_float_min");
+	$("#main_view").toggleClass("main_view_right_float_min");
+
 	$(obj).toggleClass("active");
 	$(obj).toggleClass("active");
 	gBuildinDictIsOpen = $(obj).hasClass("active");
 	gBuildinDictIsOpen = $(obj).hasClass("active");
 }
 }
+
+function close_right_float() {
+	$("#main_view_shell").removeClass("right_float_min");
+	$("#main_view_shell").removeClass("right_float_max");
+
+	$("#main_view").removeClass("main_view_right_float_min");
+	$("#main_view").removeClass("main_view_right_float_max");
+
+	$("#max_right_float").show();
+	$("#min_right_float").hide();
+	$("#btn_show_dict").removeClass("active");
+	gBuildinDictIsOpen = false;
+}
+function min_right_float(obj) {
+	$(obj).siblings().show();
+	$(obj).hide();
+	$("#main_view_shell").addClass("right_float_min");
+	$("#main_view_shell").removeClass("right_float_max");
+
+	$("#main_view").addClass("main_view_right_float_min");
+	$("#main_view").removeClass("main_view_right_float_max");
+}
+function max_right_float(obj) {
+	$(obj).siblings().show();
+	$(obj).hide();
+	$("#main_view_shell").addClass("right_float_max");
+	$("#main_view_shell").removeClass("right_float_min");
+
+	$("#main_view").addClass("main_view_right_float_max");
+	$("#main_view").removeClass("main_view_right_float_min");
+}

+ 226 - 0
app/reader/style.css

@@ -0,0 +1,226 @@
+#search_result {
+	position: absolute;
+	background: wheat;
+	max-width: 95%;
+	width: 24em;
+}
+
+.icon {
+	width: 15px;
+	height: 15px;
+}
+.submenu_title {
+	font-size: 120%;
+	font-weight: 700;
+}
+
+#head_bar {
+	display: flex;
+	justify-content: space-between;
+	/*height: 5em;*/
+	background-color: var(--tool-bg-color1);
+	border-bottom: 1px solid var(--tool-line-color);
+	padding: 10px;
+	margin-top: 50px;
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	z-index: 100;
+}
+
+.main_view {
+	padding: 0 1em;
+	padding-top: 7em;
+	max-width: 1280px;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.fun_frame {
+	border-bottom: 1px solid gray;
+	margin-right: 10px;
+	margin-bottom: 10px;
+}
+.fun_frame .title {
+	padding: 6px;
+	font-weight: 700;
+}
+.fun_frame > .content {
+	padding: 6px;
+	max-height: 6em;
+	overflow-y: scroll;
+}
+
+.fixed {
+	position: fixed;
+	right: 0;
+	top: 0;
+}
+.when_right_fixed {
+	padding-right: 20em;
+}
+
+#contents_view {
+	display: flex;
+}
+#contents_div {
+	flex: 7;
+}
+#contents {
+}
+#contents li {
+	white-space: normal;
+}
+#right_pannal {
+	flex: 3;
+	max-width: 20em;
+}
+
+#contents_foot {
+	margin-bottom: 70vh;
+}
+
+#toc_content .level_2 {
+	padding-left: 0.5em;
+}
+#toc_content .level_3 {
+	padding-left: 1em;
+}
+#toc_content .level_4 {
+	padding-left: 1.5em;
+}
+#toc_content .level_5 {
+	padding-left: 2em;
+}
+.ui-dialog-titlebar {
+	display: flex;
+	justify-content: space-between;
+	background-color: var(--btn-bg-color);
+	padding: 5px;
+}
+.ui-widget-content {
+	background-color: var(--bg-color);
+}
+.ui-dialog {
+	box-shadow: 8px 8px 20px var(--border-shadow);
+}
+.active {
+	background-color: var(--btn-hover-bg-color);
+}
+
+.icon_btn a {
+	color: var(--main-color);
+}
+.icon_btn:hover a {
+	color: var(--btn-hover-color);
+}
+.active a {
+	color: var(--btn-hover-color);
+}
+chapter {
+	display: inline-block;
+}
+
+.language-para {
+	padding: 2px 2px;
+	position: absolute;
+	margin-top: 7px;
+	border-bottom: 3px solid var(--link-color);
+	margin-left: -60px;
+	font-family: "Noto Sans", "Noto Sans SC", "Noto Sans TC", "Padauk", Arial, Verdana;
+}
+
+.level_0 {
+	margin-left: 0;
+}
+.level_1 {
+	margin-left: 1em;
+}
+.level_2 {
+	margin-left: 2em;
+}
+.level_3 {
+	margin-left: 3em;
+}
+.level_4 {
+	margin-left: 4em;
+}
+.level_5 {
+	margin-left: 5em;
+}
+.level_6 {
+	margin-left: 6em;
+}
+.channal_list {
+	white-space: nowrap;
+	overflow-x: hidden;
+}
+.userinfo_channal {
+	display: none;
+}
+.userinfo_channal:hover {
+	display: block;
+}
+
+#para_path chapter {
+	color: var(--link-color);
+	font-size: 120%;
+}
+
+#para_path_next_level {
+	display: inline-block;
+}
+
+#right_float_pannal {
+	position: fixed;
+	height: calc(100% - 7.3em);
+	top: 7.3em;
+	left: 100%;
+	width: 30em;
+	min-width: 20em;
+	color: var(--btn-color);
+	background-color: var(--tool-bg-color);
+	z-index: 20;
+	-webkit-transition-duration: 0.4s;
+	transition-duration: 0.4s;
+	-webkit-contain: strict;
+	contain: strict;
+	z-index: 51;
+}
+#right_float_pannal > iframe {
+	width: 100%;
+	height: 100%;
+}
+.right_float_max #right_float_pannal {
+	left: 50%;
+	width: 50%;
+}
+
+.right_float_min #right_float_pannal {
+	left: calc(100% - 30em);
+}
+#right_float_pannal > #tool_bar {
+	position: absolute;
+	display: flex;
+	width: 100%;
+	justify-content: space-between;
+}
+#right_float_pannal > #tool_bar svg {
+	fill: var(--box-bg-color1);
+}
+#min_right_float {
+	display: none;
+}
+.main_view_right_float_min {
+	margin-right: 29em;
+}
+.main_view_right_float_max {
+	margin-right: 50%;
+}
+.main_view_right_float_min #right_pannal {
+	display: none;
+}
+.main_view_right_float_max #right_pannal {
+	display: none;
+}

File diff suppressed because it is too large
+ 0 - 0
app/studio/svg/icon.svg


+ 2 - 2
app/ucenter/function.php

@@ -59,9 +59,9 @@ class UserInfo
             return $buffer[$id];
             return $buffer[$id];
         }
         }
         if ($this->dbh) {
         if ($this->dbh) {
-            $query = "SELECT nickname,username FROM user WHERE userid= ? ";
+            $query = "SELECT nickname,username FROM user WHERE id = ? or userid= ? ";
             $stmt = $this->dbh->prepare($query);
             $stmt = $this->dbh->prepare($query);
-            $stmt->execute(array($id));
+            $stmt->execute(array($id,$id));
             $user = $stmt->fetchAll(PDO::FETCH_ASSOC);
             $user = $stmt->fetchAll(PDO::FETCH_ASSOC);
             if (count($user) > 0) {
             if (count($user) > 0) {
                 $buffer[$id] = array("nickname" => $user[0]["nickname"], "username" => $user[0]["username"]);
                 $buffer[$id] = array("nickname" => $user[0]["nickname"], "username" => $user[0]["username"]);

+ 2 - 1
dicttext/system/part.csv

@@ -217009,4 +217009,5 @@ udayana,11
 āsīvislaya,1
 āsīvislaya,1
 ādīnaṃ,10
 ādīnaṃ,10
 sa,100
 sa,100
-vasena,100
+vasena,100
+ṃ,100

+ 1 - 1
dicttext/thin/list.csv

@@ -21,8 +21,8 @@ ref14.csv,ref.db,dict
 ref15.csv,ref.db,dict
 ref15.csv,ref.db,dict
 ref16.csv,ref.db,dict
 ref16.csv,ref.db,dict
 ref17.csv,ref.db,dict
 ref17.csv,ref.db,dict
-ref18.csv,ref.db,dict
 ref19.csv,ref.db,dict
 ref19.csv,ref.db,dict
+ref18.csv,ref.db,dict
 ref20.csv,ref.db,dict
 ref20.csv,ref.db,dict
 ref21.csv,ref.db,dict
 ref21.csv,ref.db,dict
 ref22.csv,ref.db,dict
 ref22.csv,ref.db,dict

Some files were not shown because too many files changed in this diff