机器翻译编程
这个机器翻译程序的主要功能和使用说明:
功能特点:
- 支持多种语言之间的互译
- 能够自动检测源语言
- 可以列出所有支持的语言及其代码
- 提供简单的命令行交互界面
使用前需要安装依赖库:
pip install googletrans==4.0.0-rc1
使用方法:
- 运行程序后,根据菜单选择操作
- 选择 1 可以查看所有支持的语言
- 选择 2 可以进行翻译,输入要翻译的文本和目标语言代码
- 选择 3 退出程序
注意事项:
- 该程序使用的是 Google 翻译的非官方 API,可能会受到使用限制
- 网络连接是必须的,因为翻译是通过网络进行的
- 对于非常长的文本,可能需要分段翻译
from googletrans import Translator, LANGUAGES
class MachineTranslator:
def __init__(self):
self.translator = Translator()
self.supported_languages = LANGUAGES
def list_languages(self):
"""列出所有支持的语言及其代码"""
print("支持的语言列表:")
for code, name in self.supported_languages.items():
print(f"{code}: {name}")
def detect_language(self, text):
"""检测文本的语言"""
try:
detection = self.translator.detect(text)
lang_name = self.supported_languages.get(detection.lang, "未知语言")
return detection.lang, lang_name, detection.confidence
except Exception as e:
print(f"语言检测出错: {str(e)}")
return None, None, None
def translate(self, text, src='auto', dest='en'):
"""翻译文本
src: 源语言代码,'auto'表示自动检测
dest: 目标语言代码
"""
try:
# 检查语言代码是否有效
if src != 'auto' and src not in self.supported_languages:
raise ValueError(f"不支持的源语言代码: {src}")
if dest not in self.supported_languages:
raise ValueError(f"不支持的目标语言代码: {dest}")
translation = self.translator.translate(text, src=src, dest=dest)
return {
'original': text,
'translated': translation.text,
'src_lang': translation.src,
'src_lang_name': self.supported_languages.get(translation.src, "未知语言"),
'dest_lang': translation.dest,
'dest_lang_name': self.supported_languages.get(translation.dest, "未知语言")
}
except Exception as e:
print(f"翻译出错: {str(e)}")
return Nonedef main():
translator = MachineTranslator()
print("简易机器翻译工具")
print("1. 列出支持的语言")
print("2. 翻译文本")
print("3. 退出")
while True:
choice = input("\n请选择操作 (1/2/3): ")
if choice == '1':
translator.list_languages()
elif choice == '2':
text = input("请输入要翻译的文本: ")
dest_lang = input("请输入目标语言代码 (默认: en 英语): ") or 'en'
print("\n正在翻译...")
result = translator.translate(text, dest=dest_lang)
if result:
print(f"\n原文 ({result['src_lang_name']}): {result['original']}")
print(f"译文 ({result['dest_lang_name']}): {result['translated']}")
elif choice == '3':
print("感谢使用,再见!")
break
else:
print("无效的选择,请重试")if __name__ == "__main__":
main()