index.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <link href="https://cdn.rawgit.com/TeaMeow/TocasUI/2.3.2/dist/tocas.css" rel='stylesheet'>
  6. <script src="https://cdn.rawgit.com/TeaMeow/TocasUI/2.3.2/dist/tocas.js"></script>
  7. <title>DKLMEAA</title>
  8. <style type="text/css">
  9. body {
  10. padding: 70px 0;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <!-- 頂部固定選單 -->
  16. <div class="ts top fixed inverted borderless large menu">
  17. <div class="ts narrow container">
  18. <div class="header item">Open new</div>
  19. <div onclick="ts('#modal').modal('show')" class="header item">Merge item</div>
  20. <div onclick="saveall()" class="header item">Save</div>
  21. </div>
  22. </div>
  23. <div class="ts narrow container relaxed grid">
  24. <div class="sixteen wide column">
  25. <br><br>
  26. <div class="ts grid">
  27. <?php
  28. $data = json_decode(file_get_contents("files/".$_GET["file"]),true);
  29. $keyArr = [];
  30. $template = '<div class="sixteen wide column"><div class="ts grid"><div class="five wide column">%key%</div><div class="five wide column">%orig_lang%</div><div class="six wide column"><div class="ts fluid input"><input type="text" value="%orig_lang%" id="%key%"></div></div></div></div>';
  31. foreach($data["keys"] as $key=>$value){
  32. $replaced = $template;
  33. $replaced = str_replace("%key%",$key,$replaced);
  34. $replaced = str_replace("%orig_lang%",$value,$replaced);
  35. echo $replaced;
  36. array_push($keyArr,$key);
  37. }
  38. ?>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="ts modals dimmer">
  43. <dialog id="modal" class="ts modal" open>
  44. <i class="close icon"></i>
  45. <div class="ts icon header">
  46. Merge new json
  47. </div>
  48. <div class="content">
  49. <div class="ts fluid input">
  50. <textarea id="newjson" rows="20" placeholder="Paste json here"></textarea>
  51. </div>
  52. </div>
  53. <div class="actions">
  54. <button onclick="merge()" class="ts inverted basic positive button">
  55. Quit and Save
  56. </button>
  57. </div>
  58. </dialog>
  59. </div>
  60. </body>
  61. <script src="../script/jquery.min.js"></script>
  62. <script>
  63. var curfilname = "<?php echo $_GET["file"];?>";
  64. var keyArr = JSON.parse('<?php echo json_encode($keyArr);?>');
  65. var cannedword = {
  66. "ArOZ Online System": "ArOZ 在線作業系統",
  67. "UM-Filename": "兼容編碼",
  68. "File explorer": "ArOZβ 檔案管理員",
  69. "Size": "大小",
  70. "Path": "路徑",
  71. "Close": "關閉",
  72. "Copy": "複製",
  73. "Paste": "貼上",
  74. "Cut": "剪下",
  75. "Delete": "刪除",
  76. "Confirm": "確定",
  77. "Cancel": "取消",
  78. "Refresh": "重新載入",
  79. "File": "檔案",
  80. "Folder": "資料夾",
  81. "WebApp": "模組",
  82. "Save": "儲存",
  83. "Web Desktop Mode": "網頁桌面模式",
  84. "Extend Desktop": "擴展桌面",
  85. "Logout": "登出",
  86. "Rename": "重新命名"
  87. };
  88. $("input").each(function() {
  89. var inp = $(this);
  90. console.log(inp.val());
  91. $.each(cannedword, function(values, key) {
  92. var currText = inp.val();
  93. if(inp.val().includes(" ")){
  94. inp.val(inp.val().replace(new RegExp(" " + key + " ","i"),values));
  95. inp.val(inp.val().replace(new RegExp("^" + key,"i"),values));
  96. inp.val(inp.val().replace(new RegExp(key + "$","i"),values));
  97. }else{
  98. inp.val(inp.val().replace(new RegExp(key,"i"),values));
  99. }
  100. if(currText !== inp.val()){
  101. $(inp).parent().attr("class","ts warning fluid input");
  102. }
  103. });
  104. });
  105. $( "input" ).focusout(function() {
  106. var formData = new FormData();
  107. formData.append("aTranslate/currentfilename", curfilname);
  108. //$( "input" ).each(function() {
  109. formData.append($(this).attr("id"), $(this).val());
  110. //});
  111. $.ajax({
  112. url: 'save.php',
  113. data: formData,
  114. processData: false,
  115. contentType: false,
  116. type: 'POST',
  117. success: function(data){
  118. console.log("Saved");
  119. }
  120. });
  121. $(this).parent().attr("class","ts success fluid input");
  122. });
  123. function saveall(){
  124. var formData = new FormData();
  125. formData.append("aTranslate/currentfilename", curfilname);
  126. $("input").each(function() {
  127. formData.append($(this).attr("id"), $(this).val());
  128. });
  129. $.ajax({
  130. url: 'save.php',
  131. data: formData,
  132. processData: false,
  133. contentType: false,
  134. type: 'POST',
  135. success: function(data){
  136. console.log("Saved");
  137. alert("SAVED!");
  138. }
  139. });
  140. $("input").parent().attr("class","ts success fluid input");
  141. }
  142. function merge(){
  143. var newjson = JSON.parse($("#newjson").val());
  144. $.each(newjson["keys"], function(key, values) {
  145. if(!keyArr.includes(key)){
  146. var formData = new FormData();
  147. formData.append("aTranslate/currentfilename", curfilname);
  148. formData.append(key, values);
  149. $.ajax({
  150. url: 'save.php',
  151. data: formData,
  152. processData: false,
  153. contentType: false,
  154. type: 'POST',
  155. success: function(data){
  156. console.log("Saved");
  157. }
  158. });
  159. }
  160. });
  161. }
  162. </script>
  163. </html>