📅  最后修改于: 2023-12-03 15:40:44.139000             🧑  作者: Mango
在这个项目中,我们将介绍如何使用Python编写一个程序,将法语文本翻译成英语,并使用HTML格式将其显示在前端界面上。
要开始这个项目,我们需要先安装以下的Python库:
你可以在终端中通过以下命令快速安装它们:
pip install requests
pip install beautifulsoup4
pip install googletrans==4.0.0-rc1
我们需要导入以上三个Python库来实现这个项目。可以用以下代码导入:
import requests
from bs4 import BeautifulSoup
from googletrans import Translator
使用requests库,我们将从网页中获取法语文本。在本例中,我们将从https://www.linternaute.fr/dictionnaire/fr/提取文本。你可以将该url替换成其他任何法语文本的url。
接着,使用googletrans库,我们将翻译法语文本成英语。将翻译后的文本存储为翻译后的文本。
#获取法语文本
url = "https://www.linternaute.fr/dictionnaire/fr/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
#将法语文本翻译成英语
translator = Translator()
text_to_translate = soup.find('h1').text
translated_text = translator.translate(text_to_translate, dest='en').text
在这个项目中,我们将使用Flask框架来实现前端的开发。我们将在一个HTML文件中显示翻译后的文本。
该HTML文件需要导航栏、文本框和翻译后的文本输出。我们将使用Bootstrap 4实现界面的美化。
以下是HTML代码片段:
<!-- 导航栏 -->
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="#">翻译器</a>
</nav>
<div class="container-fluid mt-3">
<h3> 将法语翻译成英语 </h3>
<!-- 输入框 -->
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="法语文本" aria-label="法语文本">
<button class="btn btn-outline-secondary" type="button" id="button-translate" onclick="translate();">翻译</button>
</div>
<!-- 翻译后文本输出 -->
<div class="output">
<p id="translated-text"></p>
</div>
</div>
注意ID值需要与下面的JavaScript代码片段中的代码保持一致。
以下是JavaScript代码片段。它将调用我们之前写好的函数,将翻译后的文本输出到id为'translated-text'的HTML元素中。
function translate() {
//获取输入文本
var input_text = document.getElementByClassName('input-group')[0].value;
//翻译文本
fetch('/translate', {
method: 'POST',
body: JSON.stringify({
text: input_text
})
}).then(function(response) {
return response.json();
}).then(function(data) {
//将翻译后的文本输出到HTML元素中
document.getElementById('translated-text').innerHTML = data.translated_text;
});
}
最后,使用以下代码让Flask监听服务器并渲染HTML文件。
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
@app.route('/translate', methods=['POST'])
def translate():
#读取输入的法语文本
french_text = request.json['text']
#将法语文本翻译成英语
translator = Translator()
english_text = translator.translate(french_text, dest='en').text
#以JSON格式返回已翻译文本
return jsonify({'translated_text': english_text})
if __name__ == '__main__':
app.run()
恭喜,您已经成功地使用Python将法语文本翻译成英语,并使用HTML格式将其显示在前端界面上。通过了解这个项目,你将不仅学到如何使用不同的Python库和Flask框架,而且能为你自己的项目提供有用的解决方案。