QT:检测非翻译QString(不是来自TR())



我会发现所有想念tr()的QString的机会

我在想……制作一个特殊的.TS文件仅用于调试使用,并在所有翻译中添加静态前缀。然后将QT放置在某种调试模式下,并将其所有QString列出到QDebug或其他任何内容中 - 有机会过滤从调试转换文件中缺少静态前缀的所有内容。这可能吗?

或:是否有更好的方法可以找到未翻译的QString发生?谢谢

对于一个大旧项目,这可能是很多工作,但是一种方法如下:

首先请参见此处,您想要以下内容:

QT_NO_CAST_FROM_ASCII禁用从C字符串文字和指针到Unicode的自动转换。

为您的项目定义这一点,然后您无法在预期QString的情况下编写C字符串文字。然后,您可能会通过使用tr进行明确的转换来解决一堆构建错误。

之后,或者在此之前,或者 ,避免两次通过相同的字符串,对 QString.*"等正则fiend-infiles(qt创建者中的ctrl shift f),并检查它们全部对于tr

最新更新