【发布时间】:2017-02-12 01:00:29
【问题描述】:
我正在尝试在 wiki 上维护一个项目的多个翻译。 wiki 不支持翻译,但我可以使用文本文件导入/导出。因此,为简单起见,让我们假设文档中的每个文件都是一个简单的文本文件。
是这样的:
- 我用英语编写 wiki 文档。
- 我下载了它(希望有一个工具可以帮我)。
- 新文件被复制到其他翻译目录中(它是新文件,所以还没有翻译)。
- 翻译者用他/她自己的语言翻译新的 wiki 页面。到那时它还在磁盘上,还在一个 txt 文件中。
- (可选)翻译人员将新翻译的文件上传到网络上。
到目前为止,一切都很好。
- 我开发了一项新功能并修改了英文 wiki 页面。
- 我下载了。
- 我更新了翻译版本……等等,它已经存在了,我不能只写文件来删除翻译者在第 4 步所做的一切!
所以我想有一种方法来创建一个部分翻译的文件,该文件将考虑到:
- 文档翻译时的文件(英文)。
- 同一文件在同一时刻的文件(无论采用何种语言)。
- 我新修改的文件(英文)。
它看起来是 diff3 的一个很好的用例。但是 diff3 并不真正喜欢处理变化很大的文件。的确,两个英文版本都可以比较,但是翻译版本差别太大,到处都会产生冲突。
我的翻译方法可能有点奇怪,我曾尝试寻找其他策略,但它已被商业替代方案淹没,如果我能提供帮助,这显然不是我的首选。
我希望我的解释对您有所帮助。如果我可以指定更多,请不要犹豫。
【问题讨论】:
-
你需要一个版本控制系统!边界类似问题已回答here。
-
我没有想过那个解决方案,尽管我现在使用 CVS 做任何事情。我尝试过应用这个策略,但我不确定它是否有效:
-
$ mkdir doc $ cd doc
-
好吧,看来我不能给 cmets 留下换行符,也不能回答我自己的问题。我尝试使用 Git 来解决这个问题,一个分支存储英文版本,第二个分支存储法语版本。但是'git format-patch fr..en'在英文版中确实显示了变化,但需要手动应用。
-
好的,我一直在寻找一种棘手的方法……合并分支是一个非常简单的解决方案。我猜它确实在某种程度上执行了 diff3 。无论如何,我在一个分支上有英文版本,在另一个分支上有法语版本,我只需要合并到另一个分支来更新......并修复冲突!
标签: diff translation diff3