用 Python 编写程序以将英语单词和/或短语翻译成其他语言的最佳方法是什么?
问问题
2309 次
6 回答
2
这是一个非常困难的问题——语言非常非常非常复杂。想想你必须做的所有事情——解析短语,找出单词的意思,翻译它们。这可能不是惯用的,因此您需要针对不同语法的特殊情况。很多很多特殊情况。如果外语与英语不同,你需要弄清楚它的语法——例如,“the big green ball”在西班牙语中变成了“the ball big green”。
不要重新发明轮子。谷歌为他们的翻译服务提供了一个 API,这无疑让许多聪明的人对此深思熟虑。
于 2010-10-05T21:33:17.577 回答
1
最简单的方法是制作一个字典,将一种语言的单词与另一种语言的单词匹配。但是,这非常愚蠢,根本不会考虑语法,而且创建翻译器实际上需要很长时间,特别是如果您打算将其用于多种语言时。如果语法对您来说并不重要(例如,如果您正在为游戏或故事创建自己的语言,而语法与英语没有不同),那么您可以使用字典并简单地使用函数查找请求在字典中匹配
于 2010-10-06T01:45:00.703 回答
1
我认为您应该查看 Google Translate API。这是一个专门为此目的在python中实现的库。
于 2010-10-05T21:32:26.627 回答
0
# Please install Microsoft translate using >> pip install translate
from translate import Translator
class clsTranslate():
def translateText(self, strString, strTolang):
self.strString = strString
self.strTolang = strTolang
translator = Translator(to_lang=self.strTolang)
translation = translator.translate(self.strString)
return (str(translation))
# Create a Class object and call the Translate function
# Pass the language as a parameter to the function, de: German zh: Chinese etc
objTrans=clsTranslate()
strTranslatedText= objTrans.translateText('Howare you', 'de')
print(strTranslatedText)
于 2019-05-07T11:23:09.247 回答
0
您可以使用 Goslate 包,因为它非常易于使用的示例
import goslate
print(goslate.Goslate().translate('hello world', 'ar'))
现在第一个参数是您要翻译的文本,第二个参数是您要翻译的语言。
我希望你会找到有用的答案
于 2017-03-08T07:29:53.057 回答
0
如果您使用深度翻译器,这非常容易!这是源代码(确保安装深度翻译模块):
from deep_translator import GoogleTranslator
import time
def start():
while True:
def translate():
line_to_translate = input('Which line/phrase/word you want to translate?\n')
to_lang = input('In which language you want to translate it?\n')
to_lang = to_lang.lower()
translation = GoogleTranslator(source='auto', target=to_lang).translate(text=line_to_translate)
return translation
time.sleep(1 sec)
esc = (input("Enter 'q' to exit and 'r' to restart.\n"))
while True:
if esc.lower() in {'q', 'r'}:
break
else:
print('Please enter a valid Option!!')
time.sleep(1)
esc = (input("Enter 'q' to exit and 'r' to restart.\n"))
if esc.lower() == 'q':
return
elif esc.lower() == 'r':
pass
start()
于 2021-10-22T14:31:41.077 回答