gpt4 book ai didi

git - Qt 翻译和 git 的最佳实践

转载 作者:IT王子 更新时间:2023-10-29 01:23:01 26 4
gpt4 key购买 nike

今天我尝试 merge Qt 项目的两个 git 分支。两个分支都为它们添加了一些新字符串和新翻译。现在 Qt 的 lupdate 工具将需要翻译的源文件的行号存储在 .ts 文件中。正如您可以想象的那样,两个分支的行号不相同,并且当两个翻译文件都已更新时,这会导致数百个这样的 merge 冲突,对于每个翻译文件:

<<<<<<< HEAD
+ <location filename="../../src/network/mail/CSmtp.cpp" line="856"/>
=======
+ <location filename="../../src/network/mail/CSmtp.cpp" line="860"/>
>>>>>>> master

您可能会说只使用其中一个版本并再次运行 lupdate,但这样您会丢失其中一个分支的所有新翻译。

其他工具,如 gettext,没有这个问题,因为它们不存储行号。

在 Qt 中有什么好的方法可以避免这个问题?

最佳答案

来自 lupdate 手册页:

-locations {absolute|relative|none}

Specify/override how source code references are saved in ts files. Default is absolute.

因此使用 lupdate -locations none 来消除 TS 文件中的所有行号。使用 lupdate -locations relative 减少行号的变动:现在,行号的更改只会影响每次更改后的第一个字符串,如果您在打开源代码窗口的情况下使用 linguist

我的偏好是只对带有-locations none 的版本进行源代码控制。每当我需要行号时,我都会在本地运行 lupdate 以生成具有绝对位置的临时版本。确保你没有提交临时文件!

关于git - Qt 翻译和 git 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28220472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com