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

遇到的问题

在翻译 Stable Diffusion 的 README 时,脚本在某些地方没有正确区分代码块和普通文本。这导致了不应该被改变的内容被不恰当地翻译,从而需要更精细地处理代码块。

解决策略

为了解决这个问题,我改进了脚本,在 AI 翻译之前精确地识别和提取代码块,然后在翻译后正确地恢复它们。这种方法可以防止内容被意外更改。

改进机制

  • 精确识别和提取: 通过改进的正则表达式,代码块现在在翻译前被清晰地识别和提取,从而避免了它们被更改。
  • 适当恢复: 代码块在翻译后被重新插入到原位置,保证了最终内容的完整性。

改进的优势

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

翻译结果

要查看改进的实际效果,请查看 GitLab 上的 Stable Diffusion 项目原始法语 README 的翻译版本:

这些翻译展示了改进后的脚本有效处理代码块并为不同语言提供准确一致翻译的能力,所有这些都不需要任何手动修改。

访问改进的脚本

您可以在 AI 驱动的 Markdown 翻译器项目中找到改进的脚本,可以根据您的需要使用或调整。

新功能和改进

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

改进的输出文件管理

该脚本现在会在启动翻译之前检查输出文件是否已经存在。如果输出文件已经存在并且未启用--force选项,该脚本将显示一条消息,指示未执行翻译,然后继续下一个文件。这有助于避免冗余翻译并节省时间。

改进的现有文件检测

使用glob库改进了现有文件的检测。该脚本现在通过搜索与源文件的基本名称和目标语言相匹配的文件,检查翻译是否已经存在,无论使用何种模型。

在输出文件名中反转模型和语言

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

添加--force选项

在脚本中添加了一个新的--force选项。启用时,即使输入文件已经存在翻译,该脚本也会强制进行翻译。当您想使用更新的模型更新翻译或对翻译参数进行更改时,这可能很有用。

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

结论

此次更新是Markdown翻译工具的重大进步,扩展了其处理技术文档的能力。继续完善这个工具旨在让全球受众更容易访问开源项目。

敬请期待更多关于生成式AI和自动化领域的更新和创新!

该文档使用 claude-3-opus-20240229 模型从 fr 版本翻译成 zh 语言。有关翻译过程的更多信息,请访问 https://gitlab.com/jls42/ai-powered-markdown-translator