机器翻译编程

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

  1. 功能特点:

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

    pip install googletrans==4.0.0-rc1

  3. 使用方法:

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

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