python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python用translate实现中英等互译

Python使用translate库实现多语种互相翻译

作者:j-hacker1412

文章介绍Python的translate库,支持40+语言互译,可指定全称或代码进行翻译,能处理文本文件,自动分割超500字符行并逐段翻译,结果保存至新文件,需先通过pip安装,用户需提供文件路径并检查存在性,翻译成功后显示结果文件路径

在python中,有个多语种翻译包,可以将各种语言进行翻译转换,例如英语转中文,韩语转中文,日语转韩语等,这个包便是translate,而且使用方便,翻译准确率还可以!

支持语言范围

语言参数格式

使用时可选择以下两种参数格式指定语言:

from translate import Translator
# 中文→英语
Translator(from_lang="Chinese", to_lang="English").translate("你好")
# 中文→日语(代码形式)
Translator(from_lang="ZH", to_lang="JA").translate("你好")

例如:

from_langto_lang
englishchinese
i need you我需要你
Japanesechinese
今日の天気はどうですか?今天天气怎么样?
JapaneseKorean
今日の天気はどうですか?오늘 날씨는 어떻습니까?

注意:如果不指定from_lang属性,则默认为english,to_lang属性必须指定一种输出语言,否则会报错。

文件翻译实例(翻译结果输出文件)

该程序读取指定的文本文件,并将其中的文本内容(英文)翻译成目标语言(中文)。如果一行字符数超过500,则将其分割成更小的部分进行翻译。最终,将翻译结果写入新的文件,并显示翻译结果文件的路径。如果指定的文件路径不存在,则会显示相应的提示信息。用户需要输入要翻译的文本文件的路径。

下面是代码

注意下面的代码使用了一个第三方库,需要你在cmd中输入:pip install translate,下载这个第三方库。

from translate import Translator
import os


def translate_text(text):
    translator = Translator(to_lang="zh")
    translation = translator.translate(text)
    return translation

def translate_file(file_path):
    # 检查文件路径是否存在
    if os.path.isfile(file_path):
        # 打开文本文件并读取内容
        with open(file_path, "r", encoding="utf-8") as file:
            lines = file.readlines()

        # 初始化结果列表
        translations = []

        # 逐行翻译文本
        for line in lines:
            # 如果行的字符数超过500,将其分割成更小的部分进行翻译
            if len(line) > 500:
                # 按逗号分割行
                segments = line.split(",")
                for segment in segments:
                    # 翻译段落
                    translation = translate_text(segment.strip())
                    # 追加到结果列表中
                    translations.append(translation)
            else:
                # 翻译行
                translation = translate_text(line.strip())
                # 追加到结果列表中
                translations.append(translation)

        # 将翻译结果写入新的文件
        translated_file_path = "translated_" + os.path.basename(file_path)
        with open(translated_file_path, "w", encoding="utf-8") as file:
            file.write("\n".join(translations))

        print("文件翻译完成,翻译结果已写入文件: " + translated_file_path)
    else:
        print("指定的文件路径不存在")

# 输入要翻译的文本文件路径
file_path = input("请输入要翻译的文本文档的路径: ")
translate_file(file_path)

给大家展示一下效果:

如图是要翻译的文本文档:

 它的路径为D:\\123.txt.

接下来运行程序

当程序运行成功后,就可以在 包含上面代码的.py文件所在的目录看到存储翻译结果的文本文档了

如图:

translated_123.txt就是了。 

总结

translate库,将指定的英文文本文件翻译成中文,如果遇到超过500字符的行,它会自动分割并逐段翻译,然后将所有翻译结果写入新文件,用户需提供文件路径,程序会检查文件是否存在,并在成功翻译后显示结果文件的位置

到此这篇关于Python使用translate库实现多语种互相翻译的文章就介绍到这了,更多相关Python用translate实现中英等互译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文