You've already forked LibreTranslate
							
							
				mirror of
				https://github.com/LibreTranslate/LibreTranslate.git
				synced 2025-10-30 23:37:48 +02:00 
			
		
		
		
	fix
This commit is contained in:
		
							
								
								
									
										23
									
								
								app/app.py
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								app/app.py
									
									
									
									
									
								
							| @@ -1,3 +1,4 @@ | ||||
| import io | ||||
| import os | ||||
| import tempfile | ||||
| import uuid | ||||
| @@ -6,7 +7,7 @@ from functools import wraps | ||||
| import argostranslatefiles | ||||
| import pkg_resources | ||||
| from argostranslatefiles import get_supported_formats | ||||
| from flask import Flask, abort, jsonify, render_template, request, url_for, send_from_directory | ||||
| from flask import Flask, abort, jsonify, render_template, request, url_for, send_from_directory, send_file | ||||
| from flask_swagger import swagger | ||||
| from flask_swagger_ui import get_swaggerui_blueprint | ||||
| from translatehtml import translate_html | ||||
| @@ -548,14 +549,8 @@ def create_app(args): | ||||
|                   type: string | ||||
|                   description: Error message | ||||
|         """ | ||||
|         if request.is_json: | ||||
|             json = get_json_dict(request) | ||||
|             source_lang = json.get("source") | ||||
|             target_lang = json.get("target") | ||||
|         else: | ||||
|             source_lang = request.values.get("source") | ||||
|             target_lang = request.values.get("target") | ||||
|  | ||||
|         source_lang = request.form.get("source") | ||||
|         target_lang = request.form.get("target") | ||||
|         file = request.files['file'] | ||||
|  | ||||
|         if not file: | ||||
| @@ -606,8 +601,16 @@ def create_app(args): | ||||
|         Download a translated file | ||||
|         """ | ||||
|         filename.split('.').pop(0) | ||||
|         filepath = os.path.join(tempfile.gettempdir(), filename) | ||||
|  | ||||
|         return send_from_directory(directory=tempfile.gettempdir(), filename=filename) | ||||
|         return_data = io.BytesIO() | ||||
|         with open(filepath, 'rb') as fo: | ||||
|             return_data.write(fo.read()) | ||||
|         return_data.seek(0) | ||||
|  | ||||
|         os.remove(filepath) | ||||
|  | ||||
|         return send_file(return_data, attachment_filename=filename) | ||||
|  | ||||
|     @app.route("/detect", methods=["POST"]) | ||||
|     @access_check | ||||
|   | ||||
| @@ -328,17 +328,18 @@ document.addEventListener('DOMContentLoaded', function(){ | ||||
|  | ||||
|                 let formdata = new FormData(); | ||||
|                 formdata.append("file", this.inputFile); | ||||
|  | ||||
|                 translateFileRequest.send(formdata); | ||||
|                 formdata.append("source", this.sourceLang); | ||||
|                 formdata.append("target", this.targetLang); | ||||
|  | ||||
|                 this.loadingFileTranslation = true | ||||
|  | ||||
|                 translateFileRequest.onreadystatechange = function () { | ||||
|                     if (xhr.readyState == 4 && xhr.status == 200) { | ||||
|                 translateFileRequest.onload = () => { | ||||
|                     if (translateFileRequest.readyState === 4 && translateFileRequest.status === 200) { | ||||
|                         this.loadingFileTranslation = false | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 translateFileRequest.send(formdata); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
|   | ||||
| @@ -196,14 +196,17 @@ | ||||
|                                             <p>[[ inputFile.name ]]</p> | ||||
|                                                 </div> | ||||
|                                                 <div class="col s2"> | ||||
|                                                     <button @click="removeFile" class="btn-flat"> | ||||
|                                                     <button v-if="loadingFileTranslation !== true" @click="removeFile" class="btn-flat"> | ||||
|                                                         <i class="material-icons">close</i> | ||||
|                                                     </button> | ||||
|                                                 </div> | ||||
|                                             </div> | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <button @click="translateFile" class="btn">Translate</button> | ||||
|                                     <button @click="translateFile" v-if="loadingFileTranslation === false" class="btn">Translate</button> | ||||
|                                     <div class="progress" v-if="loadingFileTranslation"> | ||||
|                                         <div class="indeterminate"></div> | ||||
|                                     </div> | ||||
|                                 </div> | ||||
|                             </div> | ||||
|                         </div> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user