在使用我的由AI驱动的Markdown翻译脚本(Mistral AI 和 Open AI)翻译我在 GitLab上的Stable Diffusion项目的README时,我遇到了一个重大问题。有些文本部分没有被翻译,而且某些代码块被错误翻译。本文介绍了为解决这一关键问题所做的改进。

遇到的问题

在翻译Stable Diffusion的README时,脚本没有在某些地方正确区分代码块和普通文本。这导致了原本应该保持不变内容的不当翻译,因此揭示了需要更精细管理代码块的必要性。

解决策略

为了解决这个问题,我改进了脚本以在AI翻译之前准确识别和提取代码块,然后在翻译后正确恢复它们。这种方法防止了内容的任何不希望的改变。

改进机制

  • 精确识别和提取:通过一个改进的正则表达式,现在可以在翻译前清晰地识别并提取代码块,从而避免它们被改变。
  • 适当还原:代码块在翻译后被重新插入到它们原来的位置,确保最终内容的忠实度。

改进的好处

  1. 代码块的保护:代码保持完整,保留了它们的技术精确性。翻译不再影响代码块,从而确保了技术内容的完整性。
  2. 可靠性提高:脚本现在可靠地处理包含重要代码块的复杂Markdown文档。翻译完全自动化,无需任何手动修正,从而提高了过程的效率和速度。
  3. 更好的区分:改进代码块检测确保更好地区分待翻译文本和需要保留的代码块。这减少了翻译错误,保证了更精确和一致的结果。

翻译结果

要看到改进的成果,请查看项目GilLab上的Stable Diffusion原始法语README的翻译版本:

这些翻译证明了改进后的脚本能够有效管理代码块,并为不同语言提供准确一致的翻译结果,完全无需手动修正。

访问改进的脚本

您可以在项目AI-Powered Markdown Translator上找到改进的脚本,可供使用或根据需要进行调整。

新功能和改进

除了改进代码块的检测和管理外,由AI驱动的Markdown翻译脚本还进行了多项其他更新和改进。 以下是新功能的概览:

输出文件管理的改进

脚本现在会在启动翻译之前检查输出文件的存在。如果一个输出文件已经存在而且没有激活--force选项,脚本将会显示一条消息表示翻译未执行,并且跳过到下一个文件。这样可以避免重复翻译并节省时间。

现有文件检测的改进

使用了glob库来改进对现有文件的检测。无论使用哪个模型,脚本现在都会检查是否已存在一个翻译,通过搜索与原始文件名基础和目标语言相对应的文件。

输出文件名中模型和语言的顺序翻转

输出文件名的格式已经被修改,以更好地反映目标语言和使用的模型。现在,输出文件的名称将采用{base}-{langue_cible}-{modèle}.md的格式,而不是{base}-{modèle}-{langue_cible}.md

添加--force选项

脚本中添加了一个新的--force选项。当激活时,即使输入文件已存在翻译,脚本也会强制执行翻译。这在您想要使用更新的模型更新翻译,或者对翻译设置进行修改时可能很有用。

这些改进和新功能使得由AI驱动的Markdown翻译脚本更加强大和灵活,从而简化了Markdown文档的管理和翻译。

结论

这次更新对Markdown翻译工具来说是一个重要的进步,扩大了它处理技术文档的能力。继续完善这个工具旨在使全球观众更容易地访问开源项目。

请继续关注更多更新和创新在令人激动的生成性AI和自动化的领域!

该文件已从fr版本翻译成zh语言,使用了gpt-4-1106-preview模型。有关翻译过程的更多信息,请访问 https://gitlab.com/jls42/ai-powered-markdown-translator