机器翻译编程

发布于:2025-07-26 ⋅ 阅读:(11) ⋅ 点赞:(0)

这个机器翻译程序的主要功能和使用说明:

  1. 功能特点:

    • 支持多种语言之间的互译
    • 能够自动检测源语言
    • 可以列出所有支持的语言及其代码
    • 提供简单的命令行交互界面
  2. 使用前需要安装依赖库:

pip install googletrans==4.0.0-rc1
  1. 使用方法:

    • 运行程序后,根据菜单选择操作
    • 选择 1 可以查看所有支持的语言
    • 选择 2 可以进行翻译,输入要翻译的文本和目标语言代码
    • 选择 3 退出程序
  2. 注意事项:

    • 该程序使用的是 Google 翻译的非官方 API,可能会受到使用限制
    • 网络连接是必须的,因为翻译是通过网络进行的
    • 对于非常长的文本,可能需要分段翻译
  3. 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 None

    def 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()

 

 


    网站公告

    今日签到

    点亮在社区的每一天
    去签到