term_sys_tool.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  1. <?php
  2. require 'checklogin.inc';
  3. require 'config.php';
  4. if(isset($_GET["language"])){
  5. $currLanguage=$_GET["language"];
  6. $_COOKIE["language"]=$currLanguage;
  7. }
  8. else{
  9. if(isset($_COOKIE["language"])){
  10. $currLanguage=$_COOKIE["language"];
  11. }
  12. else{
  13. $currLanguage="en";
  14. $_COOKIE["language"]=$currLanguage;
  15. }
  16. }
  17. //load language file
  18. if(file_exists($dir_language.$currLanguage.".php")){
  19. require $dir_language.$currLanguage.".php";
  20. }
  21. else{
  22. include $dir_language."default.php";
  23. }
  24. if(isset($_GET["device"])){
  25. $currDevice=$_GET["device"];
  26. }
  27. else{
  28. if(isset($_COOKIE["device"])){
  29. $currDevice=$_COOKIE["device"];
  30. }
  31. else{
  32. $currDevice="computer";
  33. }
  34. }
  35. ?>
  36. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  37. <html>
  38. <head>
  39. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  40. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  41. <link type="text/css" rel="stylesheet" href="css/style.css"/>
  42. <link type="text/css" rel="stylesheet" href="css/color_day.css" id="colorchange" />
  43. <link type="text/css" rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:767px)">
  44. <link type="text/css" rel="stylesheet" href="<?php echo $dir_user_base.$userid.$dir_myApp; ?>/style.css"/>
  45. <title>PCD Studio</title>
  46. <script language="javascript" src="config.js"></script>
  47. <script language="javascript" src="js/common.js"></script>
  48. <script language="javascript" src="js/xml.js"></script>
  49. <script language="javascript" src="js/editor.js"></script>
  50. <script language="javascript" src="js/dict.js"></script>
  51. <script language="javascript" src="js/wizard.js"></script>
  52. <script language="javascript" src="js/search.js"></script>
  53. <script language="javascript" src="term_sys_list.js"></script>
  54. <script language="javascript" src="charcode/sinhala.js"></script>
  55. <script language="javascript" src="charcode/unicode.js"></script>
  56. <link type="text/css" rel="stylesheet" href="css/style.css"/>
  57. <script language="javascript" src="<?php echo $dir_user_base.$userid.$dir_myApp; ?>/userinfo.js"></script>
  58. <script language="javascript" src="module/editor/language/default.js"></script>
  59. <script language="javascript" src="module/editor/language/<?php echo $currLanguage; ?>.js"></script>
  60. <script language="javascript" src="module/editor_palicannon/palicannon.js"></script>
  61. <script language="javascript" src="module/editor_palicannon/language/<?php echo $currLanguage; ?>.js"></script>
  62. <!--加载语言文件 -->
  63. <script language="javascript" src="language/default.js"></script>
  64. <?php
  65. if(file_exists("../user/App/language/$currLanguage.js")){
  66. echo("<script language=\"javascript\" src=\"../user/App/language/$currLanguage.js\"></script>");
  67. }
  68. else{
  69. echo("<script language=\"javascript\" src=\"language/$currLanguage.js\"></script>");
  70. }
  71. ?>
  72. <!--加载语言文件结束 -->
  73. <script src="js/jquery-3.3.1.min.js"></script>
  74. <script src="js/fixedsticky.js"></script>
  75. <script type="text/javascript">
  76. var g_device = "computer";
  77. var strSertch = location.search;
  78. if(strSertch.length>0){
  79. strSertch = strSertch.substr(1);
  80. var sertchList=strSertch.split('&');
  81. for ( i in sertchList){
  82. var item = sertchList[i].split('=');
  83. if(item[0]=="device"){
  84. g_device=item[1];
  85. }
  86. }
  87. }
  88. if(g_device=="mobile"){
  89. g_is_mobile=true;
  90. }
  91. else{
  92. g_is_mobile=false;
  93. }
  94. var g_language="en";
  95. function menuLangrage(obj){
  96. g_language=obj.value;
  97. setCookie('language',g_language,365);
  98. window.location.assign("search.php?language="+g_language);
  99. }
  100. var g_selected_array=new Array();
  101. var g_unselected_array=new Array();
  102. var g_add_drop_str=new Array();
  103. var g_replace_list=new Array();
  104. var g_protector_list=new Array();
  105. var g_protector_list2=new Array();
  106. function item_select(obj){
  107. switch(obj.checked){
  108. case true:
  109. var id_array=obj.id.split("_");
  110. id_array.pop();
  111. g_selected_array.push(id_array.join("_"))
  112. var i_selected=0;
  113. for(i_selected in g_unselected_array){
  114. if(g_unselected_array[i_selected]==id_array.join("_")){
  115. g_unselected_array.splice(i_selected,1)
  116. }
  117. }
  118. break;
  119. case false:
  120. var id_array=obj.id.split("_");
  121. id_array.pop();
  122. g_unselected_array.push(id_array.join("_"))
  123. var i_selected=0;
  124. for(i_selected in g_selected_array){
  125. if(g_selected_array[i_selected]==id_array.join("_")){
  126. g_selected_array.splice(i_selected,1)
  127. }
  128. }
  129. break;
  130. }
  131. refresh_replace_list();
  132. }
  133. function add_button(dropdown_id){
  134. var add_drop_str="";
  135. var i_add=Number(dropdown_id.split("_")[2])+1;
  136. add_drop_str+="<select id='output_str_"+i_add+"' class='term_sys_dropdown'; onchange=\"item_change(this,"+i_add+")\";>";
  137. add_drop_str+="<option value='0'>None</option>"
  138. for(str_add in g_unselected_array){
  139. add_drop_str+="<option value='"+g_unselected_array[str_add]+"'>"+g_unselected_array[str_add]+"</option>";
  140. }
  141. add_drop_str+="</select>";
  142. g_add_drop_str.push(add_drop_str);
  143. add_drop_str="";
  144. for(i_output in g_add_drop_str){
  145. add_drop_str+=g_add_drop_str[i_output];
  146. }
  147. $("#output_div").html(add_drop_str);
  148. }
  149. function load_protector_list(){
  150. g_protector_list=term_list_str_new
  151. for(var i_protect=0;i_protect<g_protector_list.length;){
  152. if(g_protector_list[i_protect].type=="a_protect"){
  153. if(g_protector_list[i_protect].id.lastIndexOf(" ")==-1){
  154. g_protector_list[i_protect].text="【"+g_protector_list[i_protect].text+"】";
  155. i_protect++;
  156. }
  157. else{
  158. var word_obj_list2=new Object;
  159. word_obj_list2.id=g_protector_list[i_protect].id
  160. word_obj_list2.text="【"+g_protector_list[i_protect].text+"】"
  161. g_protector_list2.push(word_obj_list2);
  162. g_protector_list.splice(i_protect,1);
  163. }
  164. }
  165. else{
  166. g_protector_list.splice(i_protect,1);
  167. }
  168. }
  169. }
  170. function protector_replace(){
  171. var output=$("#txtInput").val();
  172. var enter_RE=new RegExp("\\n")
  173. var en_par_array=output.split(enter_RE);
  174. for(i_par_en in en_par_array){
  175. var en_word_array=en_par_array[i_par_en].split(" ");
  176. for(i_word_en in en_word_array){
  177. var i_protect=0;
  178. for(i_protect in g_protector_list){
  179. if(en_word_array[i_word_en].toLowerCase()==g_protector_list[i_protect].id.toLowerCase()){
  180. en_word_array[i_word_en]=g_protector_list[i_protect].text;
  181. }
  182. }
  183. }
  184. en_par_array[i_par_en]=en_word_array.join(" ");
  185. }
  186. output=en_par_array.join("\n");
  187. //替換帶空格的
  188. for(i_space in g_protector_list2){
  189. eval("output=output.replace(/"+g_protector_list2[i_space].id+"/g,g_protector_list2[i_space].text);");
  190. }
  191. $("#txtOutput").html(output);
  192. }
  193. function refresh_replace_list(){
  194. g_replace_list=new Array();
  195. for(i_refresh in term_list_str){
  196. var replace_obj=new Object;
  197. replace_obj.id="【"+term_list_str[i_refresh].id+"】";
  198. replace_obj.value=""
  199. for(j_refresh in g_selected_array){
  200. var term_str=eval("term_list_str[i_refresh]."+g_selected_array[j_refresh]+"");
  201. if(term_str!=""){
  202. replace_obj.value+=term_str
  203. if(j_refresh<g_selected_array.length-1){
  204. replace_obj.value+="#"
  205. }
  206. }
  207. }
  208. replace_obj.value="#"+replace_obj.value+"#";
  209. replace_obj.value=replace_obj.value.replace(/##/g,"");
  210. if(replace_obj.value.lastIndexOf("#")==replace_obj.value.length-1 && replace_obj.value.length!=0){
  211. replace_obj.value=replace_obj.value.slice(0,replace_obj.value.length-1)
  212. }
  213. if(replace_obj.value.indexOf("#")==0){
  214. replace_obj.value=replace_obj.value.slice(1)
  215. }
  216. if(replace_obj.value.lastIndexOf("#")!=-1){
  217. term_str=replace_obj.value.split("#");
  218. var head=term_str[0]
  219. term_str.shift();//删除第一个数组
  220. if(term_str.length>1){
  221. replace_obj.value=head+"(";
  222. replace_obj.value+=term_str.join(",");
  223. replace_obj.value+=")"
  224. replace_obj.value.replace(/,\)/g,")");
  225. }
  226. else if(term_str.length==1 && term_str[0]!=""){
  227. replace_obj.value=head+"(";
  228. replace_obj.value+=term_str[0];
  229. replace_obj.value+=")"
  230. }
  231. }
  232. g_replace_list.push(replace_obj);
  233. //g_replace_list[i_refresh].id=replace_obj.id.toString();
  234. //g_replace_list[i_refresh].value=replace_obj.value.toString();
  235. }
  236. }
  237. function glossary_replace(){
  238. var output=$("#txtInput").val();
  239. for(i_term in g_replace_list){
  240. eval("output=output.replace(/"+g_replace_list[i_term].id+"/g,g_replace_list[i_term].value);");
  241. }
  242. $("#txtOutput").html(output);
  243. }
  244. function transfer_glossary(){
  245. var type=$("#templet_type").val();
  246. switch(type){
  247. case "same_language":
  248. glossary_replace();
  249. break;
  250. case "pali_templet":
  251. break;
  252. case "protect_templet":
  253. protector_replace();
  254. break;
  255. }
  256. }
  257. </script>
  258. </head>
  259. <body class="indexbody" onload="">
  260. <!-- tool bar begin-->
  261. <div class='index_toolbar'>
  262. <div id="index_nav">
  263. <button><a href="index.php?language=<?php echo $currLanguage; ?>"><?php echo $module_gui_str['editor']['1018'];?></a></button>
  264. <button><a href="index_pc.php?language=<?php echo $currLanguage; ?>"><?php echo $module_gui_str['editor_wizard']['1002'];?></a></button>
  265. <button><a href="filenew.php?language=<?php echo $currLanguage; ?>"><?php echo $module_gui_str['editor']['1064'];?></a></button>
  266. <button class="selected"><?php echo $module_gui_str['editor']['1052'];?></button>
  267. </div>
  268. <div class="toolgroup1">
  269. <span><?php echo $module_gui_str['editor']['1050'];?></span>
  270. <select id="id_language" name="menu" onchange="menuLangrage(this)">
  271. <option value="en" >English</option>
  272. <option value="sinhala" >සිංහල</option>
  273. <option value="zh" >简体中文</option>
  274. <option value="tw" >繁體中文</option>
  275. </select>
  276. <?php
  277. echo $module_gui_str['editor']['1049'];
  278. echo "<a href=\"setting.php?item=account\">";
  279. echo $_COOKIE["nickname"];
  280. echo "</a>";
  281. echo $module_gui_str['editor']['1042'];
  282. echo "<a href='login.php?op=logout'>";
  283. echo $module_gui_str['editor']['1089'];
  284. echo "</a>";
  285. ?>
  286. </div>
  287. </div>
  288. <!--tool bar end -->
  289. <script>
  290. document.getElementById("id_language").value="<?php echo($currLanguage); ?>";
  291. </script>
  292. <div class="index_inner" style="width: 100%;">
  293. <div style="text-align:center; float:left;width:40%;height:45em;">
  294. My Text Is In
  295. <textarea id="txtInput" rows="30" cols="" style="float:left; font-family: 'Noto Sans','Noto Sans CJK TC', 'Noto Sans CJK SC', 'Noto Sans TC', 'Noto Sans SC', 'Noto Sans CJK', Verdana, sans-serif; font-size:16px; width:100%;height:100%;" ></textarea>
  296. </div>
  297. <div style="text-align:center; float:left;width:15%; display: flex; height: 45em;">
  298. <select id="templet_type" style="margin-top: auto; margin-bottom: auto;">
  299. <option value="same_language">
  300. <?php echo $module_gui_str['tools']['1001']; ?>
  301. </option>
  302. <option value="pali_templet">
  303. <?php echo $module_gui_str['tools']['1002']; ?>
  304. </option>
  305. <option value="protect_templet">
  306. <?php echo $module_gui_str['tools']['1003']; ?>
  307. </option>
  308. </select>
  309. <button id="transfer" style="margin-top: auto; margin-bottom: auto;" type="button" onclick="transfer_glossary()">
  310. <svg class="button_icon">
  311. <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_autorenew"></use>
  312. </svg>
  313. </button>
  314. </div>
  315. <div style="display: flex;flex-direction: column;">
  316. <span>
  317. I Need the Text In
  318. </span>
  319. <span id="output_span"; style="text-align:center;height:80%;">
  320. </span>
  321. <div style="height: 30em; border: 0.2em solid silver;display: flex;">
  322. <textarea id="txtOutput" style="font-family: 'Noto Sans','Noto Sans CJK TC', 'Noto Sans CJK SC', 'Noto Sans TC', 'Noto Sans SC', 'Noto Sans CJK', Verdana, sans-serif; font-size:16px; text-align: left; width:100%;height:100%"></textarea>
  323. </div>
  324. </div>
  325. </div>
  326. </div>
  327. <!-- Tool bar on right side -->
  328. <div class="right_tool_btn">
  329. <button onclick="editor_show_right_tool_bar(true)">
  330. <svg class="icon">
  331. <use xlink:href="svg/icon.svg#ic_move_to_inbox"></use>
  332. </svg>
  333. </button>
  334. </div>
  335. <div id="right_tool_bar" onmouseover="editor_show_right_tool_bar(true)">
  336. <div id="right_tool_bar_title">
  337. <button class="res_button" style="padding: 0" onclick="editor_show_right_tool_bar(false)">
  338. <svg class="button_icon"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_clear"></use></svg>
  339. </button>
  340. <div id="dict_ref_search_input_div">
  341. <div id="dict_ref_search_input_head">
  342. <table>
  343. <tr>
  344. <td>
  345. <div class="case_dropdown">
  346. <svg class="button_icon"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_more"></use></svg>
  347. <div id="dict_ref_dict_link" class="case_dropdown-content">
  348. <a onclick="">[dict]</a>
  349. </div>
  350. </div>
  351. </td>
  352. <td style="width: 95%;">
  353. <input id="dict_ref_search_input" type="input" onkeyup="dict_input_keyup(event,this)">
  354. </td>
  355. </tr>
  356. </table>
  357. </div>
  358. <div><span id="input_parts"><span></div>
  359. </div>
  360. </div>
  361. <div id="right_tool_bar_inner">
  362. <div id="dict_ref_search">
  363. <div id="dict_ref_search_result">
  364. </div>
  365. </div>
  366. <div id="pc_res_loader">
  367. <div id="pc_res_load_button">
  368. <button id="id_open_editor_load_stream" onclick="pc_loadStream(0)"><?php //echo $module_gui_str['editor']['1030'];?>
  369. <svg class="button_icon"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_cloud_download"></use></svg>
  370. </button>
  371. <button id="id_cancel_stream" onclick="pc_cancelStream()"><?php //echo $module_gui_str['editor']['1028'];?>
  372. <svg class="button_icon"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_note_add"></use></svg>
  373. </button>
  374. <button id="pc_empty_download_list" onclick="pc_empty_download_list()"><?php //echo $module_gui_str['editor']['1045'];?>
  375. <svg class="button_icon"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_delete"></use></svg>
  376. </button>
  377. <button onclick="get_pc_res_download_list_from_cookie()"><?php //echo $module_gui_str['editor']['1081'];?>
  378. <svg class="button_icon"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="svg/icon.svg#ic_autorenew"></use></svg>
  379. </button>
  380. </div>
  381. <div id="pc_res_list_div">
  382. </div>
  383. <div id="id_book_res_load_progress"></div>
  384. <canvas id="book_res_load_progress_canvas" width="300" height="30"></canvas>
  385. </div>
  386. </div>
  387. </div>
  388. <!-- Tool bar on right side end -->
  389. <div class="foot_div">
  390. <?php echo $module_gui_str['editor']['1066'];?>
  391. </div>
  392. <div class="debugMsg" id="id_debug" style="display: none;"><!--调试信息-->
  393. <div id="id_debug_output"></div>
  394. </div>
  395. </body>
  396. </html>
  397. <script language="javascript">
  398. //function make_dropdown_opt(dropdown_id){
  399. var opt_str="";
  400. var iCount_term_select=3
  401. for(i_opt in term_list_str[0]){
  402. if(iCount_term_select % 3==0){
  403. opt_str+="<div class='term_select_div'>"
  404. }
  405. if(i_opt=="id"){}
  406. else{
  407. opt_str+="<span class='term_select_span'>";
  408. opt_str+="<input id='"+i_opt+"_checkbox' type='checkbox' class='checkbox_1em' onclick='item_select(this)'>";
  409. opt_str+=i_opt+"</span>";
  410. g_unselected_array.push(i_opt);
  411. }
  412. if(iCount_term_select % 3==2 || iCount_term_select==term_list_str[0].length-1){
  413. opt_str+="</div>"
  414. }
  415. iCount_term_select++
  416. }
  417. document.getElementById("output_span").innerHTML=opt_str
  418. load_protector_list();
  419. //}
  420. </script>